Skip to content

Latest commit

 

History

133 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FitCoach logo

FitCoach

Set your goal, pick your availability, and let a strict AI coach generate a workout schedule — then review everything day-by-day in a calendar.

Demo / Screenshots · Features · Tech Stack · Getting Started

Demo / Screenshots

Demo video: YouTube Link

Screenshots

Login page Goal settings page Calendar page Dark mode

Features

  • Login / Logout: Sign in securely and keep your session protected.
  • Goal setup: Choose your fitness goal from a simple dropdown.
  • Availability & time slots: Select your workout days and the time windows you can train.
  • AI schedule generation (Gemini): Generate a weekly workout plan based on your goal and availability.
  • Calendar view: Browse your plan in a clean calendar layout.
  • Day details panel: Click any date to see the workout details and description for that day.

Tech Stack

Frontend

  • React (UI)
  • Vite (dev server & build)
  • FullCalendar (calendar UI)
  • MUI (forms, dialogs, buttons)
  • Tailwind CSS (layout & styling)

Backend

  • Node.js + Express (REST API)
  • PostgreSQL + Sequelize (data persistence / ORM)
  • Gemini API (AI schedule generation)

Getting Started

Prerequisites

This project currently runs locally only (no hosted backend yet). To run it on your machine, you’ll need:

  • Node.js (LTS recommended)
  • PostgreSQL (local instance)
  • Gemini API key (from Google AI Studio)

Installation

Clone the repository, then install dependencies for both the client and server.

git clone <YOUR_REPO_URL>
cd <YOUR_REPO_NAME>

Install client dependencies

cd client
npm install

Install server dependencies

cd ../server
npm install

Environment Variables

⚠️ Do not commit .env files. Keep API keys private.

Client (/client/.env)

Create a .env file inside the client folder:

VITE_API_BASE_URL=http://localhost:3033
VITE_API_AI_BASE_URL=https://generativelanguage.googleapis.com/v1beta
VITE_API_API_KEY=your_gemini_api_key
  • VITE_API_BASE_URL: Base URL of your local backend server.
  • VITE_API_AI_BASE_URL: Gemini API base URL.
  • VITE_API_API_KEY: Your Gemini API key. Create one in Google AI Studio.

Server (/server/.env)

Create a .env file inside the server folder:

DB_USERNAME=your_db_username
DB_PASSWORD=your_db_password
  • DB_USERNAME / DB_PASSWORD: PostgreSQL credentials used by the server.

Run Locally

You’ll need to run both the backend server and the frontend client.

1) Start the backend

From the project root:

cd server

Start the server

node index.js

2) Start the frontend

Open a new terminal, then from the project root:

cd client
npm run dev

Local URLs

  • Frontend: http://localhost:5173
  • Backend: http://localhost:3033

Roadmap / Remaining Tasks

  • Edit scheduled events: Update or reschedule existing workout activities from the calendar.
  • Multiple time slots per week: Support multiple availability windows (e.g., Mon 1–3 PM, Wed 6–8 PM).
  • Log activity + progress tracking: Mark workouts as done and track progress over time (e.g., charts / stats).
  • AI feedback: Get personalized feedback based on your activity logs and consistency.
  • “Angry coach” mode: If you skip a workout, the AI coach reacts accordingly 😡 (motivational reminders / roast-style feedback).

Known Issues / Limitations

  • Demo configuration: The AI prompt is currently set to generate one activity per day for one week only.
  • Single goal per user: Each user can only have one active goal at the moment (multiple goals are not supported yet).

Contributors / Team

Development Team

  • Mattias Bygge
  • Takamichi Oki
  • Thanh Chu

Project Context

Built as a team project for the Codeworks Thesis.

License

MIT

About

An Ai integrated workout coach and planner

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages