FitTrack is a comprehensive fitness tracking application built with React and Supabase. It allows users to track workouts, monitor progress, set goals, track nutrition, and use various fitness tools.
- User Authentication: Sign up, login, password reset
- Dashboard: Overview of fitness activities and progress
- Workout Tracking: Log and manage workouts
- Progress Monitoring: Visualize progress with charts
- Goal Setting: Set and track fitness goals
- Nutrition Tracking: Log food intake and track macronutrients
- Water Intake Tracking: Monitor daily water consumption
- Fitness Tools: BMI calculator, calorie calculator, workout timer, one-rep max calculator
- Exercise Library: Browse exercises with instructions
- Workout Plans: Create and follow workout plans
- Social Features: Share workouts, follow other users
- Dark Mode: Toggle between light and dark themes
- Frontend: React, React Router, Framer Motion
- State Management: Context API
- Backend & Database: Supabase
- Authentication: Supabase Auth
- Styling: CSS
- Charts: Chart.js
- Icons: React Icons
- Node.js (v14 or higher)
- npm or yarn
- Supabase account
- Create a new Supabase project at https://app.supabase.com
- After creating the project, go to the SQL Editor
- Copy the contents of
supabase/schema.sqland run it in the SQL Editor to create all the necessary tables and functions - Go to Authentication > Settings and configure auth providers as needed
- Get your Supabase URL and anon key from the API settings
-
Clone the repository
git clone https://github.com/yourusername/fittrack.git cd fittrack -
Install dependencies
npm install -
Create a
.envfile in the root directory with your Supabase credentialsVITE_SUPABASE_URL=your-supabase-url VITE_SUPABASE_ANON_KEY=your-supabase-anon-key -
Update the Supabase configuration in
src/config/supabaseClient.jsto use environment variablesconst supabaseUrl = import.meta.env.VITE_SUPABASE_URL; const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY;
-
Start the development server
npm run dev -
Open http://localhost:5173 in your browser
-
Build the project
npm run build -
Deploy the contents of the
distfolder to your hosting provider of choice (Vercel, Netlify, etc.)
VITE_SUPABASE_URL: Your Supabase project URLVITE_SUPABASE_ANON_KEY: Your Supabase anonymous key