Frontend Component Conventions
Structure
- Reusable components:
app/components/<name>/ - Feature pages:
app/<feature>/<feature>.page.ts - Feature-specific modals:
app/<feature>/<modal-name>/ - Services:
app/services/
Rules
- Each page is a lazy-loaded module
- All subscriptions must use
takeUntil(destroy$)andngOnDestroy - data-testid format:
pp-<component>-<element>[-variant] - Each new component/page must have
*.spec.tswith at least "should create" test
Planned Pages
| Page | Route | Description |
|---|---|---|
| Dashboard | /dashboard |
KPIs, alertas, grafico ventas/compras |
| Materias Primas | /materias-primas |
CRUD materias primas con precio, unidad, merma |
| Escandallos | /escandallos |
Lista + detalle con ingredientes y margen |
| Facturas | /facturas |
Upload OCR + revision + validacion |
| Proveedores | /proveedores |
CRUD proveedores |
| Stock | /stock |
Stock actual vs teorico |
| Inventarios | /inventarios |
Inventario fisico (recuento) |
| Mermas | /mermas |
Registro de mermas |
| Rentabilidad | /rentabilidad |
P&L con datos de unpispas + denpora |