Workout.cool是一个健身教练平台,能创建健身计划、追踪进度,能访问庞大的锻炼数据库,里面有详细的操作说明和视频演示。
Workout.cool采用现代技术栈(Next.js + PostgreSQL),支持多语言、视频指导。
训练计划定制:可视化创建个性化健身计划、支持按肌群、器械类型筛选动作。
进度追踪:记录训练组数/次数/负重、生成历史数据图表。
运动数据库:包含 200+ 带视频演示的动作、多语言支持、动作属性筛选(类型、主肌肉群等)。
安装环境要求:Node.js(v18+),pnpm(v8+),Docker
克隆仓库
git clone https://github.com/Snouzy/workout-cool.git
cd workout-cool
选择安装方式:
复制环境变量
cp .env.example .env
启动所有开发服务:
make dev
这会在Docker中启动数据库、运行迁移、填充数据库,然后启动Next.js开发服务器。
停止服务可以运行make down
打开浏览器,访问http://localhost:3000
手动安装
安装依赖
pnpm install
复制环境变量
cp .env.example .env
设置PostgreSQL数据库
如果本地没有,先安装PostgreSQL
创建名为workout_cool
的数据库:createdb -h localhost -p 5432 -U postgres workout_cool
运行数据库迁移
npx prisma migrate dev
填充数据库(可选)
查看“锻炼数据库导入”部分
启动开发服务器
pnpm dev
打开浏览器,访问http://localhost:3000
项目包含一个全面的锻炼数据库。要导入锻炼样本:
准备CSV文件
CSV需要包含这些列:
id,name,name_en,description,description_en,full_video_url,full_video_image_url,introduction,introduction_en,slug,slug_en,attribute_name,attribute_value
可以使用提供的示例。
# 从CSV文件导入锻炼数据
pnpm run import:exercises-full /path/to/your/exercises.csv
# 使用提供的样本数据的示例
pnpm run import:exercises-full ./data/sample-exercises.csv
id,name,name_en,description,description_en,full_video_url,full_video_image_url,introduction,introduction_en,slug,slug_en,attribute_name,attribute_value
157,"Fentes arrières à la barre","Barbell Reverse Lunges","<p>Stand upright...</p>","<p>Stand upright...</p>",https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,TYPE,STRENGTH
157,"Fentes arrières à la barre","Barbell Reverse Lunges","<p>Stand upright...</p>","<p>Stand upright...</p>",https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,PRIMARY_MUSCLE,QUADRICEPS
想在本地开发时获得无限的锻炼数据?
可以用./scripts/import-exercises-with-attributes.prompt.md
中的提示词问chatGPT。
要在数据库中填充样本锻炼数据,把SEED_SAMPLE_DATA
环境变量设为true
。
# 构建Docker镜像
docker build -t yourusername/workout-cool .
# 运行容器
docker run -p 3000:3000 --env-file .env.production yourusername/workout-cool
DATABASE_URL
把host
改成指向postgres
服务,而不是localhost
DATABASE_URL=postgresql://username:password@postgres:5432/workout_cool
docker compose up -d
# 构建应用
pnpm build
# 运行数据库迁移
export DATABASE_URL="your-production-db-url"
npx prisma migrate deploy
# 启动生产服务器
pnpm start