How safachaabane/padel-dashboard works
Padel Club manages dated court-slot reservations for clients and staff, from calendar and slot selection through registration, administrator review, and confirmation or cancellation. Users can also manage reservations and submit post-match satisfaction; administrators manage slots, settings, registrations, and reports. The frontend communicates with an Express API backed by MongoDB, with email and scheduled reporting features. Several route and page implementations were not excerpted, so their documented capabilities are shown, but uncertain internal call paths are omitted.
Main entry points: index.js Express application · inscriptions.js Registration routes · api.ts API client · creneaux.js Slot routes
Components 29
Reservation experience
- Client registration
frontend/src/pages/FormClientPage.tsx - Staff registration
frontend/src/pages/FormPersonnelPage.tsx - Date calendar
frontend/src/components/forms/DateSelector.tsx - Slot availability
frontend/src/components/forms/CreneauSelector.tsx - My reservation
frontend/src/pages/MaReservationPage.tsx - Satisfaction form
frontend/src/pages/SatisfactionPage.tsx
Administration
- Admin screens
frontend/src/pages/admin - Registration details
frontend/src/pages/admin/DetailsInscriptionsPage.tsx
API and access
- Admin auth state
frontend/src/hooks/useAuth.tsx - API client
frontend/src/utils/api.ts - Express application
backend/src/index.js - Authentication routes
backend/src/routes/auth.js - JWT authorization
backend/src/middleware/auth.js - Role authorization
backend/src/middleware/role.js - Slot routes
backend/src/routes/creneaux.js - Registration routes
backend/src/routes/inscriptions.js - Other API routes
backend/src/routes
Reservation domain
- Slot model
backend/src/models/Creneau.js - Registration model
backend/src/models/Inscription.js - Admin model
backend/src/models/Admin.js - Reservation settings
backend/src/utils/parametres.js - Date rules
backend/src/utils/dateUtils.js - MongoDB
Notifications and reporting
- Email delivery
backend/src/utils/email.js - Excel export
backend/src/utils/exportExcel.js - Periodic reports
backend/src/utils/rapportPeriodiqueCron.js - Satisfaction scheduling
backend/src/utils/satisfactionCron.js
Other components
- Participants
- Administrators
Connections 38
- Participants → Client registration: registers as client
- Participants → Staff registration: registers as staff
- Client registration → Date calendar: selects date
frontend/src/pages/FormClientPage.tsx - Client registration → Slot availability: selects slot
frontend/src/pages/FormClientPage.tsx - Staff registration → Date calendar: selects date
frontend/src/pages/FormPersonnelPage.tsx - Staff registration → Slot availability: selects slot
frontend/src/pages/FormPersonnelPage.tsx - Client registration → API client: posts registration
frontend/src/pages/FormClientPage.tsx - Date calendar → API client: loads settings
frontend/src/components/forms/DateSelector.tsx - Slot availability → API client: loads availability
frontend/src/components/forms/CreneauSelector.tsx - My reservation → API client: manages reservation
frontend/src/pages/MaReservationPage.tsx - Satisfaction form → API client: submits feedback
frontend/src/pages/SatisfactionPage.tsx - Administrators → Admin screens: manages bookings
- Registration details → API client: loads details
frontend/src/pages/admin/DetailsInscriptionsPage.tsx - Registration details → Excel export: offers export
- Admin auth state → API client: authenticates via
frontend/src/hooks/useAuth.tsx - Express application → Authentication routes: mounts routes
backend/src/index.js - Express application → Slot routes: mounts routes
backend/src/index.js - Express application → Registration routes: mounts routes
backend/src/index.js - Express application → Other API routes: mounts routes
backend/src/index.js - Express application → MongoDB: connects to
backend/src/index.js - Authentication routes → Admin model: queries admins
backend/src/routes/auth.js - JWT authorization → Admin model: loads admin
backend/src/middleware/auth.js - Slot routes → Slot model: queries slots
backend/src/routes/creneaux.js - Slot routes → Registration model: checks bookings
backend/src/routes/creneaux.js - Slot routes → Reservation settings: reads settings
backend/src/routes/creneaux.js - Slot routes → Date rules: uses date rules
backend/src/routes/creneaux.js - Registration routes → Registration model: creates bookings
backend/src/routes/inscriptions.js - Registration routes → Slot model: checks slots
backend/src/routes/inscriptions.js - Registration routes → Email delivery: sends notices
backend/src/routes/inscriptions.js - Registration routes → Excel export: exports records
backend/src/routes/inscriptions.js - Registration routes → Reservation settings: reads settings
backend/src/routes/inscriptions.js - Registration routes → Date rules: applies date rules
backend/src/routes/inscriptions.js - Other API routes → Registration model: supports feedback
backend/src/routes/satisfaction.js - Express application → Periodic reports: starts scheduler
backend/src/index.js - Express application → Satisfaction scheduling: starts scheduler
backend/src/index.js - Periodic reports → Registration model: reads bookings
backend/src/utils/rapportPeriodiqueCron.js - Periodic reports → Email delivery: sends reports
backend/src/utils/rapportPeriodiqueCron.js - Periodic reports → Excel export: creates report
backend/src/utils/rapportPeriodiqueCron.js