git commit -m "初めてのハッカソン"
参加する前の下準備
ハッカソンが始まる数日前
「git」の存在は知っていたのですが知識がなく、調べているとチーム開発には必須ではないかと思い、ハッカソンが始まる前までに急いでgit関連の勉強を行いました。
commitからpushの流れやbranchの役割、margeするといったような基本的に使いそうなものを実際に動かしながら勉強しました。
ちなみに、ハッカソンが終わった3日後にgitとgitHubに関する初心者向けのオンライン勉強会に参加する予定ですので、学んだことは復習しながらgitをより使いこなせるようになりたいと思います。
ハッカソン開始 & チーム発表
ハッカソン参加者が21名、その他に運営さん、技術やアイデアについてアドバイスを頂けるメンターさんが集まりハッカソンが開始しました。
今回のハッカソンは5チームでの構成となり、運営さんが参加者を5チームに振り分けてくれました。
更に各チームに運営さんが1人ずつサポーターとして入ってくれました。
チームそれぞれがサービスを開発し、プレゼンテーションを作成し発表します。
今回の審査基準は以下の通りです。
チームメンバーとの顔合わせ
チームメンバーが発表され、それぞれのチームで顔合わせを行いました。
自分のチームは4人でのチーム開発になりました。
最初はメンバーそれぞれが自己紹介。
自分以外の3人は技術力や知識もあり、「こんな初心者が参加しても良かったのだろうか」と不安な気持ちをもってのスタートとなりました。
次はチーム名を考えました。
メンバーの1人が「ゆるキャン△が好きなんだよね~」という所から、
「ゆるくシステム開発をしたい」という発想になり、
「ゆるステ△」というチーム名になりました。
テーマ発表 & アイデア出し
今回のテーマは「Boost」
このテーマを元にアイデアを出してサービスを作ります。
今回はmiroと呼ばれる皆でボードを共有できるサービスを使用して、テーマから連想できるキーワードを4人それぞれが出しました。
1日目はキーワードをひたすら出すという部分で終わりました。
2日目の朝。
1人のメンバーが色々なサービス案を考えてくれていました。
これを元手にどのようなサービスが出来そうかを考えました。
今回このチームでは
というアイデアのもと、サービスを開発していきました。
ゴール宣言
2日目のお昼頃、各チームの開発方針を発表するゴール宣言を行いました。
自分のチームではサービス名を「Trimo」(Trip more の略称?)とし発表しました。
この時は、いいアイデアだと思ったしいいものが作れるのではないかとワクワクしていました。
技術選定・開発環境構築
技術選定(どういった技術を使用するか検討する)に関しては知識が豊富な方がメインでして頂きました。
フロント側 : Vue.js、Vuetify
バックエンド側 : rails、heroku、dbdiagram(データベース設計)
ファイル共有はgithub、テスト環境はDockerを使用して行いました。
自分はVueって何?、dockerって聞いたことあるけどよくわからない、バックエンドの知識が全くないということで頭がいっぱいでした。
開発の環境構築は詳しいメンバーがgithubを使用して、「このコマンドをターミナルで実行してね」という感じで出来ました。
テスト環境に関しては以下のリンクを参考にしてdockerを入れました。
Windows 10 Home で WSL 2 + Docker を使う
これで準備は終わったものの、自分が携われる部分はなさそうに感じてしまい、知識が無い状態でハッカソンに参加してしまったことに後悔していました。
メンターさんからのフィードバック
技術選定が終わった所で、一度メンターさんに自分たちのチームのアイデアで抜けているところが無いか、技術選定がこれでいいのかを確認しに行きました。
一通りチームの方針をお伝えした後、メンターさんからのフィードバックが沢山返ってきました。
実際のフィードバックを以下にまとめておきます。
さらにこれからやるべき事も教えて頂きました
チームの目標が崩壊・立て直し
フィードバックを頂いた後、メンバー全員でアイデアをブラッシュアップしました。
まずは使って欲しいユーザーについて考えました。
しかし、この話し合いがスランプに陥ってしまいます。
使って欲しいユーザーを想像して意見を出していきますが、決め手の軸がない為に意見だけを出すだけ出して決まらないという状況が続いてしまいました。
そんな時、チームのサポーターさんから「このハッカソンでどうしたいのかを話してみたら?」との一言を頂き、なぜ今回のハッカソンに参加したのかをチームメンバーに伝えました。
自分が今回のハッカソンに参加した理由は
といった理由で参加させていただきました。
他のメンバーさんも「チーム開発がやりたい」とか「新しい技術に触れたい」というのが参加した理由として挙がりました。
このチームの目標は、ハッカソンで優勝したいということではないということに気づかされます。
自分たちが作りたいものを作ろう
この話し合いでチーム開発の方針も確固たるものになりました。
お互いに新しい技術に触れ、自分たちの欲しい機能を実装するという方針になり、夕方の午後6時前からプロダクト作成が始まりました。
初めてVue.js・Vuetifyを触れる
自分はバックエンドの知識が無く、フロントエンドの知識もhtmlとcssだけでjavascriptも少ししか触ったことがないため、今回のチーム開発は教えて頂きながら開発をしました。(チームメンバーが皆さん優しい方で良かった)
デザインはfigmaというアプリを使い設計しました。
個人的に見た目は結構好きです。
またこの時にフレームワークという存在を初めて知り、コーディングを進めていく中で「こんなに便利なものがあるんだ!」と一人で感動していました。
ただフレームワークについての知識は完璧ではないと思うので、勉強してしっかり身に付けたいと思います。
コーディングをする中で、今回参考にしたものを以下に載せておきます。
コードフリーズ・最終発表
チーム開発は寝る間を惜しんで続けながら、コードフリーズの約30分前に無事にデプロイまで終わりました。
発表スライドは最終日に発表内容を試行錯誤しながら作成しました。
スライドに関しては魅力的に見えるように、もう少し力を入れても良かったかなと思いました。
このようなこともチームメンバーに相談するべきでした。
チーム開発でデプロイしたものを以下に掲載しておきます。
振り返り・今後について
ということでまとめになります。
初めてのハッカソンを通して技術や知識以外にも学べることが沢山ありました。本当に良い経験をしたと思っています。
ハッカソンの振り返りを自分がハッカソンに参加した理由を交えて行いました。
今回のハッカソンのお陰で新しい世界を沢山知ることが出来ました。
運営してくださった方、メンターさん本当にありがとうございました。
参加者の方も本当にお疲れ様でした。
懇親会の時に同じような悩みを持っていた方もいて、お互い不安な中でも、最後までやり通せたことが出来たのでとても安心しました。
初めてのハッカソン本当に楽しかったです。