# workout-cool **Repository Path**: cpgithub/workout-cool ## Basic Information - **Project Name**: workout-cool - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: chore/add-contributors - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-02 - **Last Updated**: 2025-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
## Contributors [](https://twitter.com/snouzy_biceps) [](https://twitter.com/lucaasnp_) ## About A comprehensive fitness coaching platform that allows create workout plans for you, track progress, and access a vast exercise database with detailed instructions and video demonstrations. ## π― Project Origin & Motivation This project was born from a personal mission to revive and improve upon a previous fitness platform. As the **primary contributor** to the original [workout.lol](https://github.com/workout-lol/workout-lol) project, I witnessed its journey and abandonment. π₯Ή ### The Story Behind **_workout.cool_** - ποΈ **Original Contributor**: I was the main contributor to workout.lol - πΌ **Business Challenges**: The original project faced major hurdles with exercise video partnerships (no reliable video provider) could be established - π° **Project Sale**: Due to these partnership issues, the project was sold to another party - π **Abandonment**: The new owner quickly realized that **exercise video licensing costs were prohibitively expensive**, began to be sick and abandoned the entire project - π **Revival Attempts**: For the past **9 months**, I've been trying to reconnect with the new stakeholder - π§ **Radio Silence**: Despite multiple (15) attempts, there has been no response - π **New Beginning**: Rather than let this valuable work disappear, I decided to create a fresh, modern implementation ### Why **_workout.cool_** Exists **Someone had to step up.** The opensource fitness community deserves better than broken promises and abandoned platforms. I'm not building this for profit. This isn't just a revival : it's an evolution. **workout.cool** represents everything the original project could have been, with the reliability, modern approach, and **maintenance** that the fitness open source community deserves. ## π₯ From the Community, For the Community **I'm not just a developer : I'm a user who refused to let our community down.** I experienced firsthand the frustration of watching a beloved tool slowly disappear. Like many of you, I had workouts saved, progress tracked, and a routine built around the platform. ### My Mission: Rescue & Revive. _If you were part of the original workout.lol community, welcome back! If you're new here, welcome to the future of fitness platform management._ ## Quick Start ### Prerequisites - Node.js 18+ - Either: - Docker - OR PostgreSQL external database - pnpm (recommended) or npm ### Installation 1. **Clone the repository** ```bash git clone https://github.com/Snouzy/workout-cool.git cd workout-cool ``` 2. **Install dependencies** ```bash pnpm install ``` 3. **Set up environment variables** ```bash cp .env.example .env ``` Fill in your database URL and other required environment variables: ```env DATABASE_URL="postgresql://username:password@localhost:5432/workout_cool" BETTER_AUTH_SECRET="your-secret-key" # ... other variables ``` 4. **Set up the database** #### Option 1: Using Docker The project provides a convenient `make` command that handles everything: ```bash make init ``` This single command will: - Start the PostgreSQL database using Docker - Run database migrations - Start the development server #### Option 2: Manual PostgreSQL Setup If you prefer to use your own PostgreSQL installation: ```bash # Run migrations npx prisma migrate deploy npx prisma generate # Start the development server pnpm dev ``` 5. **Open your browser** Navigate to [http://localhost:3000](http://localhost:3000) ## Exercise Database Import The project includes a comprehensive exercise database. To import a sample of exercises: ### Prerequisites for Import 1. **Prepare your CSV file** 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 Commands ```bash # 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 ``` ### CSV Format Example ```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","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 ``` ### Available Attribute Types - **TYPE**: `STRENGTH`, `CARDIO`, `PLYOMETRICS`, `STRETCHING`, etc. - **PRIMARY_MUSCLE**: `QUADRICEPS`, `CHEST`, `BACK`, `SHOULDERS`, etc. - **SECONDARY_MUSCLE**: Secondary muscle groups targeted - **EQUIPMENT**: `BARBELL`, `DUMBBELL`, `BODYWEIGHT`, `MACHINE`, etc. - **MECHANICS_TYPE**: `COMPOUND`, `ISOLATION` ## 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. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Make your changes 4. Commit your changes (`git commit -m 'feat: add amazing feature'`) 5. Push to the branch (`git push origin feature/amazing-feature`) 6. Open a Pull Request ### Code Style - Follow TypeScript best practices - Use Feature-Sliced Design architecture - Write meaningful commit messages - Add tests for new features ## Deployment ### Using Docker (Not ready yet : todo) ```bash # Build the Docker image docker build -t workout-cool . # Run the container docker run -p 3000:3000 workout-cool ``` ### 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. [](https://choosealicense.com/licenses/mit/) ## π€ 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 - π **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 πͺ