Trainix is a modern full-stack web application for personal fitness, progress analysis, and nutrition planning.
It uses AI to analyze photos, generates individual workout and nutrition plans, stores measurements, sends notifications, and allows you to track your progress.
⚡️ Free Render server — cold start up to 3 minutes
👉 View Demo
- Frontend: Next.js, React, Tailwind CSS, Redux Toolkit, TanStack Query
- Backend: Express.js, MongoDB, JWT Auth, AWS S3, OpenAI API
- Testing: Jest, Playwright, Supertest
- DevOps: Docker, Render
- AI photo progress analysis
- Fitness and nutrition plan generation
- Body measurements and progress history
- Notifications and advice
- User authentication (JWT)
- Photo storage on AWS S3 with CDN CloudFront
- OpenAI integration with python api using
POST /api/auth/login— LoginPOST /api/auth/register— RegisterGET /api/fitness-plan— Get fitness planPOST /api/fitness-plan— Generate fitness planGET /api/nutrition-plan— Get nutrition planPOST /api/measurements— Add measurementsGET /api/notifications— Get notifications
- Unit & Integration: Jest
- E2E: Playwright
- Backend API: Supertest
Run tests:
# Frontend
npm run test --- not still working # Jest
npx playwright test # Playwright
# Backend
npm run test # Jest & Supertestgit clone https://github.com/gaykun1/Trainix.git
cd Trainix
cd frontend && npm install
cd ../backend && npm install- Copy
.env.exampleto.envin bothfrontend/andbackend/ - Fill in your MongoDB URI, AWS keys, OpenAI API, JWT secret
Frontend:
cd frontend
npm run devBackend:
cd backend
npm run devcd backend
docker build -t trainix-backend .
docker run -p 5200:5200 trainix-backendThis project is licensed under the GNU GPL v3.
Made with ❤️ by gaykun1