Skip to content

DavidMRGaona/laboratory

Repository files navigation

Laboratory Management System

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.


Setup tras pull de Phase 16

Tras hacer git pull de cambios que toquen api/database/migrations/, ejecutar:

make fresh

Esto 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\\EdgeCasesSeeder

EdgeCasesSeeder 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 Pull (English summary)

After git pull of any change touching api/database/migrations/, run:

make fresh

This 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\\EdgeCasesSeeder

The opt-in seeder is idempotent — re-running it does NOT duplicate data.


Comandos Make habituales

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

Documentación

  • CLAUDE.md — Convenciones del proyecto (Schema discipline, Test setup discipline, Cutover discipline).
  • project-docs/schema.sql — Esquema canónico (auto-generado vía php 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).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors