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

Cocina — Tablero de pedidos para el personal de cocina

Vista

El Dashboard de Cocina (/cocina) es un tablero tipo Kanban con 4 columnas — Nuevos, En Curso, Con Retraso, Listos — para que el personal de cocina vea de un vistazo todos los pedidos activos y vaya avanzando su estado a medida que los prepara. Requiere estar logueado con un usuario con rol KITCHEN.

  • Cada columna muestra el número de pedidos que contiene.
  • Cada tarjeta de pedido muestra el número de pedido, si es mesa o domicilio, el tiempo transcurrido y los productos.
  • Acciones de cambio de estado en cada tarjeta: Empezar (Nuevos → En Curso), Listo (En Curso → Listos), Marcar Listo Urgente (Con Retraso → Listos).

Responsables y tareas

Responsable: Jenny Sánchez

Tarea Jira Descripción Estado
GC-178 [HU-20] Ver el tablero de pedidos por estado Listo
GC-179 [HU-21] Cambiar el estado de un pedido Listo

Entidades involucradas

Archivo Tipo Función
src/Views/KitchenDashboardView.vue Vista Tablero Kanban completo: columnas, tarjetas y acciones de cambio de estado

Endpoints que consume

Método Ruta Para qué
GET /api/orders Cargar los pedidos del tablero (filtrable por status)
PUT /api/orders/{id}/status Mover un pedido entre columnas, incluido pasarlo a DELAYED

Cómo probarlo

  1. Arranca el back (Docker Desktop + GoxuApplication) y el front (npm run dev).
  2. Inicia sesión con un usuario con rol KITCHEN (p. ej. [email protected]).
  3. Abre http://localhost:5173/cocina.
  4. Comprueba que:
    • Aparecen las 4 columnas con sus contadores.
    • Al pulsar "Empezar" en una tarjeta de "Nuevos", pasa a "En Curso".
    • Al pulsar "Listo", pasa a "Listos".
    • Al pulsar "Marcar Listo Urgente" en una tarjeta "Con Retraso", pasa a "Listos".

Decisiones

  • La columna "Con Retraso" se implementó igualmente aunque no apareciera en el mockup inicial (Dashboard Cocina.png), porque sí estaba en el backlog (HU-20) — norma del equipo de completar lo que pida el backlog aunque falte en la foto del mockup.
  • Estado local con ref/computed, sin Pinia. ordersByColumn agrupa los pedidos por status, así que al cambiar el estado de un pedido la tarjeta "salta" de columna sola, sin lógica adicional.
  • Accesibilidad como commits refactor: separados. Encabezados semánticos, aria-label en contadores y aria-hidden en iconos decorativos, sin cambiar el comportamiento visible.

Limitaciones

  • Los pedidos son mock data fija dentro de la vista; todavía no está conectada al backend real.
  • No hay transición automática de un pedido a "Con Retraso" por tiempo de preparación — el cambio de estado siempre lo hace una persona a mano.