fitaiProto/docs/QUICK_REFERENCE.md
2026-03-19 03:37:15 +01:00

5.0 KiB

FitAI Report Generation System - Quick Reference

🚀 Quick Start

1. Run Admin App

cd apps/admin
npm run dev
# Visit http://localhost:3000

2. Navigate to Reports

  • URL: /reports
  • Features: User selection, date range picker, PDF export

3. Manage Trainer Assignments

  • URL: /trainer-clients
  • Features: Assign trainers to clients, view active/inactive assignments

📊 Key Features

Feature Status Location
Weekly Check-ins Complete Reports page
Nutrition Tracking Complete Reports page
Hydration Tracking Complete Reports page
Fitness Goals Complete Reports page
AI Recommendations Complete Reports page
PDF Export Complete Reports page
Trainer Assignments Complete Trainer-clients page
Role-based Access Complete All pages

🔑 Access Control

Client ──────────► Own report only
Trainer ─────────► Assigned clients
Admin ───────────► Gym users
SuperAdmin ───────► All users

📡 API Endpoints

Reports

GET /api/reports/user/[userId]?startDate=X&endDate=Y&format=json|pdf

Trainer-Client

GET    /api/trainer-client           # List assignments
POST   /api/trainer-client           # Create assignment
DELETE /api/trainer-client/[id]      # Deactivate assignment

Nutrition

GET    /api/nutrition?date=X|startDate=X&endDate=Y  # Get nutrition
POST   /api/nutrition                                   # Save nutrition
DELETE /api/nutrition?id=X                              # Delete nutrition

Hydration

GET    /api/hydration?date=X|startDate=X&endDate=Y     # Get hydration
POST   /api/hydration                                  # Save hydration
DELETE /api/hydration?id=X                             # Delete hydration

🗄️ Database Tables

Table Purpose
daily_nutrition Daily calorie tracking
meal_entries Individual meal details
daily_hydration Daily water intake
fitness_profile_history Weight/height changes
trainer_client_assignments Trainer-client relationships

🎨 UI Pages

Page URL Purpose
Reports /reports Generate user reports
Trainer-Clients /trainer-clients Manage assignments

📦 Mobile Integration

Hydration

import { useHydration } from "../contexts/HydrationContext";

const { todayTotal, addWater } = useHydration();
await addWater(250); // Adds 250ml

Nutrition

import { useNutrition } from "../contexts/NutritionContext";

const { todayCalories, addMeal } = useNutrition();
await addMeal({
  mealType: "breakfast",
  foodName: "Oatmeal",
  calories: 300,
});

🧪 Testing

# Run tests
cd apps/admin
npm test

# View testing guide
open docs/TESTING_GUIDE.md

📝 Example Usage

1. Create Trainer-Client Assignment

curl -X POST http://localhost:3000/api/trainer-client \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ADMIN_TOKEN>" \
  -d '{"trainerId": "...", "clientId": "..."}'

2. Generate Report

curl "http://localhost:3000/api/reports/user/<USER_ID>?startDate=2024-01-01&endDate=2024-01-31" \
  -H "Authorization: Bearer <TOKEN>"

3. Download PDF

curl "http://localhost:3000/api/reports/user/<USER_ID>?format=pdf" \
  -H "Authorization: Bearer <TOKEN>" \
  --output report.pdf

🔍 Validation Rules

Validation Rule
Date Format YYYY-MM-DD only
Future Dates Allowed
Max Date Range No limit
Delete Ownership Must own resource

📊 Report Sections

  1. User Information - Name, email, membership
  2. Report Period - Start/end dates
  3. Weekly Check-ins - ISO weeks (Mon-Sun)
  4. Nutrition Summary - Calories, goal achievement
  5. Hydration Summary - Water intake, goal %
  6. Fitness Goals - Active/completed with progress
  7. Profile Changes - Historical data
  8. Recommendations - Accepted/rejected/pending

🎯 Success Criteria

  • All 9 phases completed
  • TypeScript 100% type-safe
  • Role-based access enforced
  • PDF export working
  • Mobile sync functional
  • Tests passing

📞 Support

  • Docs: docs/TESTING_GUIDE.md
  • Summary: docs/IMPLEMENTATION_SUMMARY.md
  • Tests: apps/admin/src/app/api/reports/__tests__/

Status: Production Ready
Last Updated: March 2024