先日、東京でハッカソンをしたので備忘録と感想を書いておこうと思います。
目次
概要
天気APIを使用した花粉量確認システム
使用するAPI
https://openweathermap.org/
おおまかな仕様
言語自由。API使用とか以外はすべて自由。
めっちゃとぶ:条件が3つともあてはまる
ふつうにとぶ:条件が1つ以上あてはまる
ぜんぜんとばない:条件が1つもあてはまらない
- 晴れている
- 湿度が40% ~ 80%
- 風速が 8.0 ~ 10.7 [m/s]
活動フロー
チーム分け
6名いたので、3名ずつの2チームに分かれました。
主催の人と同じチームだったので、その人主導で進めていきます。
言語選択
WEB APIですが、javascriptが書けない僕の希望でjavaとなりました。
SpringThymeleafを使って進めていきます。
設計
コーディング
僕が担当したのは、モデル部分。
煩雑な判定でもないので、あまり意識せずサクサク書いていきます。
競合するのが面倒なので、判定条件ごとにクラスを切り出していきました。
完成披露
こんな感じになりました。
日本国内のみ対応で、各都道府県を列挙した形で選択式にしてあります。
判定した時刻と結果のみを表すだけで、かなり簡素な作りです。
表示を押すと、以下の様に出力されます。
うーん、雑!
詰まったところ
環境構築で躓きました。
GitからリモートにcloneしたプロジェクトをSTSで読み取れず、lombokがインストールしたSTSに反映されず、等様々なトラブルがありました。
判定条件とか、モデル部分の作成で詰まった事は特になかった。
実感したこと
GOOD
Springってすげーって素直に思いました。
テンプレートがある程度初期でできているのと、リソースデータの読み込み(クラスパス関連)がかなり手軽でした。
APIから帰ってくるJSONオブジェクトを自動でDTOに当てはめてくれるのは非常に便利でした。
楽して一定水準の物が作れるっていう気づきがあったのは良かったと思います。
BAD
環境構築は先に家でやっておけばもっと楽だった。
あともう少し役割分担して作業できればよかったかなって思った。
自宅で改良版
あまりに作りが簡素だったので、もうちょっとWEBっぽく仕上げました。
各都道府県をクリックすると、その時点の天気と湿度から判定します。
CSSとかあまり触れてないので、デザインが非常に陳腐ですがこの辺で切り上げようと思います。
書いたコードたち
gitに上げました。
APIキーはプロパティファイルに入れておかないと、401エラーが出てAPIのリクエストが返ってきません。
参考リンク
SpringBoot+Thymeleaf使用時、HTMLからCSSやJSファイルを参照する
Qiita:Spring Boot で Thymeleaf 使い方メモ