概要
workout.cool は、オープンソースの フィットネスコーチングプラットフォーム。 トレーニングプラン作成、進捗管理、豊富な エクササイズデータベース を提供。 workout.lol の後継として、信頼性と現代的な設計で再構築。 コミュニティ主導 で開発、貢献やアイデア提案も歓迎。 MITライセンス で公開、誰でも利用・参加可能。
workout.cool プロジェクト概要
- workout.cool は、個人やトレーナー向けの フィットネスプラットフォーム
- ワークアウトプラン作成、進捗トラッキング、詳細な エクササイズデータベース 利用可能
- 各エクササイズには 動画デモ ・説明文付き
- オープンソース で透明性・拡張性を重視
- コミュニティの声 を反映した開発体制
プロジェクト誕生の経緯・動機
- 元プロジェクト workout.lol の主要コントリビューターとして活動
- 動画パートナー問題 で信頼できる動画プロバイダー確保できず、事業売却
- 新オーナーも 動画ライセンス費用高騰 で放棄
- 9ヶ月間、新オーナーへ 再接触を試みたが音信不通
- 貴重な資産を埋もれさせないため、 workout.cool として新たに開発を決意
- 利益目的ではなく、コミュニティのため に進化版を提供
コミュニティへの想い
- 開発者でありユーザー としての立場から、ツール消滅の悔しさを体験
- 進捗記録やルーチン が消失した多くのユーザーのために再建
- Rescue & Revive のミッション
- 旧workout.lolユーザーも新規参加者も歓迎
- 信頼できるOSSフィットネス基盤 の実現
クイックスタート
-
前提条件
- Node.js 18以上
- Docker または外部PostgreSQL
- pnpm(推奨)またはnpm
-
インストール手順
- リポジトリをクローン
- 依存パッケージをインストール(pnpm install)
- .envファイル作成し、必要な環境変数を入力
- データベース初期化(Dockerならmake init、手動ならPrismaコマンド実行)
- ブラウザで http://localhost:3000 にアクセス
エクササイズデータベースのインポート
- CSVファイル でエクササイズ情報を一括インポート可能
- 必要カラム:id, name, name_en, description, description_en, full_video_url など
- コマンド例:
- pnpm run import:exercises-full /path/to/your/exercises.csv
- サンプルデータも提供
- 属性種別 例:TYPE(STRENGTH等)、PRIMARY_MUSCLE(QUADRICEPS等)、EQUIPMENT(BARBELL等)
プロジェクトアーキテクチャ
-
Feature-Sliced Design(FSD) と Next.js App Router を採用
-
ディレクトリ構成:
- app/(ページ・ルーティング)
- processes/(複数機能の業務フロー)
- widgets/(Sidebar等の再利用UI)
- features/(認証・エクササイズ管理等の業務単位)
- entities/(user, exercise, workout等のドメイン)
- shared/(共通UI、ライブラリ、型定義)
- styles/(CSS・テーマ)
-
設計原則
- 各機能は独立・再利用可能
- ドメインごとに明確に分離
- ビジネスロジック・UI・データ層の一貫性
今後のロードマップ
- 新エクササイズ・動画追加
- モバイルアプリ(React Native)
- バッジ・ゲーミフィケーション
- 高度な進捗統計
- ウェアラブル連携
- 多言語対応
- OAuth認証(Google, Apple等)
- コミュニティフォーラム統合
- Issueで アイデア提案 歓迎
コントリビュート方法
- 貢献ガイド 参照
- 開発フロー:
- リポジトリをフォーク
- フィーチャーブランチ作成
- 変更をコミット・プッシュ
- プルリクエスト作成
- コードスタイル
- TypeScriptベストプラクティス
- Feature-Sliced Design遵守
- 意味のあるコミットメッセージ
- 新機能にはテスト追加
デプロイ方法
- Docker利用(準備中)
- docker build -t workout-cool .
- docker run -p 3000:3000 workout-cool
- 手動デプロイ
- pnpm build
- データベースマイグレーション(npx prisma migrate deploy)
- 本番サーバ起動(pnpm start)
参考リソース
- Feature-Sliced Design
- Next.js Documentation
- Prisma Documentation
- Better Auth
ライセンス
- MITライセンス
- LICENSEファイル参照
サポート・スポンサーシップ
- GitHubスター で応援
- Issue報告・機能提案 で改善参加
- 開発貢献 も大歓迎
- 寄付・スポンサー で継続的な運営支援
- サポーターはREADMEやWebサイトに掲載
- ホスティング・データベース更新・機能拡張費用に活用
- workout.cool の進化を共に支えるコミュニティ