JUNのブログ

JUNのブログ

活動記録や技術メモ

学内ハッカソンに出て企業賞もらいました。

3月2日に行われた鳥羽商船ハッカソンに出てきました。

このハッカソンはビギナークラスとシニアクラスに分かれていて、ビギナークラスに申し込んだんですが、なぜか私はシニアクラスになりました。(多分ハッカソン出まくってるから)

作ったもの

うちの寮の寮食のTwitterBOT
その名も 暁寮寮食BOT!!

とりあえずスライド見てもらったほうが早いんでどうぞ

はい。まぁこんな感じです。 基本的にスライド以外に追加で情報をいくつか説明したいと思います。

6ページ目のBOTスクリプトの定期実行の部分はHerokuのアドオンであるschedulerを使っています。

7ページ目のデータベースへの登録部分ですが、もう少し詳しく説明します。
サーバー内部は図の通り、GCP compute engine + Nginx + uWSGI + Django です。OSはUbuntuを使っています。開発時間の8割はこのサーバー部分やってました。割りと苦戦したんですけど、でももうやり方わかったんで数日以内にこのサーバー構成でWebサイトを公開する方法をブログに書きます(多分)

で、サーバー内でどういう処理をしているかというと、まず専用のアップロードフォームを提供しているので、そこから寮食のプリントを撮ったものをアップロードします。そして、その画像からOpenCVを用いて表部分のみを抽出し、それをさらに日付ごと、そこからさらに朝昼晩で画像を分割をし、その分割した画像93枚(31日*3食)をGoogle Cloud Vision API の TEXT DETECTION(文字認識)に投げて、返ってきたレスポンスのJSONデータから文字情報の部分を取り出して、さらに誤認識で "|"や"-"などが含まれている場合があるのでそれを正規表現を使ってそれらの文字以外の記号を捨ててちゃんとキレイな読みやすい文字列にします。その文字列をデータベースに登録していきます。と言った処理をサーバー内でやってます。

8ページのAPI説明の部分ですが、下の部分に書かれてある「URL+年/月/日/ で一日ごとのデータが取れる」というところですが、補足説明をすると、もちろんこの方法だと1日のメニューデータを取得できるのですが、これをURL+年/月/にすると日ごとではなく、1ヶ月すべてのデータが一気に取得できます。活用する場面があるかどうかは知りませんが、まぁこういうことができるよ~ってことで。


暁寮寮食BOTトップページ

結果

見事企業賞であるワイズ賞をいただきました。(まぁタイトルでネタバレしてるけど)
チーム留年プログラマーっていうの結構いじられたんですけど、ウケたんで満足です。

参考にしたサイト