inventario-app/
├── frontend/ ← React + Vite
│ └── src/
│ ├── pages/ ← Dashboard, Login, Ventas, Productos…
│ ├── components/
│ │ ├── layout/ ← Sidebar, Navbar, AppLayout
│ │ └── ui/ ← Componentes reutilizables
│ ├── store/ ← Zustand (authStore)
│ ├── services/ ← api.js (Axios)
│ └── hooks/ ← Custom hooks
│
└── backend/ ← Express API REST
├── src/
│ ├── routes/ ← auth, productos, ventas, compras…
│ ├── controllers/
│ └── middleware/ ← JWT, roles
└── prisma/
├── schema.prisma ← Modelos de BD
└── seed.js ← Datos iniciales
POST /api/auth/login
GET /api/productos
POST /api/productos
PUT /api/productos/:id
GET /api/inventario ← con clasificación AGOTADO/CRÍTICO/BAJO/OK
GET /api/ventas
POST /api/ventas ← descuenta stock automáticamente
PUT /api/ventas/:id/anular
GET /api/compras
POST /api/compras
PUT /api/compras/:id/recibir ← actualiza stock al recibir
GET /api/clientes
GET /api/proveedores
GET /api/reportes/dashboard ← datos para el dashboard
GET /api/reportes/ventas?desde=&hasta=