The Reports module atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Hansel-Pan/sistema-de-informacion-web-para-un-gimnasio/llms.txt
Use this file to discover all available pages before exploring further.
/reportes gives staff a read-only, consolidated view of the gym’s member data. It provides two reports accessible through tab buttons at the top of the page: a full roster of all registered clients with their membership status, and a real-time snapshot of every member currently inside the gym. No actions — such as entry, exit, or payment — can be performed from this page; it is purely for viewing and verification.
General Client List
Click the Listado General de Clientes tab to see the complete member roster. This report callsclientesApi.listar() on page mount and displays all records in a single table headed “Todos los clientes inscritos (N)”, where N is the total number of returned records.
The table includes the following columns:
| Column | Description |
|---|---|
| Nombres | Full name of the member |
| Identificación | Government ID number |
| Celular | Mobile phone number |
| Fecha Inscripción | Enrollment date, formatted as a locale date string |
| Género | Masculino, Femenino, or Otro |
| Días Rest. | Remaining membership days |
| Estado | Presence badge — see below |
en_gimnasio flag:
- Dentro — green badge (
badge-success) whenen_gimnasioistrue - Fuera — grey badge (
badge-secondary) whenen_gimnasioisfalse
Current Occupancy
Click the Ocupación Actual tab to switch to the live occupancy report. This report is powered byaccesoApi.ocupacion(), also called on page mount, and the results are displayed in a card headed “Personas dentro del gimnasio ahora (N)”, where N is the current occupant count.
The occupancy table contains:
| Column | Description |
|---|---|
| Nombres | Full name of the member |
| Identificación | Government ID number |
| Celular | Mobile phone number |
| Género | Gender of the member |
| Días Rest. | Remaining membership days |
Switching Between Reports
The two reports are controlled by a tab bar at the top of the page. The component stores the active tab in local state (tab), initialising to 'clientes'. Clicking either tab button sets the state to 'clientes' or 'ocupacion', and only the corresponding card is rendered.
Both API calls — clientesApi.listar() and accesoApi.ocupacion() — are made in the same useEffect on mount regardless of which tab is active, so switching between tabs is instant with no additional network requests.