|
|
4 kuukautta sitten | |
|---|---|---|
| .vscode | 4 kuukautta sitten | |
| app | 4 kuukautta sitten | |
| content | 4 kuukautta sitten | |
| data | 4 kuukautta sitten | |
| emails | 4 kuukautta sitten | |
| locales | 4 kuukautta sitten | |
| prisma | 4 kuukautta sitten | |
| public | 4 kuukautta sitten | |
| scripts | 4 kuukautta sitten | |
| src | 4 kuukautta sitten | |
| .cursorrules | 4 kuukautta sitten | |
| .env.example | 4 kuukautta sitten | |
| .gitignore | 4 kuukautta sitten | |
| .npmrc | 4 kuukautta sitten | |
| .prettierrc | 4 kuukautta sitten | |
| CONTRIBUTING.md | 4 kuukautta sitten | |
| README.md | 4 kuukautta sitten | |
| components.json | 4 kuukautta sitten | |
| eslint.config.mjs | 4 kuukautta sitten | |
| middleware.ts | 4 kuukautta sitten | |
| next.config.ts | 4 kuukautta sitten | |
| nextauth.d.ts | 4 kuukautta sitten | |
| package.json | 4 kuukautta sitten | |
| pnpm-lock.yaml | 4 kuukautta sitten | |
| postcss.config.mjs | 4 kuukautta sitten | |
| tailwind.config.ts | 4 kuukautta sitten | |
| tsconfig.json | 4 kuukautta sitten |
A comprehensive fitness coaching platform that allows trainers to manage their clients, create workout plans, track progress, and access a vast exercise database with detailed instructions and video demonstrations.
Clone the repository
git clone https://github.com/mathiasbradiceanu/workout-cool.git
cd workout-cool
Install dependencies
pnpm install
Set up environment variables
cp .env.example .env
Fill in your database URL and other required environment variables:
DATABASE_URL="postgresql://username:password@localhost:5432/workout_cool"
BETTER_AUTH_SECRET="your-secret-key"
# ... other variables
Set up the database
npx prisma migrate deploy
npx prisma generate
Start the development server
pnpm dev
Open your browser Navigate to http://localhost:3000
The project includes a comprehensive exercise database. To import a sample of exercises:
Your CSV should have these columns:
id,name,name_en,description,description_en,full_video_url,full_video_image_url,introduction,introduction_en,slug,slug_en,attribute_name,attribute_value
You can use the provided example.
# Import exercises from a CSV file
pnpm run import:exercises-full /path/to/your/exercises.csv
# Example with the provided sample data
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
STRENGTH, CARDIO, PLYOMETRICS, STRETCHING, etc.QUADRICEPS, CHEST, BACK, SHOULDERS, etc.BARBELL, DUMBBELL, BODYWEIGHT, MACHINE, etc.COMPOUND, ISOLATIONThis project follows Feature-Sliced Design (FSD) principles with Next.js App Router:
src/ ├── app/ # Next.js pages, routes and layouts ├── processes/ # Business flows (multi-feature) ├── widgets/ # Composable UI with logic (Sidebar, Header) ├── features/ # Business units (auth, exercise-management) ├── entities/ # Domain entities (user, exercise, workout) ├── shared/ # Shared code (UI, lib, config, types) └── styles/ # Global CSS, themes
shared → entities → features → widgets → appfeatures/ └── exercise-management/ ├── ui/ # UI components (ExerciseForm, ExerciseCard) ├── model/ # Hooks, state management (useExercises) ├── lib/ # Utilities (exercise-helpers) └── api/ # Server actions or API calls
We welcome contributions! Please see our Contributing Guide for details.
git checkout -b feature/amazing-feature)git commit -m 'feat: add amazing feature')git push origin feature/amazing-feature)# Build the Docker image
docker build -t workout-cool .
# Run the container
docker run -p 3000:3000 workout-cool
# Build the application
pnpm build
# Run database migrations
export DATABASE_URL="your-production-db-url"
npx prisma migrate deploy
# Start the production server
pnpm start
This project is licensed under the MIT License - see the LICENSE file for details.
If you found this project helpful, consider: