Stand upright...
","Stand upright...
",https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,TYPE,STRENGTH 157,"Fentes arrières à la barre","Barbell Reverse Lunges","Stand upright...
","Stand upright...
",https://youtube.com/...,https://img.youtube.com/...,slug-fr,slug-en,PRIMARY_MUSCLE,QUADRICEPS ``` Want unlimited exercise for local development ? Just ask chatGPT with the prompt from `./scripts/import-exercises-with-attributes.prompt.md` ## Project Architecture This 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 ``` ### Architecture Principles - **Feature-driven**: Each feature is independent and reusable - **Clear domain isolation**: `shared` β `entities` β `features` β `widgets` β `app` - **Consistency**: Between business logic, UI, and data layers ### Example Feature Structure ``` features/ βββ exercise-management/ βββ ui/ # UI components (ExerciseForm, ExerciseCard) βββ model/ # Hooks, state management (useExercises) βββ lib/ # Utilities (exercise-helpers) βββ api/ # Server actions or API calls ``` ## Contributing We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details. ### Development Workflow 1. **Create an issue** for the feature/bug you want to work on. Say that you will work on it (or no) 2. Fork the repository 3. Create your feature|fix|chore|refactor branch (`git checkout -b feature/amazing-feature`) 4. Make your changes following our [code standards](#code-style) 5. Commit your changes (`git commit -m 'feat: add amazing feature'`) 6. Push to the branch (`git push origin feature/amazing-feature`) 7. Open a Pull Request (one issue = one PR) **π For complete contribution guidelines, see our [Contributing Guide](CONTRIBUTING.md)** ### Code Style - Follow TypeScript best practices - Use Feature-Sliced Design architecture - Write meaningful commit messages ## Deployment / Self-hosting To seed the database with the sample exercises, set the `SEED_SAMPLE_DATA` env variable to `true`. ### Using Docker ```bash # Build the Docker image docker build -t yourusername/workout-cool . # Run the container docker run -p 3000:3000 --env-file .env.production yourusername/workout-cool ``` ### Using Docker Compose #### DATABASE_URL Update the `host` to point to the `postgres` service instead of `localhost` `DATABASE_URL=postgresql://username:password@postgres:5432/workout_cool` ```bash docker compose up -d ``` ### Manual Deployment ```bash # 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 ``` ## Resources - [Feature-Sliced Design](https://feature-sliced.design/) - [Next.js Documentation](https://nextjs.org/docs) - [Prisma Documentation](https://www.prisma.io/docs/) - [Better Auth](https://github.com/better-auth/better-auth) ## License This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. [](LICENSE) ## π€ Join the Rescue Mission **This is about rebuilding what we lost, together.** ### How You Can Help - π **Star this repo** to show the world our community is alive and thriving - π¬ **Join our Discord** to connect with other fitness enthusiasts and developers - π **Report issues** you find. I'm listening to every single one - π‘ **Share your feature requests** finally, someone who will actually implement them ! - π **Spread the word** to fellow fitness enthusiasts who lost hope - π€ **Contribute code** if you're a developer : let's build this together ## π Sponsor This Project Appear in the README and on the website as supporter by donating:
If you believe in open-source fitness tools and want to help this project thrive,
consider buying me a coffee β or sponsoring the continued development.
Your support helps cover hosting costs, exercise database updates, and continuous improvement.
Thank you for keeping workout.cool alive and evolving πͺ