MVP backend-first para reportes de incidencias relacionadas con animales, con portal publico lean y backoffice minimo. La documentacion en docs/ es la fuente de verdad de alcance, API y modelo de datos.
apps/apiAPI REST en NestJS (backend)apps/webapp Next.js (frontend)docsdocumentos de producto/arquitectura/API y criterios de aceptacion
- Docker + Docker Compose
- Node.js (opcional para desarrollo local fuera de Docker)
docker compose up --build- API:
http://localhost:3001/api/v1 - Swagger:
http://localhost:3001/api/docs - Web:
http://localhost:3000 - MinIO (S3 local):
http://localhost:9000(console:http://localhost:9001)- Bucket precreado:
alfa-evidence - Console login:
alfa/alfa-minio(verifica el bucket enBuckets) - CLI (AWS):
AWS_ACCESS_KEY_ID=alfa AWS_SECRET_ACCESS_KEY=alfa-minio aws s3 ls --endpoint-url http://localhost:9000 - Script:
./scripts/verify-minio.sh
- Bucket precreado:
Copia .env.example a .env y ajusta DATABASE_URL.
- Postgres local (por defecto en Docker Compose):
DATABASE_URL=postgres://alfa:alfa@localhost:5432/alfa
- MinIO (S3 local por defecto en Docker Compose):
S3_ENDPOINT=http://localhost:9000
S3_ACCESS_KEY=alfa
S3_SECRET_KEY=alfa-minio
S3_BUCKET=alfa-evidence
S3_REGION=us-east-1
- Tests (override opcional):
S3_ENDPOINT_TEST=http://localhost:9000
S3_ACCESS_KEY_TEST=alfa
S3_SECRET_KEY_TEST=alfa-minio
S3_BUCKET_TEST=alfa-evidence
S3_REGION_TEST=us-east-1
- Supabase (ejemplo):
DATABASE_URL=postgresql://postgres:<password>@db.<project-ref>.supabase.co:5432/postgres?sslmode=require
Este proyecto usa TDD: empieza con un test fallando, implementa, corre tests, corrige hasta verde y solo entonces marca la tarea como completa.
- Prefijo global:
/api/v1 - Swagger habilitado en
/api/docs
Desde apps/api:
npm run prisma:migrate:dev
npm run prisma:migrate:deploy
npm run prisma:generateE2E en Docker:
docker compose -f docker-compose.test.yml up --build --abort-on-container-exitVer docs/STATUS.md para tareas completas y pendientes.