Módulo del Panel de Entrenador
Propósito
Este módulo proporciona a los entrenadores una plataforma integral para gestionar sus clases, alumnos y eventos de entrenamiento, optimizando sus tareas diarias y mejorando la interacción con sus estudiantes.
Funcionalidades Clave
Gestión de Clases
-
Creación y Edición de Clases: Los entrenadores pueden crear nuevas clases, definir horarios, canchas asignadas y capacidad máxima.
-
Visualización de Clases: Acceso a una vista clara de todas sus clases programadas, incluyendo detalles como fecha, hora, ubicación y lista de alumnos inscritos.
-
Cancelación de Clases: Opción para cancelar clases, con la posibilidad de notificar a los alumnos afectados.
Gestión de Alumnos
-
Lista de Alumnos: Mantenimiento de un registro de los alumnos asociados al entrenador.
-
Perfiles Básicos: Visualización de información básica de cada alumno.
-
Asignación a Clases: Capacidad para asignar y desasignar alumnos a clases específicas.
Gestión de Inscripciones
-
Revisión de Inscripciones: Los entrenadores pueden revisar las solicitudes de inscripción a sus clases o eventos.
-
Aceptación/Rechazo: Herramientas para aceptar o rechazar inscripciones, gestionando la capacidad de las clases.
-
Registro de Asistencia: Funcionalidad para marcar la asistencia de los alumnos a las clases.
Calendario y Disponibilidad
-
Vista de Calendario: Un calendario interactivo que muestra la programación de clases del entrenador y la disponibilidad general de las canchas.
-
Filtros de Eventos Propios: Opción para filtrar y visualizar únicamente los eventos y entrenamientos creados por el entrenador.
Registro Rápido de Clientes
-
Inscripción Directa: Herramienta para que los entrenadores puedan registrar rápidamente a nuevos clientes o inscribir a clientes existentes en sus eventos de entrenamiento.
Consulta de Estado de Pagos
-
Visualización de Pagos: Acceso de solo lectura al estado de los pagos de sus alumnos, permitiendo al entrenador tener un seguimiento financiero básico sin capacidades de edición.
Control de Acceso
-
Roles y Permisos: Implementación de un control de acceso basado en roles (RBAC) que restringe las funcionalidades del panel de entrenador, ocultando módulos como la gestión de tarifas y reportes financieros completos.
-
Rol
trainer: Solo los usuarios con el claim booleanotrainerhabilitado pueden acceder al panel y a los endpoints asociados.
Aspectos Técnicos
Frontend
-
Proyecto Angular dedicado: Aplicación independiente en
projects/trainer, desplegada en el target de hostingunosportclubcoach. -
Tecnología: Angular 21 con componentes standalone, señales (signals) para estado local y Tailwind CSS 4 para estilos utilitarios.
-
Rutas principales:
-
/login,/recovery-password,/reset-password -
/dashboard– resumen de métricas del entrenador. -
/classes,/classes/:id,/classes/new,/classes/:id/edit -
/students,/students/:id -
/enrollments
-
-
Autenticación: Usa Firebase Auth (SDK web) y el mismo flujo de autenticación que el panel de administración.
Backend
-
API REST: El namespace de API para entrenadores está publicado bajo
/api/trainer/**. -
Router de trainer: Implementado en
functions/routes/trainer/*.js, montado enfunctions/server.jsbajo el prefijo/trainer. -
Endpoints clave (resumen):
-
GET /api/trainer/dashboard/stats– estadísticas agregadas de clases, alumnos e inscripciones. -
GET /api/trainer/classes/POST /api/trainer/classes– listado y creación de clases de entrenamiento. -
GET /api/trainer/classes/:id/PUT /api/trainer/classes/:id/DELETE /api/trainer/classes/:id– detalle y actualización de clases. -
POST /api/trainer/classes/:id/cancel– cancelación de una clase. -
GET /api/trainer/students/GET /api/trainer/students/:id– consulta de alumnos asociados al entrenador. -
POST /api/trainer/students/:id/assign– asignación de un alumno a una clase específica. -
GET /api/trainer/enrollments/GET /api/trainer/enrollments/:id– gestión de inscripciones. -
PATCH /api/trainer/enrollments/:id/accept/PATCH /api/trainer/enrollments/:id/reject– aceptación/rechazo de solicitudes. -
PATCH /api/trainer/enrollments/:id/attendance– marcado de asistencia.
-
Integración con Roles y Seguridad
-
Claim
trainer: El middlewarerequireTrainerAccessenfunctions/index.jsvalida que el usuario autenticado poseatrainer === trueen sus custom claims. -
Gestión desde Sudo: El panel
sudopermite a los super usuarios asignar o revocar el rol de entrenador a través de la pantalla de gestión de usuarios (/sudo/users), añadiendo o eliminando el claim booleanotrainer. -
Aislamiento de datos: Todas las consultas a base de datos filtran por
trainer_idpara garantizar que cada entrenador solo vea y modifique sus propias clases, inscripciones y alumnos.