MERN gym and nutrition tracker with Ethiopian/Gregorian calendar
# Fitraker
A MERN-stack gym and nutrition tracker with Ethiopian/Gregorian calendar toggle, macro logging, stats, and recommendations.
## Status
Phase 1: Foundation and Auth (v0.1.0) - Complete
Phase 2: Profile & Calendar core (v0.2.0) - Complete
Phase 3: Food & Nutrition Logging (v0.3.0) - Complete
Phase 4: Stats, Dashboard & Recommendations (v0.4.0) - Complete
Phase 5: Todos, Export, PWA & Final Polish (v1.0.0) - Complete
Phase 6: Exercise Library, Muscle Diagram & Logging (v1.1.0) - Complete
## Tech Stack
- Frontend: React + Vite + Tailwind CSS v4 + Recharts (deployed on Vercel)
- Backend: Express + Node.js (deployed on Render)
- Database: MongoDB Atlas (free tier)
- Auth: JWT in HTTP-only cookies, bcrypt
- Email: Resend HTTP API
- Security: helmet, express-rate-limit, CORS
## Project Structure
```
fitraker/
package.json # root - concurrently dev script
client/ # Vite React app (Vercel)
src/
context/ # AuthContext, ThemeContext, CalendarContext
pages/ # Login, Signup, ForgotPassword, ResetPassword, Dashboard, Profile, Calendar, Todos, Exercises, NotFound
components/ # Button, Input, ProtectedRoute, ErrorBoundary, Navbar, FoodSearchDropdown, MuscleGroupSelector, ExerciseSearchDropdown, ExerciseLogList
utils/ # exportCsv.js, muscleMap.js
.env.example
server/ # Express API (Render)
config/db.js
data/ # exercises.json (~800 exercises from free-exercise-db, CC0)
models/ # User, DailyLog (includes exerciseLogs), GlobalFood, CustomFood, Todo
routes/ # authRoutes, profileRoutes, dailyLogRoutes, foodRoutes, calendarRoutes, statsRoutes, recommendationsRoutes, todoRoutes, exerciseRoutes
utils/ # dateUtils.js, macroCalculator.js, quoteService.js, exerciseLoader.js
middleware/auth.js
.env.example
```
## Local Development Setup
### 1. Install Dependencies
```bash
git clone
github.com
cd …