How nithishsenthil2025/database-systems-and-backend-project works
GymFit is a role-based gym management and coaching application. Members sign up or recover a Gym Key, then use their portal for daily plans, attendance-dependent workout logging, progress, profile and membership/payment tasks; trainers assign plans, while admins manage attendance and gym operations. The browser communicates with Express routes, which delegate domain operations to services backed by Prisma. The README documents the product capabilities; unsampled route and service internals are represented at their exact enclosing paths, and their detailed call relationships are not inferred.
Main entry points: server.js Express API · api.js API client · prisma.js Prisma client · App.jsx Role portals
Components 25
Web application
- Role portals
frontend/src/App.jsx - Public pages
frontend/src/pages/public - Member portal
frontend/src/pages/member - Trainer portal
frontend/src/pages/trainer - Admin portal
frontend/src/pages/admin - Shared UI
frontend/src/components/UI.jsx - API client
frontend/src/lib/api.js - API data hook
frontend/src/lib/useApiData.js
Identity and access
- Auth routes
backend/src/routes/auth.routes.js - Account and recovery
backend/src/services/auth.service.js - Session and roles
backend/src/middleware/auth.js
Member and coaching
- Member routes
backend/src/routes/member.routes.js - Member domain
backend/src/services/member.service.js - AI Coach engine
backend/src/services/aiCoach.service.js - Trainer routes
backend/src/routes/trainer.routes.js - Trainer domain
backend/src/services/trainer.service.js
Gym operations
- Admin routes
backend/src/routes/admin.routes.js - Admin domain
backend/src/services/admin.service.js - Live events
backend/src/services/events.service.js - Cashfree payments
backend/src/services/cashfree.service.js
API and persistence
- Express API
backend/src/server.js - Prisma client
backend/src/config/prisma.js - PostgreSQL / Neon
Other components
- Visitor or staff
- Brevo email
Connections 39
- Visitor or staff → Public pages: opens
- Visitor or staff → Role portals: signs in
README.md - Role portals → Public pages: routes to
frontend/src/App.jsx - Role portals → Member portal: routes to
frontend/src/App.jsx - Role portals → Trainer portal: routes to
frontend/src/App.jsx - Role portals → Admin portal: routes to
frontend/src/App.jsx - Member portal → API data hook: loads data
frontend/src/pages/member/MemberProfilePage.jsx - Member portal → API client: requests
frontend/src/pages/member/MembershipPage.jsx - Admin portal → API client: requests
frontend/src/pages/admin/AdminAttendancePage.jsx - Trainer portal → API client: requests
frontend/src/pages/trainer/TrainerClientPage.jsx - API data hook → API client: calls
frontend/src/lib/useApiData.js - Public pages → API client: requests
frontend/src/pages/public/RecoveryPage.jsx - Member portal → Shared UI: renders
frontend/src/pages/member/MemberProfilePage.jsx - Public pages → Auth routes: submits identity
- API client → Express API: HTTP requests
README.md - Express API → Auth routes: mounts
backend/src/server.js - Express API → Member routes: mounts
backend/src/server.js - Express API → Trainer routes: mounts
backend/src/server.js - Express API → Admin routes: mounts
backend/src/server.js - Express API → Cashfree payments: mounts routes
backend/src/server.js - Auth routes → Account and recovery: delegates
backend/src/routes/auth.routes.js - Auth routes → Session and roles: uses
backend/src/routes/auth.routes.js - Member routes → Session and roles: requires role
backend/src/routes/member.routes.js - Member routes → Member domain: delegates
backend/src/routes/member.routes.js - Member routes → Cashfree payments: creates and verifies
backend/src/routes/member.routes.js - Trainer routes → Trainer domain: delegates
backend/src/routes/trainer.routes.js - Admin routes → Session and roles: requires role
backend/src/routes/admin.routes.js - Admin routes → Admin domain: delegates
backend/src/routes/admin.routes.js - Member domain → AI Coach engine: generates plans
backend/src/services/member.service.js - Member domain → Live events: publishes updates
backend/src/services/member.service.js - Admin domain → Live events: publishes updates
backend/src/services/admin.service.js - Cashfree payments → Member domain: uses member domain
backend/src/services/cashfree.service.js - Account and recovery → Brevo email: sends OTP
backend/src/services/auth.service.js - Account and recovery → Prisma client: reads and writes
backend/src/services/auth.service.js - Member domain → Prisma client: reads and writes
backend/src/services/member.service.js - AI Coach engine → Prisma client: reads and writes
backend/src/services/aiCoach.service.js - Admin domain → Prisma client: reads and writes
backend/src/services/admin.service.js - Cashfree payments → Prisma client: reads and writes
backend/src/services/cashfree.service.js - Prisma client → PostgreSQL / Neon: persists data
README.md