MeinGym is a web app designed to help in plan, execution, and tracking gym workouts with respect to progression and periods in training.
- Training period management
- Exercise tracking and history
- Progress visualization with charts
- Workout planning and scheduling
- Performance scoring and analytics
- Background job processing for data updates
- Frontend: Next.js 14, React, Bootstrap
- Backend: Next.js API routes
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js
- Background Jobs: Bull with Redis
- Testing: Node.js test module with Chai
- Node.js (compatible with Next.js 14.0.4)
- PostgreSQL database
- Redis (for background jobs)
- Clone the repository
- Create apps in GitHub or Google, to auth with NextAuth.js
- Copy .env.dist to .env.local
- Set the environment variables in .env.local
- Install dependencies:
npm ci
- Run database migrations:
npm run prisma:migrate
- Start the development server:
npm run dev
- Start the background workers (optional):
npm run workers
For more detailed development guidelines, see the Project Guidelines.
# Development
npm run dev # Start development server on port 3004
npm test # Run all tests
npm run workers # Start background job workers
# Database
npm run prisma:migrate # Run database migrations
# Releases
npm run release:patch # Create a patch release
npm run release:feature # Create a minor release
npm run release:breaking # Create a major release- Copy the dump file to the project
PROJECT_DIR/dumps - Use psql from docker-container to import the dump from
/dumpsdirectory inside the container:/usr/bin/docker exec -i -t /meingym-db-1 /bin/bash psql --file="/dumps/meingym-2025_10_28_17_34_03.sql" --single-transaction --username=postgres --host=localhost --port=5432 meingym
Current version: 1.21.4