Convenciones de código - FactoriaF5-Asturias/project-p5-digital-academy-team3-restaurant-frontend GitHub Wiki

Convenciones de código

Naming y carpetas

  • Componentes y vistas Vue en PascalCase: CartSummary.vue, KitchenDashboardView.vue.
  • Composables con prefijo use: useAuth.js, useCart.js.
  • Servicios con nombre de dominio y sufijo Service: ProductService.js.
  • Tests con .test.js o .spec.js, organizados bajo tests/components, tests/services o tests/views.
  • Componentes agrupados por módulo (admin, home, reports, common) como en la estructura existente.

Vue y responsabilidades

  • Usa Single File Components .vue y Composition API con <script setup>.
  • Declara entradas con defineProps y eventos con defineEmits.
  • Mantén HTTP en src/services/; coordina carga/errores/navegación en vistas; extrae estado reutilizable a src/composables/.
  • Pasa datos por props y comunica eventos hacia arriba; evita que componentes hermanos dependan directamente entre sí.

Atomic Design

El proyecto no sigue Atomic Design formalmente: no hay carpetas atoms/, molecules/ u organisms/. Los componentes se agrupan por funcionalidad. Se pueden aplicar sus ideas (piezas pequeñas que componen controles y secciones) sin reorganizar los módulos actuales; acuerda una migración antes de cambiar la estructura.

Cambios en servicios

  • Comprueba response.ok y propaga un error que permita a la vista mostrar un estado útil.
  • Añade autenticación cuando el endpoint la requiere y sigue el patrón del servicio existente.
  • Prueba URL, método, cabeceras, cuerpo y respuesta fallida con fetch simulado.