システム構成
アプリの流れ
- アプリでアカウント登録
- 旅行者か案内者を選択できる
- 旅行者は近くの案内者一覧から、案内してほしい人に依頼
- 案内者は依頼されたら承諾できる
- 依頼が承諾されたらマッチング成功
- マッチング後は旅行者に、案内者の位置情報が地図で表示
- 旅行者と案内者が合うと、相手のプロフィールが表示
- プロフィールから「ぐーぽんっ!」できる -「ぐーぽんっ!」では旅行者のカメラでグータッチ写真を撮影
- 撮影した画像は旅行者の端末に保存
- グータッチできているとガチャ画面に遷移
- ガチャは、その土地をモチーフにしたデジタルシールがもらえる
システム説明
フロントエンドはFlutterで作成。iOS/Android/Web対応。 バックエンドはPython FastAPIとSupabseで作成。 WebはGitHub Actions、サーバはEC2にデプロイ。
グータッチ判定はPythonサーバ、ユーザ情報など他はSupabaseサーバで処理。 MediaPipeを使ってグータッチの判定をしている。 MediaPipe Pose Landmarkから、人の数と手の位置を取得。人が二人かつ、推定された手を全探索して閾値以下の距離の手があればグータッチしていると判定した。
ハッカソン当日の審査にて決定