FitStack is a full-stack fitness tracking web application designed to help users monitor workouts, track nutrition, and receive personalised fitness recommendations through an integrated assistant system. The platform aims to combine key features commonly spread across multiple fitness applications into a single responsive system.
- User authentication using JWT
- Personalised calorie and protein target generation
- Workout logging with exercises, sets, reps and weight tracking
- Nutrition tracking with food search integration
- Favourite foods system for faster food logging
- Interactive dashboard with:
- calorie progress
- protein progress
- weekly charts
- Collapsible workout history interface
- Responsive user interface built with Tailwind CSS
- PostgreSQL database integration using Prisma ORM
- React
- Vite
- Tailwind CSS
- Node.js
- Express.js
- Prisma ORM
- JWT Authentication
- bcrypt
- PostgreSQL
- Postman
- Git & GitHub
- VS Code
The application follows a three-tier architecture:
-
Presentation Layer
- React frontend interface
- Handles user interaction and data visualisation
-
Application Layer
- Express.js backend API
- Handles authentication, business logic and API communication
-
Data Layer
- PostgreSQL database managed through Prisma ORM
- Stores users, workouts, meals and dashboard data
git clone <repository-url>Open the project folder in Visual Studio Code.
Ensure PostgreSQL is installed and running.
Create a PostgreSQL database for the project.
Example:
fitness_trackerCreate a .env file inside the server folder and add:
DATABASE_URL=your_database_connection_string
JWT_SECRET=your_secret_keycd client
npm installcd server
npm installInside the server folder run:
npx prisma generate
npx prisma migrate deployOpen two terminals.
cd client
npm run devcd server
npm run devNavigate to:
http://localhost:5173API endpoints were tested using Postman to validate:
- authentication
- workout routes
- nutrition routes
- dashboard functionality
- favourite food functionality
Black-box and white-box testing approaches were used throughout development.
Potential future enhancements include:
- expanded exercise database
- cardio activity tracking
- improved mobile responsiveness
- wearable device integration
- enhanced AI recommendation system
This project was developed as part of a final year Software Engineering dissertation project. This repository is intended for academic and portfolio purposes.
The system is still actively being developed and refined. Additional features, UI improvements and optimisations are planned for future iterations.
🚧 Work in Progress 🚧