推しアイデア
リアルタイムフォーム分析、ゆっちんトレーナー、ゲーミフィケーション要素、成長の可視化など機能、要素がモリモリです!
リアルタイムフォーム分析、ゆっちんトレーナー、ゲーミフィケーション要素、成長の可視化など機能、要素がモリモリです!
ゆっちんという生きる面白素材を活かす+筋トレ
・姿勢推定でゆっちんが筋トレアドバイス&応援 ・FastAPI自作認証機能 ・railway一括デプロイ
プテラカップ2025テーマ「四年に一度」 四年に一度→オリンピック→スポーツ→体を動かす→筋トレ
「じょぎのおもしれー女」こと ゆっちん をトレーナーキャラとして全面に押し出したリアルタイムフォーム矯正・筋トレ支援アプリです。 カメラ映像からユーザーの姿勢をリアルタイムで分析し、適切なトレーニングフォームを指導します。
細かいところまでUI/UXを考えてモリモリ実装しました!!!
「最低限必要な機能ができたからOK」「それっぽく動いてるからいいでしょ」の妥協はなし。
実用レベルの完成度を目指して開発しました。






画面の様子はデモ動画参照 デモ動画
筋トレ駆動開発💪💪💪 デバッグ作業が筋トレなので身体的に疲れました。 開発での精神的疲れと物理的な身体的疲れのダブルコンボで死にそうでした。 アウトドアの趣味を持っていないプログラマーは運動不足になりがちですが、このプロダクトの開発に関してはその心配はなしですd(^_^o)





姿勢推定にはMediaPipe Poseを使用しています。 Webカメラの映像からユーザーの身体にある33箇所のランドマーク(関節などの特徴点)の3次元座標をリアルタイムに検出します。
座標系と角度計算の基本 判定には主に、3つのランドマーク(点A, 点B, 点C)が成す角度を使用します。
機能 上記の姿勢推定を活用して正しい姿勢か判定し、アドバイスや応援をトレーナーキャラのゆっちんが行ってくれます。 また、姿勢推定による自動カウント機能も全種目で搭載!
プランクに関しては横からの角度のみの判定ですが、スクワットと腕立て伏せは正面/横での二つの角度からの判定が可能。 また、横角度の判定は右左どちらでも可能にしています。(より明確に判定できる方を採用)
設定画面 or 筋トレ画面内にfps切り替え機能を搭載。 デバイスのスペックに応じて切り替えることが可能です。
スマホでのログイン、アプリ利用が可能 UIもモバイル対応のものを用意。
なんと28枚のオリジナル画像素材+43種類のオリジナルボイス素材!!!!! 計71種類のオリジナル素材を使用しております! 筋トレのアドバイス、応援のほか、画面遷移や設定変更でも元気が出るゆっちんボイスを聞くことができます!(技術の無駄遣い)
レアリティ(Normal,Rare,SR,UR,Secret)ごとに変化するゆっちんゲット演出を実装(かなり凝った演出を実装しています) レアリティ高いものだとソシャゲ風にセリフが出てからキャラが出現する演出を実装しています。 技術の無駄遣いポイントが高い
N:筋トレ累計30(回+秒)を超えるたびにランダム取得 R:筋トレ累計100(回+秒)を超えるたびにランダム取得 SR(リスカゆっちん):スクワット10ターン(30×10=300回) SR(たまごゆっちん):腕立て10ターン(30×10=300回) SR(鹿ゆっちん【神鹿】):プランク10ターン(30×10=300秒) UR:筋トレ累計回数1000(回+秒) シークレット:筋トレ総回数100(3000回+秒)ターン
ネタアプリなのに結構真面目に認証機能を自前で用意しました。技術の無駄遣いポイントです。
ログイン時: バックエンドはJWT (JSON Web Token) を生成し、HttpOnly CokkieとBearerTokenの2つの形式でクライアントに渡す ↓ 通信時: フロントエンド(Axios)は、リクエストヘッダーにトークンを付与して送信 ↓ 検証時: バックエンドは「Cookie」と「Authorizationヘッダー」のどちらか一方でも有効なトークン(JWT)があれば、正規のユーザーとして認証する
ジョジョジョの最高にお淑やかなメンバーを紹介するぜ!!!ヘェッ!!!!!
「情報工学部情報工学科情報技術研究部所属」なので略して「ジョジョジョ」チームです。
→ ということで開発の進め方は工夫しました 開発経験者のみのチームであれば割と雑に、ノリで進めても上手くいく場合が多いが、今回はそうではない。
リタ1人が3人にフロントとバックをつきっきりで教えながら、3人分のコードレビューを普通にするのは流石に辛い...
初心者が多いチームということで開発の進め方に関しては出来るだけ安全に、楽に、円滑に進められるように、開発ルールの明確な定義やツール導入、ドキュメント整理など事前に入念な準備をしておきました
1人で3人のコードレビューをするのはさすがに辛い... ということでチームメンバーにコードレビュー担当のうさぎさん🐇を加入させました。
修正してもいいレビューかどうかはチェックする必要はありますが、3人のコードを一行ずつチェックしてレビューする労力は必要なくなったのでかなり助かりました。うさぎさんありがとう!!!
開発中、3人にずっとつきっきりで教えて自分の開発時間が激減するのは辛い...
ということでこれさえ見ればある程度自力で開発できる開発マニュアルをNotionで作成し、チームメンバーに共有しました。
要件定義や環境構築、技術選定などもいつでも見返して参照できるように都度まとめておきました。
使えるものは使っていけ!
ということでGitHub Projectの機能を使ってカンバンでタスク管理!
ラベルや優先度、担当者など明確にタスクの分類分けをして円滑なチーム開発を図りました!

developの環境でうまく動いて問題ないことが確認された →mainにdevelopをマージして本番環境で動かす というルールにしました。
保険として間にdevelopを挟み、デフォルトブランチをmain→developに変更することで問題のあるコードを本番環境に上げる可能性を下げました。-