LINE BOOT AWARDS 2018 ハッカソン@大阪に参加、
チーム「STRONG ZERO」で「さくらインターネット賞」をいただきました。

プレゼンやデモの際にあまり技術的なことを言わなかったのでその辺りも合わせて記事にしてみました。

何を作ったか

アプリ名は「こども病気相談」というアプリで、ClovaとMessagingAPI、Twilioを使ったアプリです。

具体的には、こどもが体調悪い時などに、親がClovaに向かって症状や内容などを話しかけると、
・緊急
・病院行った方がいい
・しばらく様子見
などのアドバイスが貰え、
・緊急の場合は119番に発信
・病院行った方がいい場合は、タクシーの予約を自動的に行い、土日や深夜の場合、当直病院をお知らせしてくれる
・AIだけじゃ心配な場合は相談窓口の電話を調べて電話してくれる。
というサービスです。

詳しくはプレゼンのスライドをアップしたのでそちらを見てみてください。

チーム名の意味

チーム名は「STRONG ZERO」。
深い意味は特になく、チームメンバーに酒好きが多かったのと、強くて勝てそうな感じの名前なのでこれになりましたw

チーム構成

エンジニア : 3名(私含む)
デザイナー : 1名
の計4名のチームで開発しました、アイデアの発案が私だったのでとりあえず私が名ばかりリーダーに。

開発については、チームのエンジニアさんがすばらしかったので特に問題なく、 途中で大幅な方向転換があったにもかかわらず無事にデモできるレベルにまでもっていけました。

また、プレゼン時のスライドやアプリのアイコンなど、デザイナーさんもすばらしいものを作っていただきました。
特に、プレゼンのスライド作成を時間がない上、Googleスライドの経験が無い中、がっつり丸投げしちゃったんですが、きっちり作ってくださいました。

なぜ、このアプリを作ったか

元々は自分がアイデアソンの中で、
「体調ヤバイ時にClovaに向かって”風邪っぽいから病院選んでタクシー読んで”とか言ったら、病院の予約をしてくれて、家までタクシーが迎えに来てくれるサービスとかあったらいいよね。」
という所からブラッシュアップしていきました。

話の中で、「そんなに大人になったら病院行かないよね、どっちかというと子供は行くけど」という所から、
ターゲットを「子供を持つ経験の浅い親」にしぼり、 さらに症状からアドバイスしてくれる機能を追加しました。

困った点

ClovaにPush機能が無い

タクシーの予約完了時やタクシー到着時に「着いたよ」としゃべって貰おうと思ったのですが、
現状、Clovaはリプライ(こちらからの発話に対応)しかできないので本機能は実現できないことが分かりました。

解決策として、MessagingAPIを使ってスマホのLINEアプリで通知してもらうこととしました。

タクシー予約APIでよいのがなかった

タクシーを予約できるAPIがあるかなと思ったのですが、公開されているものは、Uberくらいしかなく、関西ではUberは一部エリアしか対応してませんでした。

解決策として、Twilioの合成音声で電話し、タクシー会社に連絡し予約を行うことで、対応しました。

どれくらい出来たか

一連の流れはほぼほぼ完成。
症状の判別及びアドバイスは数パターンを決め打ちで書いており、その部分のAIはデータと時間が無かったのでほぼモック状態ですが。

サーバー構成

サーバーはすべて、さくらインターネット!!!!、、、を使いたかったのですが、
各人の得意分野がFirebaseとAWSだったので各担当分で得意なインフラにしました。
その為、
Clova周り・・・Firebase
Messaging API周り・・・AWS
予約・電話連携周り・・・Twilio
といろいろバックエンドがバラバラな構成でした。
(私はClova周りをFirebaseで実装。)
各サービス間はAPIでやりとりしてます。

サービス & 言語

Firebaseは、Cloud Functions、
AWSはAPIGateway+Lambda+DynamoDBで、
言語は両方ともJavascriptのNode.js(version 8)。

Clovaは前日にひどいアプリを作った経験が活かされ、

環境構築はさくっとできたので、開発に集中でき、開発中もそれほど困ったことはClova周りでは起こりませんでした。

感想

かなり久しぶりのハッカソンなのでやり方がわからない上にリーダーやっちゃったのでいろいろ迷惑かけましたが、
いい感じの達成感がありました。

なぜか筋肉痛になりましたが。