Skip to content

Sistema dedicado al reporte ciudadano y gestión de incidencias de mascotas

Notifications You must be signed in to change notification settings

ogticrd/alfa-webapp

Repository files navigation

ALFA MVP

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.

Estructura del repositorio

  • apps/api API REST en NestJS (backend)
  • apps/web app Next.js (frontend)
  • docs documentos de producto/arquitectura/API y criterios de aceptacion

Requisitos

  • Docker + Docker Compose
  • Node.js (opcional para desarrollo local fuera de Docker)

Inicio rapido (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 en Buckets)
    • 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

Configuracion de entorno

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

Flujo TDD

Este proyecto usa TDD: empieza con un test fallando, implementa, corre tests, corrige hasta verde y solo entonces marca la tarea como completa.

Desarrollo API

  • Prefijo global: /api/v1
  • Swagger habilitado en /api/docs

Prisma

Desde apps/api:

npm run prisma:migrate:dev
npm run prisma:migrate:deploy
npm run prisma:generate

Tests

E2E en Docker:

docker compose -f docker-compose.test.yml up --build --abort-on-container-exit

Estado del proyecto

Ver docs/STATUS.md para tareas completas y pendientes.

About

Sistema dedicado al reporte ciudadano y gestión de incidencias de mascotas

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages