The Reception panel is designed to be the first screen staff open each morning and the last they close at night. It provides a single, focused workspace for every task that happens at the front desk: checking members in, processing membership renewals, enrolling new clients, and keeping an eye on who has already come through the door today.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/azahel79/Spartans-gym/llms.txt
Use this file to discover all available pages before exploring further.
Layout Overview
The panel is divided into two main columns:- Left column — the selected client’s profile card, action buttons, and three quick-stat tiles.
- Right column — the live attendance sidebar showing every check-in from the current day.
Client Profile Card
When a member is selected from the attendance sidebar, their full profile card renders in the left column with the following information:Photo
Profile photo loaded from
fotoUrl. Falls back to a placeholder gym image if no photo has been uploaded.Name & Status
Full name (
nombre apellidos), coloured status badge (ACTIVO / VENCIDO / PENDIENTE), and the active plan name.Days Remaining
A large red counter showing the number of days left on the current membership. Turns into a pulsing warning banner when 5 or fewer days remain.
Last Visit & Expiry
Two data tiles: Última visita (time in
HH:MM AM/PM) and Vencimiento (expiry date formatted from ISO string).Check-In Workflow
Select a client
Click any row in the Asistencia Reciente sidebar. The client’s profile card populates immediately in the left column.
Verify membership status
Confirm the status badge reads ACTIVO and that the days-remaining counter is greater than zero. If the membership is expired, the attendance button is disabled and labelled MEMBRESÍA VENCIDA.
Check for duplicate attendance
If the client has already been checked in today, the button turns green and reads ASISTENCIA REGISTRADA. No further action is needed.
Attendance Validation Rules
The backend enforces two hard blocks before recording attendance:- Expired membership — if
vencimientois earlier than today (date-only comparison, time ignored), the server returnsHTTP 403with the error"Membresía vencida". - Already checked in today — the server checks both the
attendancestable and theattendanceDatefield on the client record. If a match is found for the current calendar date, it returnsHTTP 400with"El cliente ya registró asistencia hoy".
Membership Renewal
The Renovar Plan button opens theModalRenew dialog. It is enabled only when a client is selected and their plan is eligible for renewal.
Inside the modal, staff can:
- Select the new plan from a dropdown populated with active plans from the database.
- See the total amount to charge, auto-calculated from the plan price.
- Choose a payment method: Efectivo or Tarjeta.
- Submit with Confirmar Renovación, which calls
POST /api/clients/:id/renew.
The renewal extension date is calculated server-side. If the current expiry date is still in the future, the new period starts from the existing expiry date. If the membership has already lapsed, it starts from today. See the Memberships page for full renewal logic.
Enrolling a New Client
Clicking Nuevo Cliente in the page header opens theModalInscription dialog. Staff fill in:
- Personal info — nombre, apellidos, género, teléfono.
- Plan & payment — plan selection from active plans (price shown inline), payment method toggle (Efectivo / Tarjeta), and a “Total a Pagar” confirmation display.
POST /api/clients, creates the client record with status ACTIVO, and calculates the expiry date automatically from the selected plan’s period. The new client appears at the top of the client list immediately.
Quick Stats Row
Three stat tiles below the client card give a real-time pulse on the day’s activity:| Tile | What it counts |
|---|---|
| Socios hoy | Number of distinct clients whose attendanceDate matches today’s local date. |
| Renovaciones | Number of membership renewals processed today (from the renovacionesHoyCount value). |
| Por vencer | Number of active clients with a membership expiring within the next 5 days (expiringSoonCount). |
Live Attendance Sidebar
The right-side panel lists every client who has checked in today, sorted byultimaVisita descending (most recent at top). The list is labelled En vivo with a pulsing green badge.
Each row shows:
- Circular avatar (photo or placeholder).
- Full name and plan + payment method.
- Check-in time and a green
check_circleicon.