こんにちは、nagatechです。
この記事は6/10に行われたハッカソンの参加記です。
チーム名は †未来のSysAd† 、メンバーは、
でハッカソンに参加しました。
ハッカソンの結果から言いますと、 †未来のSysAd† は部内籍管理ツール「booQ」を開発して、Emoineで最もいいねの数が多かった作品に授与されるいいね賞を受賞することができました!!
†未来のSysAd†チームが作った部内書籍管理ツール「booQ」は、発表中に最もエモエモボタンが押された「いいね賞」を受賞することができました!!ありがとうございます!!!
— ながてち (@syobon_titech) 2018年6月10日
写真は景品のniconicoトランプとバイナリかるたです#traPhacks pic.twitter.com/kdVcN14l4z
開発したもの
booQ(ブック)という部内の書籍管理をするWebアプリです。
名前はtraP部内SNSのtraQから来ています(アイコンもtraQのアイコンから来ています)
開発環境はサーバサイドはNode.js+ExpressにMongoDB、クライアントサイドはVue.jsです。
経緯的なもの
traPにはすでに部内Wikiに書籍を共有するページがありますが、貸し借りの際に部員がページを編集するという管理方法をしており、活用する人が少ないのが現状です。
今回、私達はこれを改善すべく、このWebアプリを作ろうと考えました。
ちなみにハッカソンのテーマ(かえる、ます)についてですが、本を読むと知識が「ます」という理由でゴリ押ししました。
使い方
(画像は開発中のものです。)
(仕様も開発中のものです。)
メイン画面です。
本のタイトルやサムネイル画像、本を持ってる人のアイコンが表示されます。
新規登録画面。
自分が持ってる本をbooQに登録することができます。
ISBNのコードを入力すると、タイトル、著者、本の説明文などが自動入力されます。
本のサムネイル画像も自動取得されます。
借りたいときは、本の一覧画面から「REQUEST」を押すと...
クソリプが送れます(は?)
ハッカソンでは8時間でこれだけの機能を実装することができました。
開発記
チーム発表~直前まで
とりあえず部内の情報共有ツール上で自己紹介を済ませ、何を作るのかを考えました。
チームメンバーが全員プログラマだったうえにチーム編成がどう考えても「Webアプリを作れ」と言わんばかりの編成だったので、最初からWebアプリを作る方向で話を進めていきました。
今回のハッカソンのテーマ(かえる、ます)は正直言ってWebアプリケーション向きのお題ではなかった(気がする)ので、結構苦戦しました。
部内書籍管理ツールを作ろうと決まったのは、
チーム名が†未来のSysAd†
↓
SysAdといえばtraP内で部内ツールの開発・運用・保守をしている班
↓
ハッカソンで作るのはtraPの役に立つ部内ツールがいいんじゃないか
↓
そういえば部内で書籍を管理しようという動きがあるのに書籍の管理がガバガバ
↓
書籍管理ツールを作ったら面白そう
↓
ハッカソンのテーマは知識が「ます」でごまかす
という感じで決まっていきました。
直前
うちの班、ハッカソン当日が初顔合わせになりそうで楽しみ
— ながてち (@syobon_titech) 2018年6月6日
さすがにやばいと思ったので調整して、ハッカソン1日前にやっと全員の顔合わせが実現しました。
開発するものは決まっていたので、全員で仕様とかの話し合いをしました。
booQという名前とロゴのイメージはここで決まって、この案が出た瞬間は「もうこれしかない」とゲラゲラ笑いました。
当日朝
起床スペシャリストなのでちゃんと時間前におおお着弾した#traPhacks
— ながてち (@syobon_titech) 2018年6月9日
Azonくんが絶起しました。(リポジトリの環境構築をお願いしていたのでしょうがない)
うちのチームに割り当てられた机は、部員の名札で占拠されてました。
うちの班に割り当てられた机です#traPhacks pic.twitter.com/QIKyYnu2K2
— ながてち (@syobon_titech) 2018年6月10日
なんやかんやあって机が空いて、ようやく開発スタート。
Azonくんは10時半くらいに来ました。
午前中にそれぞれでやったことは、
- mikit APIのルーティング、自動入力部分のAPIの実装
- sente booQのロゴの作成
- Azon クライアント側の実装、MongoDBの接続部分の実装
- JichouP アプリ公開の準備、MongoDBの接続部分の実装
- nagatech SwaggerでAPIのエンドポイントの設計
です。
昼
かじけん
— ながてち (@syobon_titech) 2018年6月10日
ちなみに昼にかを食うのは昨日のミーティングで決まってた #traPhacks
— ながてち@残り9枚 (@syobon_titech) 2018年6月10日
調子に乗って倍盛を食べてちょっと苦しくなりました。
午後
— ながてち (@syobon_titech) 2018年6月10日
この時点で開発終了2時間半前でなにも見せられるものが完成しておらず、かなりやばやばでした。
午後にそれぞれでやったことは、
- mikit APIの実装
- sente APIの実装
- Azon クライアント側(トップページ)の実装
- JichouP MongoDBのバグとの闘い
- nagatech クライアント側(新規登録画面)の実装
です。
時間との戦いで┗('o'≡'o')┛ウワアアアアアアアアアアアアア!!!!!!!!┗('o'≡'o')┛となってしまい、†ハッカソンの闇† を感じながら必死に実装しました。
開発終了
俺は止まらねえからよ...💃 #traPhacks
— ながてち (@syobon_titech) 2018年6月10日
開発終了は17:30でしたが、発表開始の18:00まで30分もあったので、開発を続けつつ、 発表用のスライドを急ピッチで作り上げました。
プレゼン
プレゼンまでにはなんとか見せられるものが完成しました。
発表は自分がやりました。
ぶっつけ本番でしたが、いい感じに笑いのとれるプレゼンができて、デモンストレーションもうまく動いたのでよかったです。
表彰式
Emoineで最もいいねの数が多かった作品に授与されるいいね賞を受賞することができました。
景品はniconicoのマスコットキャラクターが印字された任天堂製のトランプとバイナリコードを読んでファイルの形式を当てるバイナリかるたでした。
ちなみに3分間のプレゼン中に部員が押したいいねの数は7000個らしいです。
7000くらい
— とーふとふ (@to_hutohu) 2018年6月10日
おしまい
なんだかんだ言って楽しいハッカソンでした。
booQは今後も開発を続けていき、正式に部内ツールとしてリリースする予定なので、応援よろしくお願いします。