はじめに
どうもこんにちは、初めましての人は初めまして。genMira(ミラと発音してください)と申します。
今日は2026年春ハッカソンに参加してきたので作った作品について紹介しようと思います。
作ったサービス
弊班が作ったのはtraP内向け友達作りwebサービス、Qpidです。
実はtraP、規模が大きすぎて身近な人以外の交流がない人との交流が本当に全然ないという問題があります。
たったら新しく縁を結ぶサービスを作ろうじゃないかい、というわけで制作が始まりました。
制作秘話
今回のテーマが「かん」「きゅう」だったのですが、何を作るか決めていた際に、きゅう?→キュー?→キューピット!と連想し、キューピットが出てくるサービスって....マッチングアプリ?となったんですよね。
いやいや流石に科学大でマチアプは需要ないわ、いや正確には需要ありすぎて供給がないわと話していた所に、上記のような問題が浮かび上がって、じゃあマッチングアプリベースの友達作りサービスを作ろう!となりました。

というわけでメインの画面、マッチングアプリをベースにしたマッチング画面です。
右にスワイプでLike,左にスワイプでNopeをつけることができます。
LikeとNopeを友達につけるのは残酷だって? まぁ、そこは表記だけ準拠ということで......。
好みよりも、趣味が自分と近しいとか、自分と同じ技術を使っていて交流ができそうとか、そういう意味で絡みが生まれることを目指しています。

プロフィールからは表示する内容の設定ができます。
プロフィールの設計では、表示させる内容をユーザー側がなるべく自由に決められるように意識しました。
一例を見ると「好きなもの/嫌いなもの」の項目は「好きな〇〇/嫌いな〇〇」として、何について 語るかは本人の自由です。好きな食べ物を語ってもよし、好きな俳優について語ってもよし。自分で決めるのが一番個性が出ますからね。
それはそうとして、今回はその人の個性を自動で記述する機能も実装を試みました。
事前に許可をいただいていた何人かの人に対して、traQの過去一年の投稿データを読み込み、使う頻度の高い単語を自動取得して趣味タグに設定してみました!
これを使って属性が似ている人を優先的にマッチングするアルゴリズムを組みたい.....と思っていたのですが、どうもうまくいかず、春ハッカソン中の実装は断念となりました。
振り返って考えてみれば、traPのアクティブな部員というだけでだいぶ人数は絞られるので優先度をつけなくても全探索ができるんですよね。

マッチング画面でLikeをつけた人、また自分に対してLikeをしてくれた人は一覧で見ることができるようにしました。
嘘です。そのように設計しましたが実装が間に合いませんでした。
現状はLikeをした人の名前しか取得できていません。
振り返り
さて、全般的に実装が間に合わなかった機能がいくつかありますが、なぜこうなってしまったのでしょうか。
悪いものには蓋をせず、現実を直視していきましょう。
設計を事前に十分に固めていなかった
ある程度どういうページがあって、どういう機能があって.....というのは決めていたのですが、もっと詳細に詰めるべきでした。
例えば2日目の発表直前に、フロントエンド側で使われる変数名とバックエンド側で使われる変数名が異なるためデータがうまく受け渡されないというバグが起きました。
変数名も含めてデータ構造をもっと詳細に詰めておくべきでした。
タスクの切り出しができていなかった
「困難は分割せよ」
そんな言葉がある通り、チーム開発では機能の実装はいくつかの部品に分けて並行しながら実装を進めて行くべきです。
ところが、今回は切り分けが機能の表面だけ切り取っただけで、コアの機能はできる人が重点的に開発する形式になっていました。
ハッカソンのようなスピード重視の開発ではこれはこれでいいのですが、コアの開発が重なってできる人がタスク過多になるなること、そして暇をするメンバーが出てくることはよくなかったと思います。
タスクの優先順位の決め方がうまくなかった
ハッカソンは時間に追われるのが常、どう工夫しても実装の時間がたりないのは仕方のないこと。
ならばせめてタスクの優先順位はよく考えて決めるべきでした。
理想としてはコアの機能を実装して動くことを確認し、その上で様々な機能を追加していくという流れでした。しかし今回はコアの実装を少人数で実装し、他のメンバーが様々な機能を実装する形式にした結果、バックエンドのコアの実装が遅れ、フロントエンドとバックエンドの連携が遅れ、結果としてプログラムとしては完成しても機能として組み込むことができなかったものがいくつかありました。
最初に確かに動く最低限のものを作ってから、機能を実装するべきでした。コアの機能を作っている間のメンバーのタスクとして追加の機能の実装を任せるのはいいのですが、それをするにしてはコアの実装をもっと早めるべきでしたね。
メンバー紹介&作っての感想
@genMira
リーダーです。フロントエンド+バックエンドのお手伝いをしました。
web系のプロダクションをハッカソンで作るのが初めてで、開始直前まで「そんな状態でリーダーなんてできるんですか!?」となっていました。
しかし始まってみると、みなさんかなりお強くて、初めての集団web開発に戸惑ってあまりタスクの割り振りなどもうまくできなかった僕をよそに、言外に意図を汲み取って素晴らしいものを作ってくれました。感謝、大感謝です。
@watapro26B
春ハッカソンではバックエンドを担当し、主にAPIを作成していました。わからないことだらけでしたが、先輩方が分かりやすくレビューし、修正点を教えてくださったので、コードを書き進めることができました! 今回の学びを生かしてsysAdのプロジェクト等でも活躍していきたいです!ありがとうございました!
@hiko9907
25Bです。去年の春ハカではゲームとして参加しましたが、今年はwebに興味を持ち始めたので、バックエンドとして参加しました。主にGET系のAPIとユーザーの表示順をいい感じに並べるアルゴリズム(こちらは時間内に実装できず...)の実装 を担当していました。イシューを4つほどクローズできたのは嬉しかったです。今回の春ハカでweb系アプリのリポジトリ構造や開発の大まかな流れなど、多くのことを知れたと思います。色々教えてくださったチームメンバーにも感謝しています!
@Arina
今回の春ハッカソンではフロントエンドとデザインの一部を担当しました。表示画面の構成を考えるのが楽しかったです。フロントエンドでのタグへの理解がほとんどなかったため、ほとんどかけまっせんでしたが、開発の練習になってとてもよかったです!次のハッカソンまでに自力でかけるようになりたいです!(バックとフロント両方)
@eoa_te
バックエンドを担当して実装やレビューをしました。Unity, マイクラ(Kotlin), 動画(YMM4), バックエンド(TypeScript)ときてハッカソンでは初めてのGoバックエンドでした。力不足を感じながらもなんとか動くものができました。後輩の今後のSysAd班活動の糧になっていればいいなと。ありがとうございました!
@tidus
バックエンドの設計と実装を担当しました。事前の学習期間が短い中でチームメンバーがバックエンドの設計 (アーキテクチャ) 理解できるかどうか心配でしたが、自分がかなり細かくタスクを分割できたのもあって皆さんがすぐに理解してくれて、開発がスムーズに進んで助かりました!一方で、開発開始直後の準備に時間がかかって皆さんを2時間ほど待たせてしまうことになったのは反省点です。ありがとうございました!
終わりに
なんとか動くものはできましたが、最初にプロフィールの設定ができなかったり、いいねをつけた後の処理がなかったりと、まだまだ改善点は多いです。もっと改良させて実用化させたいですねぇ......
ともあれ、ハッカソンとしては悪くないものができたでしょう。制作に関わってくれたメンバーのみなさん、本当にありがとうございました!