A personal fitness tracking web application with group competition features.
fitfam/
├── backend/ → Express.js API server (TypeScript)
├── frontend/ → React 18 + Vite + Tailwind UI (TypeScript)
└── shared/ → Shared TypeScript types
- Frontend: React 18, Vite, Tailwind CSS, TypeScript
- Backend: Node.js, Express.js, TypeScript
- Auth: Cookie-session middleware
- Database: MySQL (future integration)
- Node.js 18+ and npm
- Git
-
Clone the repository
git clone <your-repo-url> cd fitfam
-
Set up environment variables
cp .env.example .env # Edit .env with your configuration -
Install all dependencies
npm run install:all
Quick Start (Recommended) - Start both backend and frontend together:
npm run devThis will start:
- Backend server at
http://localhost:5000 - Frontend dev server at
http://localhost:5173
Or start individually:
-
Backend only
npm run dev:backend
-
Frontend only
npm run dev:frontend
Build everything:
npm run buildStart production server:
npm startSee DEPLOYMENT.md for complete step-by-step deployment instructions.
- Clone repository to
public_html/fitfam/ - Install dependencies:
npm run install:all - Configure .env with production settings
- Build:
npm run build - Setup Node.js App in cPanel:
- Startup file:
backend/dist/server.js - Set
NODE_ENV=production
- Startup file:
- Start application
The backend serves both API routes (/api/*) and the built React frontend.
- ✅ Daily fitness goal tracking
- ✅ Workout plan creation
- ✅ Workout logging
- ✅ Group competition via "Fam Center"
- ✅ Profile customization
- ✅ Cookie-based authentication
Private