Good Lifter Log(仮)
パワーリフティング大会、シングルベンチプレス大会に出場後、自分の試合結果を記録して 管理ができるサービスです。過去の試合の成績をグラフ化して成績の伸びがわかります。 競技へのモチベーション向上に役立てることができます。
わたしは競技「パワーリフティング」をしています。 「パワーリフティング」とは体を鍛える基本3種目(BIG3)を競技にしたものです。 スクワット、ベンチプレス、デッドリフトの3種目(BIG3)の合計挙上重量を競います。 毎年2~3回の大会に出場しています。
抱えている課題1つ目: 結果を記録をするツールが無いこと。
私もそうですが、選手たちはSNS(X,インスタ)への投稿、紙、携帯のメモ帳ツールなどで記録をしています。 過去の記録を確認したい時、今までの大会成績の記録の伸びをみたい時、検索がし辛いと感じています。 今大会の成績と前大会の成績を比較し、プラスマイナス何kg上がったか、下がったかを毎回手動計算して確認していました。 今大会の入力した結果と、前大会の結果を比較し自動計算して表示してくれたら楽だと感じています。
抱えている課題2つ目: 持参する持ち物・食べ物リストを管理したい
手首の関節や膝関節を保護するサポーター、トレーニングベルト、競技用コスチューム、滑り止め、靴など持ち物が多いです 試合中の栄養補給のための食糧、ドリンクも必要です。 試合中の忘れ物や、あれが欲しかったなあ、など持ち物に対する反省がよくあります。 用意したけれど試合中だと食べにくいもの、スルスル食べやすくエネルギーが出るもの。 飲み物ならどのスポーツドリンクなら力が出やすいか、どれだけ用意すれば最後までエネルギー切れなく試合をこなせるか。 持ち物・食べ物に対する反省点を今まではノートにかいていましたが、検索性が悪くすぐに情報が引き出せません。
「パワーリフティング」の大会の成績と、気づきや反省点の記録、持ち物・食べ物リストを管理できる アプリの開発をしようと思いました。
出場した大会の大会名、試合成績を記録できる
持参する持ち物・食べ物リストを管理できる
持ち物リストの利用イメージ
持参する持ち物・食べ物リスト作成・管理機能
テンプレート作成
持ち物リスト作成
持ち物リスト作成方法
出場予定の大会を登録したあと、予め作成していた持ち物リストを大会名と紐づけて登録可。
持ち物リストの検索方法
X,インスタグラムでの告知。ジムで告知させてもらう。
MVPリリース時 (メインは大会結果を記録したいなので記録のみ)
本リリース時
カテゴリ | 技術 |
---|---|
開発環境 | Docker |
フロントエンド | Bootstrap または TailwindCSS, Hotwire |
バックエンド | Ruby 3.2.2 / Ruby on Rails 7系 |
データベース | PostgreSQL, |
インフラ | Render |
Web API | LINE Messaging API |
その他 | AWS S3 (動画投稿機能追加時に使用検討) |
erDiagram
users ||--|| profiles : "1対1"
users ||--o{ competitions : "1対多"
competitions ||--|| competition_records : "1対1"
users ||--o{ template_names : "1対多"
template_names ||--|| template_categories : "1対1"
template_categories ||--o{ template_items : "1対多"
users ||--o{ itemlist_names : "1対多"
itemlist_names ||--o{ competitions : "1対多"
itemlist_names ||--o{ itemlist_categories : "1対多"
itemlist_categories ||--o{ itemlist_items : "1対多"
users {
int id PK "ID"
string email "メールアドレス"
string crypted_password "暗号化されたパスワード"
string salt "ソルト"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
profiles {
int id PK "ID"
int user_id FK "ユーザーID"
string name "名前"
int gender "性別"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
competitions {
int id PK "ID"
int user_id FK "ユーザーID"
int itemlist_name_id FK "アイテムリスト名ID"
string name "大会名"
string location "開催場所名"
date date "開催日"
int type "大会種別(公式/非公式)"
int gearcategory_type "競技種別(クラシック/エクイップ)"
int category "競技種別(3種か1種か)"
int age_group "年齢別区分"
int weight_class "体重別区分"
int participation_status "出場予定か済みかステータス"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
competition_records {
int id PK "ID"
int competition_id FK "大会情報ID"
float weight "検量体重"
float squat_first_attempt "スクワット第1試技"
float squat_second_attempt "スクワット第2試技"
float squat_third_attempt "スクワット第3試技"
float benchpress_first_attempt "ベンチプレス第1試技"
float benchpress_second_attempt "ベンチプレス第2試技"
float benchpress_third_attempt "ベンチプレス第3試技"
float deadlift_first_attempt "デッドリフト第1試技"
float deadlift_second_attempt "デッドリフト第2試技"
float deadlift_third_attempt "デッドリフト第3試技"
int squat_first_attempt_result "スクワット第1試技判定結果"
int squat_second_attempt_result "スクワット第2試技判定結果"
int squat_third_attempt_result "スクワット第3試技判定結果"
int benchpress_first_attempt_result "ベンチプレス第1試技判定結果"
int benchpress_second_attempt_result "ベンチプレス第2試技判定結果"
int benchpress_third_attempt_result "ベンチプレス第3試技判定結果"
int deadlift_first_attempt_result "デッドリフト第1試技判定結果"
int deadlift_second_attempt_result "デッドリフト第2試技判定結果"
int deadlift_third_attempt_result "デッドリフト第3試技判定結果"
text comment "反省点コメント"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
template_names {
int id PK "ID"
int user_id FK "ユーザーID"
string name "テンプレート名"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
template_categories {
int id PK "ID"
int template_name_id FK "テンプレートID"
string name "テンプレートカテゴリ名"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
template_items {
int id PK "ID"
int template_category_id FK "テンプレートカテゴリID"
string name "テンプレートカテゴリ用アイテム名"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
itemlist_names {
int id PK "ID"
int user_id FK "ユーザーID"
string name "持ち物リスト名"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
itemlist_categories {
int id PK "ID"
int itemlist_name_id FK "アイテムリスト名ID"
string name "アイテムリストカテゴリ名"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}
itemlist_items {
int id PK "ID"
int itemlist_category_id FK "アイテムリストカテゴリID"
string name "アイテムリストカテゴリ用アイテム名"
datetime created_at "作成日時"
datetime updated_at "更新日時"
}