TRI-KNOT

https://github.com/trihackathon/app

Next.js

Go

TypeScript

GCP

PostgreSQL

3人1組の連帯責任で「サボり」を防ぐ、運動習慣化監視アプリ。

oto

えぬいち

ゆき

推しアイデア

GPS機能を使って不正行為を排除した習慣アプリ 縄の解け具合でHPがどのくらい減っているかを確認できる

作った背景

「1人だと甘えてしまう」という人間の弱さを、技術と連帯責任で解決したいと考えました。あえて「仲間に迷惑をかける」という心理的負荷を設計し、逃げ場をなくすことで、三日坊主を卒業させるため開発しました。

推し技術

Three.jsで縄を3Dで表現 GoのGPSのAPIを使用して速度や距離を精度高く出力できる

プロジェクト詳細

「TRI-KNOT」は、3人1組のチームで運動習慣を監視し合う、連帯責任型の習慣化プラットフォームです。従来の「自己満足」や「緩い応援」による継続手法を否定し、「自分がサボれば仲間に実害が出る」という心理的プレッシャーを継続の原動力に変えます。


コア・システム

縄の結び目(チームHPシステム)

チームの絆を「100HPの縄」として可視化。

全員達成: HP回復。

誰か1人でも失敗: チーム全員のHPが一人失敗するごとに15減少。 そして、失敗した人以外の来週のノルマが1.5倍になる。全員失敗した場合は全員のノルマが2倍になる。

HP 0: チームが強制解散する。それまでの努力が水の泡になる絶望感を与えます。 image

自動Heartbeat(客観的検証)

バックエンド主導の自動判定により、嘘を許しません。

ランニング: GPS軌跡と移動速度(時速30km以下)を常時監視し、移動距離を自動計算。

ジム: ジオフェンス(位置情報)により、登録ジムへの滞在時間を自動計測。

画面遷移

image

各画面について

ホーム画面

・体力バーの「縄」 ・チーム状況

image メンバー状況

運動実行画面

計測メーター: 走行距離、経過時間、現在の時速を大きく表示。

不正警告バナー: 速度が時速30kmを超えると「乗り物検知:記録が無効になります」と赤く警告。

チーム進捗通知: 「Aさんが走行を開始しました」「Bさんが目標達成!」といったメッセージが画面上部を流れます。

image

レビュー画面

軌跡マップ表示: 走り終わったルートをMapboxで地図上に描写。

検証データリスト: 滞在時間、平均心拍数、歩数などの客観データを表示。

ピアレビューボタン: 仲間の記録に対し、「承認」または「疑義あり(ルートが不自然など)」を投票。

image

通知画面

チームでどれくらい達成しているか通知してくれる画面 image

分析画面

HP推移:一週間のHPの推移が確認できる

活動量推移:一週間の活動量が確認できる

リスク分析:どの日が失敗しやすいか失敗リスクを示してくれる

image

技術スタック

フロントエンド

フレームワーク:Next.js 使用言語:Typescript スタイリング: Tailwind CSS v4 状態管理: Zustand

バックエンド

フレームワーク: Echo 使用言語: Go データベース: PostgreSQL (Supabase) 画像保存:Cloudflare R2 認証:Firebase Authenication

ホスティング

フロント:Vercel バック:Cloud Run

その他

コンテナ:Docker API:swagger

image

oto

@oto