【TrackJob初心者向けハッカソン参加レポート】研究室の在室管理システムを開発した話
はじめに
先日、2025年5月31日から6月1日にかけて開催された「【🔰チーム開発初心者向けハッカソン🔰】Track Job Beginner's Hackathon」に参加してきました。
本記事では、初めてのハッカソン参加を通じて感じたことや開発したプロダクトについて記録しておきたいと思います。
なぜ参加したのか
「ハッカソン」と聞くと、どんなイメージが湧きますか?
- 猛者たちが集い、超絶技巧を披露する場所
- 数日間寝ずにコーディングし続ける過酷なイベント
- 初心者が参加したら迷惑をかけるかも
以前の私もそんな風に思っていました。
今回参加したハッカソンは、オンラインかつ2日間で完結する、ということで初心者も参加しやすい形式でした。 これを逃すと次もやらないだろうなと、思い切って参加を決めました。
研究室の同期4人でチームを組めたのも大きなポイントでした。 ハッカソンに個人で参加した人から、チームメンバーが消えたという話をよく聞くので、知り合いと参加するのが安心です。 実際に、他の参加チームも知り合い同士で組んでいる人が多かった印象です。
制作物:ラボ在室管理システム
今回のテーマは「役に立つもの」でした。 私達のチームでは、自分たち自身が日々感じている課題を解決するため、「研究室の在室管理システム」を開発することにしました。
- 「今、研究室に誰がいるんだろう?」
- 「先生や相談したい同期は大学に来てる?」
といった、地味ながらも頻繁に発生するコミュニケーションコストを削減するためのプロダクトです。

主な機能は以下の通りです。
- 学生証を用いた1タッチでの入退室
- NFCリーダを通してラズベリーパイから入退室情報を取得
- 在室状況の可視化
- 在室中の学生の一覧を表示
- モチベーションを高めるため、連続在室日数を表示
- 入退室の通知
- SlackAPIを用いて、入退室時にSlackに通知
開発チームと技術スタック
- フロントエンド:
React
- バックエンド:
Python
,FastAPI
- インフラ/DB:
Render
,Supabase
私ともう一人でバックエンドを担当しました。
FastAPIは少し経験がありましたが、PaaSであるRender
とBaaSのSupabase
は、この機会にぜひ使ってみたいと思い、初めて採用しました。
ちなみに、Renderでは選択できるリージョンに東京が無かったため、最も近いシンガポールを選択しました。 通信速度に少し不安がありましたが、実際に使ってみると全く問題なく、快適に動作してくれました。
ただ、Renderは一定時間アクセスがないと自動でスリープ状態になり、初回アクセス時に少し時間がかかるのが難点です。 (これにより、最終発表時に少し焦りましたが、無事に動いてくれました)
【開発の工夫】ペアプログラミング
2日間という超短期決戦を乗り切るため、ペアプログラミングを取り入れました。 初めてのチーム開発において、この手法は非常に効果的だと感じました。
- 知識の共有: 片方が詰まっても、もう片方が即座にサポートできるため、調査で手が止まる時間が激減しました。
- 品質の向上: 常に2人の目でコードを見ることになるため、自然とコードレビューが行われ、単純なミスやバグが減りました。
- モチベーション維持: 1人だと心が折れそうな場面でも、隣に仲間がいることで集中力を保ち、最後まで駆け抜けることができました。
初めてのチーム開発で不安があるチームにこそ、ペアプログラミングはおすすめです。
ハッカソンを終えて
あっという間の2日間が終わり、最終発表を終えたときの率直な感想です。
小規模なハッカソンだったため、順位発表や詳しいフィードバックがなかったのは、少しだけ残念でした。 しかし、それ以上に大きな収穫がありました。
それは、「案ずるより産むが易し」 ということです。
参加する前は、「自分のスキルで大丈夫だろうか」「足を引っ張らないだろうか」と無駄に怯えていました。 しかし、そんな不安はまったくの杞憂でした。 周りも同じような初心者で、助け合いながら開発を進める雰囲気があり、私が感じていた心理的なハードルはどこにも存在しませんでした。
むしろ、「なんでもっと早く参加しなかったんだ!」と後悔したほどです。
まとめ
人生初のハッカソンは、私に「技術的な経験」以上の「挑戦することへの自信」を与えてくれました。
今回の経験を踏まえた次の目標は、「ステップアップして、表彰やフィードバックがあるような、より規模の大きいハッカソンに参加したい!」 です。
最後まで読んでいただき、ありがとうございました。
おまけ:ハッカソン中の昼食
ハッカソン中の昼食はカレーうどんでした!
