2024年9月14〜15日に開催された「技育ハッカソン」に、研究室のメンバー3人で参加。
テーマは「祭り」で、2日間で屋台の評価を行うWebアプリケーションを開発した。
全員がハッカソン初参加という状況の中、モブプログラミングで学び合いながら、実際に動作するプロトタイプを完成させた。
祭りの屋台は現地に行かないと情報が得られず、当たり外れが大きい。
ユーザー同士が屋台の体験を評価・共有できる仕組みがあれば、祭りをより楽しむ手助けになると考えた。
また、複数のレビューをAIで要約する機能を導入することで、効率的な情報収集も可能にすることを目指した。
フロントエンド・バックエンドの両方を担当。
モブプログラミングを採用し、チーム全体で学びながら作成を進めた。
フロントエンドでは、画面設計の統一感や操作体験にこだわり、他メンバーと相談しながら、状態管理・ルーティング・入力UIなどを構築。
バックエンドでは、FastAPIを用いて評価データの保存・取得APIを構築し、MySQLを使ったスキーマ設計・永続化にも取り組んだ。
-
フロントエンド:React(TypeScript)
状態管理やUIコンポーネントの再利用がしやすく、短期間でも開発効率を高められると判断した。 -
バックエンド:FastAPI(Python)
RESTful APIを高速に構築でき、非同期処理やAIとの連携も見据えやすいため採用。 -
データベース:MySQL
データの永続化に加え、簡易な検索・集計にも対応しやすいRDBMSとして採用。
- 屋台の新規登録機能(一般ユーザー・管理者向け)を実装
- GPSと連動した地図表示で屋台の位置を可視化
- 投稿されたレビューをAIで要約・タグ付けし、情報収集を効率化
初めてのハッカソンで、開発経験がほとんどない状態からのスタートでしたが、ログイン機能や屋台の評価など、最低限必要な機能を実装できたことは大きな達成感がありました。フロントエンドの開発も初挑戦でしたが、想像以上に面白いものが作れたと感じています。
一方で、AIを活用したレビューの要約機能や、管理者による屋台の追加機能など、当初の課題を十分に達成できなかった部分もあり、今後の課題だと感じました。また、フロントエンドではcomponentsの分割が適切にできず、それぞれの責務が曖昧になってしまい、可読性の低いコードになってしまった点も反省点です。
この開発経験を通じて、より技術力を高め、今後はより良いプロダクトを作れるよう努力していきたいと思いました。