見出し画像

技育CAMPハッカソンvol.5に参加したら受賞した話

0.はじめに

こんにちは、かっぴーです。
5/18、19に開催された技育CAMPハッカソンvol.5に参加してきました!
そもそも、技育CAMPハッカソンとは何ぞや?と思う人もいるかもしれません。技育CAMPハッカソンとは、株式会社サポーターズ様が主催している、技育プロジェクトの中の技育CAMPの活動の1つで、1週間の中でプログラミングを作った開発物をつくるというイベントとなっています。
今年度は23回も行われる予定です!
ITエンジニア志望の学生の方は是非参加してみてください!

この記事では、技育CAMPハッカソンvol.5に参加した感想や何を行ってきたかを詳細に伝えていけたらと思います。


1.事前開発期間

技育CAMPハッカソンは、事前にチームを組むか参加者の中でランダムにチームを組む即席チームの2つがあり、自分は即席で参加しようと考えていましたが、以前ハッカソンで一緒に開発した方にお誘いいただき、事前にチームを組んでの開発となりました。
事前開発期間より前に自己紹介を済ませて、キックオフが開始されてからのコミュニケーションもスムーズに行われました。
アイデア出しをする中で、エンジニアのためのマッチングアプリを開発することに決定しました。

事前開発期間ではSupabaseでのテーブル設計、ユーザー認証がされたらUsersテーブルに保存される関数、ランダムマッチAPIの実装をしました。
自分が考えていたプロダクトの方向性が少しずれており、テーブル設計に関しては指摘されることもありました。ユーザーのプロフィールと技術スタックのテーブルを切り離していましたが、Usersテーブルにまとめるように変更しました。
続いて、ランダムマッチはUserIDを基に取得するか、取得したユーザーのリストからランダムに取得するかの2つの方法がありました。GoのSupabaseクライアントライブラリでできることが限られており、前者の方法は実装が難しかったため、後者の方法でランダムマッチは実装しました。

2.1日目

朝会が終了したらすぐに全員でDiscordを繋ぎ、開発に入りました。
自分はいいねとマッチング機能の実装を始めました。
この機能の実装はそこまで難しくなく、テストも含めて2時間程度で基盤は実装することができました。

次に先ほど実装した機能をフロントと繋げる作業に入りましたが、ここでかなり苦戦しました。
また、このとき花粉で頭痛もひどく微熱があり、意識が若干朦朧としていました。(笑)
まめに進捗確認をしていたのですが、こんな状態だったため自分の実装部分をメンバーにうまく説明できず、困らせてしまいました。
本当に申し訳ないです…
ユーザーがサインインしたときに、認証情報をcookieで管理しているため、それに伴いテーブル情報も変更をしました。

ここで1つ事件が起き、メンバーが誤ってSupabaseのAPI鍵をGitHub上に公開してしまいました…!!
どうにか履歴を消せないか調べていましたが、うまくいかず、プロジェクト自体を作り直すことになりました。自分も過去に重要な情報を誤って公開してしまった経験があるので、その人もこれをきっかけに1つ学んでくれたら嬉しいです。
そして、メンバーが実装したコードを読み解きながら、なんとかフロントとバックを繋ぐことができました。他にコンフリクトの解消をしていたら、日付が変わって朝4時になっていました。
まだ起きているメンバーでサポーターズチャレンジをしてみたら…

サポーターズチャレンジ

まさかの大当たりを引き当ててしまいました。(笑)
まだタスクはありますが、ずっと起きているのも体に毒なので睡眠を取ることにしました。
1日目はこれで終了です。

3.2日目

3時間ほど睡眠を取ってから、ランダムマッチのユーザーのプロフィールのUIの修正に取り掛かりました。
途中で2日目の朝会を挟み、UIの修正は比較的すぐに終わりました。

ランダムマッチ画面

しかし、他のメンバーの進捗状況が分からず、他ユーザーのページが見れなかったり本番環境で動かない部分があったりと、問題はまだ多く残っていました。
コードフリーズ(開発終了)までの時間も少なく、他ユーザーの情報を取得するAPIの修正をしましたが、デザインも決めていなかったため、フロントまで実装することはできませんでした…
コードフリーズが来てしまったので、資料作成や発表の練習に移ります。
しかし、発表の流れなど実際に練習を行うことができず、成果発表会を迎えることになります。

4.成果発表会

1週間の開発が終了し、これから成果発表会が始まります!
自分のチームは最後から2番目に発表することになりました。
デプロイ環境でCORSエラーが出てしまい、デモはローカル環境で行うことになり、ランダムマッチ部分を動かせるのが自分だけだったため、プレゼン資料の画面投影+ランダムマッチ部分のデモ+説明を担当することになりました。発表練習を一切していなかったため、不安な気持ちしかありませんでした。
自分たちの番が回ってきて、発表が始まりました。
資料の画面投影と発表者に合わせてのスライドはうまくいき、デモに入ります。しかし、zoomのメニューバーが邪魔になり、すぐにデモに移ることができず焦って紹介し、次のデモの発表者にすぐにバトンを渡してしまいました…

Slackでは「落ち着いて!」「がんばれ!」等の温かい声が多く、発表が終わった後ではありますが励まされましたね。練習はちゃんとしておくべきでした。発表はいつになってもうまくなりませんね。(笑)

そして、全てのチームの発表が終了し、結果発表の時間になりました。
残念ながら優秀賞と最優秀賞には選ばれませんでしたが…

3枠あった努力賞を受賞することができました!!
フィードバックまではいただけませんでしたが、短期間でそれなりの機能を実装した点とサービスとしての面を評価されたのかなと考えています。

結果発表の後は懇親会で、スポンサー企業の方や学生と交流しました。
懇親会が終了した後もチームで集まり、雑談をしながらも継続開発について話していきました。
技術選定に問題があったため、まずはそこの改善をして継続開発をしていこうと思います。

5.最後に

「GeekLink」で努力賞を受賞することができ、非常に嬉しいです!!
しかし、優秀賞以上を取ることを目標にしていたので少し悔しい気持ちもあります。今後のハッカソンの目標の1つも、変わらず優秀賞以上を取ることになりそうです。(笑)

目標の1つは受賞することではありましたが、運営の加藤さんもツイートされている通り、自分もハッカソンで受賞することが全てだとは考えていません。
去年初めてハッカソンに参加したときに受賞することができたときは、「もしかしたら自分ってすごいのかも」と勘違いしていた時期があります。
ですが、技育博や就職活動を通してその考えはなくなりました。
受賞して終わるのではなく、あくまできっかけや継続開発につなげるなど、今後のステップアップの1つに過ぎないということに気づき、今回の経験も自分のこれからに生かしていけるようにしていこうと考えています。

ここまでnoteを読んでいただきありがとうございます!!
技育CAMPハッカソンvol.5の参加記を書いていきました。
技育CAMPハッカソンが気になってはいるけど、どんな雰囲気なのか分からないなという方にこのnoteが届いたら嬉しいです。

次回がどんな内容の記事になるかは分かりませんが、これからも自分の体験をnoteに書いていければと思っています。引き続きよろしくお願いします。


この記事が気に入ったらサポートをしてみませんか?