Skip to content

Nachopuerto95/Fittracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 Change language:
Español     English

🏋️ Fittracker

Fittracker demo

Live app

📜 About

Fittracker is a full-stack app to keep track of your training and what you eat on the same dashboard. I built it to scratch my own itch: I wanted one place to log a workout, write down what I cooked, and see how both things were going over time without juggling two or three different apps.

Stack: React + Vite on the frontend, Node + Express + MongoDB on the backend, deployed on Fly.io.

✨ What it does

  • Auth: register / login with JWT, bcrypt for passwords.
  • Workouts: create routines, log sessions, see history.
  • Exercises: catalog of exercises reused across routines.
  • Calendar: every training day and every meal in a monthly view.
  • Food & Recipes: search a food database, log meals, save your own recipes with a rich-text editor.
  • Profile: edit your info and stats.
  • Charts: recharts for quick visual feedback over time.

🧱 Stack

Backend (api/)

  • Node.js + Express
  • MongoDB + Mongoose
  • JWT auth, bcrypt
  • nodemon for local dev

Frontend (web/)

  • React 18 + Vite
  • react-router-dom v6
  • axios for the API layer
  • recharts (progress charts)
  • react-calendar (calendar view)
  • TinyMCE (recipe editor)
  • dayjs for dates

🔧 Run locally

# Backend
cd api
npm install
npm run dev        # http://localhost:3000

# Frontend (another terminal)
cd web
npm install
npm run dev        # http://localhost:5173

You'll need a .env inside api/ with at least MONGO_URI and JWT_SECRET.

🚀 Deploy

The app is deployed on Fly.io. The repo ships with a Dockerfile and fly.toml that build the backend and serve the frontend static bundle.

fly deploy

Live: fit-tracker.fly.dev

📂 Layout

Fittracker/
├── api/              # Express API
│   ├── controllers/  # user, workout, exercise, food, recipe, calendarEntry
│   ├── models/
│   ├── routes/
│   └── index.js
├── web/              # React + Vite
│   ├── src/
│   │   ├── pages/
│   │   ├── components/
│   │   └── services/
│   └── vite.config.js
├── Dockerfile
└── fly.toml

🛣️ Where I took it next

Fittracker is the V1. The follow-up is gymtrackerv2, where I rebuilt the gym side of the app with a better routine builder (drag-and-drop), in-session tracking and a cleaner stack (React 19, Zustand, Tailwind v4, split fly.io apps for frontend/backend).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages