Skip to content

a04b04/FitStack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 

Repository files navigation

FitStack🏋️

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.


Features⚡

  • 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

Technologies Used✅

Frontend

  • React
  • Vite
  • Tailwind CSS

Backend

  • Node.js
  • Express.js
  • Prisma ORM
  • JWT Authentication
  • bcrypt

Database

  • PostgreSQL

Additional Tools

  • Postman
  • Git & GitHub
  • VS Code

System Architecture🏗️

The application follows a three-tier architecture:

  1. Presentation Layer

    • React frontend interface
    • Handles user interaction and data visualisation
  2. Application Layer

    • Express.js backend API
    • Handles authentication, business logic and API communication
  3. Data Layer

    • PostgreSQL database managed through Prisma ORM
    • Stores users, workouts, meals and dashboard data

Installation & Setup⚙️

1. Clone the Repository

git clone <repository-url>

2. Open the Project

Open the project folder in Visual Studio Code.


3. Configure PostgreSQL

Ensure PostgreSQL is installed and running.

Create a PostgreSQL database for the project.

Example:

fitness_tracker

4. Configure Environment Variables

Create a .env file inside the server folder and add:

DATABASE_URL=your_database_connection_string
JWT_SECRET=your_secret_key

5. Install Dependencies

Client

cd client
npm install

Server

cd server
npm install

6. Set Up Prisma

Inside the server folder run:

npx prisma generate
npx prisma migrate deploy

7. Run the Application

Open two terminals.

Terminal 1

cd client
npm run dev

Terminal 2

cd server
npm run dev

8. Open the Application

Navigate to:

http://localhost:5173

Testing🔍

API 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.


Future Improvements🚀

Potential future enhancements include:

  • expanded exercise database
  • cardio activity tracking
  • improved mobile responsiveness
  • wearable device integration
  • enhanced AI recommendation system

Developer Notes👨‍💻

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 🚧

About

Final-Year Project which logs workouts, tracks calories and provides personalised fitness feedback

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages