Aplicación web que sustituye al sistema actual de LibreOffice Base (.odb) para gestionar todas las operaciones del laboratorio cosmético/químico Laboratorio La Marihuela S.L. Cubre el ciclo completo del producto — desde la entrada de materias primas hasta la trazabilidad externa — y es accesible desde móvil, tablet y escritorio.
Stack: Laravel 13 (PHP 8.4) API-only · React 19 + TypeScript SPA · MariaDB 11 · Docker Compose.
Tras hacer git pull de cambios que toquen api/database/migrations/, ejecutar:
make freshEsto regenera el esquema desde cero contra MariaDB y siembra el dataset de demo (Laboratorio La Marihuela S.L., dataset realista — 4 usuarios, 7 proveedores, 25 ingredientes, 10 fórmulas, 7 lotes, 6 equipos, 15 muestras, 34 registros de limpieza).
Para añadir los casos extremos opt-in (10 anomalías D-10 — proveedor rechazado, lote fallido, calibración fuera de tolerancia, CoA caducado, micro fuera de rango, etc.):
docker compose exec api php artisan db:seed --class=Database\\Seeders\\EdgeCasesSeederEdgeCasesSeeder es idempotente: re-ejecutarlo NO duplica las anomalías.
Por qué: la consolidación de esquema de Phase 16 descarta los timestamps históricos de las migraciones incrementales. Las bases de datos locales creadas contra el set antiguo no son alcanzables desde el set nuevo. make fresh es la única vía soportada de cutover. El proyecto es pre-producción (D-11), por lo que no existe procedimiento de cutover en producción.
After git pull of any change touching api/database/migrations/, run:
make freshThis drops + recreates + reseeds the dev DB with the consolidated schema and the realistic-story demo dataset. For exhaustive demos with the 10 D-10 anomalies (rejected supplier, expired CoA, failed batch, calibration drift, micro out-of-range, ...):
docker compose exec api php artisan db:seed --class=Database\\Seeders\\EdgeCasesSeederThe opt-in seeder is idempotent — re-running it does NOT duplicate data.
| Comando | Descripción |
|---|---|
make up |
Levanta los servicios (mariadb + api + frontend) |
make down |
Para los servicios |
make fresh |
migrate:fresh --seed (vía Docker) |
make migrate |
Aplica migraciones pendientes |
make seed |
Re-siembra sin reset |
make rollback |
Deshace la última migración |
make test |
Ejecuta tests backend (Pest) + frontend (Vitest) |
make test-api |
Pest suite (Laravel) |
make test-frontend |
Vitest (React) |
make shell |
Bash dentro del contenedor api |
make shell-db |
Cliente MariaDB dentro del contenedor mariadb |
CLAUDE.md— Convenciones del proyecto (Schema discipline, Test setup discipline, Cutover discipline).project-docs/schema.sql— Esquema canónico (auto-generado víaphp artisan schema:export).project-docs/coolify-deploy.md— Runbook operativo de despliegue en Coolify (setup, bootstrap, redeploy, refresh demo, rollback, logs, env vars)..planning/— Roadmap, fases y planes ejecutados (artefactos GSD).