# プロジェクト経験概要
社内メンバーへの貢献度に応じて、会社が発行するトークンを分配するシステムの構築プロジェクト。要件定義から設計、実装、テスト、運用まで、少人数のメンバーで一貫して担当した。
## 期間
2023年1月〜2023年6月)
## 経緯
ブロックチェーンの学習コミュニティを運営する会社として、社内でも貢献度に応じてトークンを配布したいという希望が常々あり、私と数名のメンバーが協力して実装することなる。
## チーム情報
チーム人数:【★要記入★:具体的な人数(「数人」を明確な数字に)】
体制:明確なテックリードは不在。各メンバーがそれぞれの担当領域(フロントエンド、スマートコントラクト、バックエンド等)を主導しつつ、相互に相談し合う体制で進行。自分がチーム全体の指揮を取る役割を担う。
自分の役割:フロントエンド開発をメイン担当。加えて、スマートコントラクトとの連携部分(繋ぎこみ)も実装。
テックスタック:TypeScript(React), Solidity
## 開発・実装内容A(フロントエンド開発)
【概要】
トークン配布システムのフロントエンド全般を担当。
【どのような機能の開発・実装か】
- 各ユーザーのトークン残高表示画面
- 配布申請画面
- 管理者用ダッシュボード等
- スマートコントラクトとの繋ぎこみ部分
【課題・問題点】
- 他のメンバーとの認識の齟齬によって、実装時にうまくスマートコントラクトと連携できないことがあった。
【打ち手・使用した技術】
- 自分なりに何が問題で、それを解決するにはどのような解決策を講じる必要があるのかを考えた上でメンバーとミーティングを繰り返した。これによって、ミーティングでよりスムーズに解決策の確定まで進めることができた。
- 自身で思案する際は様々な観点から見た時に綻びがないかを常にチェックするようにしていた。
## 開発・実装内容B(スマートコントラクト連携)
【概要】
スマートコントラクトとフロントエンドの繋ぎこみ部分の実装を担当。
Ethereum, Solidity, ethers.js, web3.js等。
【どのような機能の開発・実装か】
- トークン発行
- 送金トランザクションの呼び出し
- ウォレット接続機能等
【課題・問題点】
- トランザクション失敗時のハンドリングに苦戦。特に、ブロックチェーンとの繋ぎ込み部分でウォレットの問題や仕様している開発用のガス代用トークンが使えないなどの問題に直面。
【打ち手・使用した技術】
社内外のブロックチェーンコミュニティで質問をして解決。当時はまだ苦手意識のあった英語を使用して積極的に課題の解決に取り組む。