Calendario - FactoriaF5-Asturias/project-p5-digital-academy-team2-restaurant-frontend GitHub Wiki

Calendario de eventos — Agenda anual del restaurante

Vista

El Calendario de eventos (/calendario-eventos) muestra todos los eventos gastronómicos del restaurante (cenas maridaje, jornadas, coloquios…), agrupados por mes y ordenados por fecha. Es público.

Cada evento muestra su imagen, fecha y hora, título, descripción, detalles y precio (o "Entrada gratuita").

Se llega desde la sección "Próximos eventos" de la página de Inicio, con el enlace "Ver calendario anual →".

Responsables y tareas

Responsable: Gema Miguel

Tarea Jira Descripción Estado
GC-271 [HU-34] Consultar el calendario anual de eventos Historia
GC-272 Crear la vista del calendario anual con los eventos agrupados por mes Listo
GC-273 Enlazar el calendario desde "Próximos eventos" de la Home Listo
GC-274 Conectar el calendario al back (GET /api/events) con estados de carga y error Listo

Capturas

Entidades involucradas

Archivo Tipo Función
src/Views/Events/EventsCalendarView.vue Vista Página del calendario: pinta los eventos agrupados por mes
src/composables/useEvents.js Composable Pide los eventos al back, les da formato y los agrupa por mes (eventsByMonth)
public/events-img/ Imágenes Fotos de los eventos

Endpoints que consume

Método Ruta Para qué
GET /api/events Todos los eventos, ya ordenados por fecha desde el back

La URL base se toma de la variable VITE_API_URL del archivo .env (ver .env.example).

Cómo probarlo

  1. Arranca el back (Docker Desktop + GoxuApplication) y el front (npm run dev).
  2. Abre http://localhost:5173/calendario-eventos, o entra desde la página de Inicio con "Ver calendario anual →".
  3. Comprueba que los eventos aparecen agrupados por mes ("Octubre 2026", "Noviembre 2026"…) y en orden de fecha.
  4. Con el back parado, debe aparecer el mensaje de error en lugar de los eventos.

Decisiones

  • El agrupado por mes se hace en el composable. useEvents expone una propiedad computed, eventsByMonth, que agrupa los eventos. La vista solo los recorre con v-for.
  • La clave de cada grupo incluye el año. Así no se mezclan, por ejemplo, junio de 2026 y junio de 2027, y el título del grupo muestra también el año ("Junio 2027").
  • El back ya devuelve los eventos ordenados, así que los grupos salen en orden sin tener que ordenarlos en el front.
  • Estado compartido con la página de Inicio. Las dos vistas usan la misma lista de eventos de useEvents.
  • Estados de carga y error. Mientras llegan los datos se muestra "Cargando eventos…", y si el back no responde, un mensaje de error.

Limitaciones

  • Se muestran también los eventos pasados. A diferencia de