Saltar a contenido

SPRINT-00.md

Sprint 0 — Cimientos del proyecto

Normativa completa del Sprint 0: docs/SPRINT_0.md. Este archivo es el tracker de tareas. El estado de avance se actualiza aquí al cierre de cada sesión.


1. Datos del sprint

Campo Valor
Número 00
Objetivo Construir la plataforma antes de construir la aplicación
Estado CERRADO
Tag git sprint-00

2. Tareas planificadas

Antes de pasar una tarea a EN_PROGRESO: completar su instancia en prompts/AGENT_TASK_TEMPLATE.md.

# Tarea Agente Rama git Depende de Estado
0 Documentación obligatoria Sprint 0 Orchestrator — (PR #1) CERRADA
1 Dockerfiles backend y frontend DevOps chore/devops-dockerfiles (PR #5) CERRADA
2 docker-compose.yml completo (todos los servicios) DevOps chore/devops-compose (PR #6) Tarea 1 CERRADA
3 Nginx + scripts de backup GFS + .env.example DevOps chore/devops-nginx-backup (PR #13) Tarea 2 CERRADA
4 CI/CD — GitHub Actions (ci.yml + cd.yml desactivado) DevOps chore/devops-cicd (PR #12) Tarea 2 CERRADA
5 Proyecto Django + django-tenants + settings divididos Backend chore/backend-django-setup (PR #7) Tarea 2 CERRADA
6 Modelo Usuario + autenticación JWT + permisos base Backend chore/backend-auth (PR #8) Tarea 5 CERRADA
7 Estructura de apps + service layer + healthcheck + tests mínimos Backend chore/backend-apps (PR #9) Tarea 6 CERRADA
8 React + Vite + Tailwind + PWA shell + design system mínimo Frontend chore/frontend-shell (PR #10) Tarea 2 CERRADA
9 Rutas + cliente HTTP + manejo de auth + estados base + componentes Frontend chore/frontend-base (PR #11) Tareas 6 y 8 CERRADA

3. Agentes involucrados

  • DevOps — tareas 1 a 4
  • Backend — tareas 5 a 7
  • Frontend — tareas 8 y 9
  • Orchestrator — coordinación, revisión de DoD técnico y cierre

4. Definition of Done — proceso

  • [x] Todas las ramas mergeadas a main.
  • [x] Todos los PRs aprobados con PR_CHECKLIST.md.
  • [x] Tests ejecutados y sin regresiones.
  • [x] Tag sprint-00 creado en main.
  • [x] docs/PROJECT_STATUS.md actualizado.
  • [x] docs/NEXT_ACTION.md actualizado.
  • [x] Esta instancia marcada como CERRADO en SPRINT_INDEX.md.

5. Definition of Done — técnico

Condiciones verificables en ejecución. El sprint no se cierra hasta que todas sean demostrables.

  • [x] docker compose up levanta todos los servicios sin errores (PostgreSQL, Redis, Django, Celery, Nginx, backup).
  • [x] Los schemas public y tenant_test migran sin errores (python manage.py migrate_schemas).
  • [x] GET /api/health/ responde 200 OK.
  • [x] El login retorna JWT válido y el token autentica requests subsiguientes.
  • [x] El frontend carga en http://localhost:5173 con el flujo de auth funcional.
  • [x] El pipeline CI pasa en GitHub Actions (tests + lint + build).

6. Resumen de cierre

Completado al cierre del sprint — 2026-06-26.

Completado

  • Tarea 0 — Documentación obligatoria (PR #1, 2026-06-25)
  • Tarea 1 — Dockerfiles backend (378 MB) y frontend (74 MB) (PR #5)
  • Tarea 2 — docker-compose.yml completo: 8 servicios, red interna, healthchecks, backup GFS, .env.example (PR #6)
  • Tarea 3 — Nginx prod config: SPA static, proxy Django, security headers, SSL-ready (PR #13)
  • Tarea 4 — CI GitHub Actions: lint (ruff + black) + tests (pytest) + type-check + build en cada PR (PR #12)
  • Tarea 5 — Proyecto Django + django-tenants + settings por entorno (PR #7)
  • Tarea 6 — Modelo Usuario custom + JWT auth + httpOnly cookie + token blacklist + permisos base (PR #8)
  • Tarea 7 — Estructura de 5 apps + healthcheck + 18 tests pasando en CI (PR #9)
  • Tarea 8 — Frontend shell: React + Vite + Tailwind + PWA + design system (PR #10)
  • Tarea 9 — Auth frontend: Zustand + axios interceptors + LoginPage + rutas protegidas + restauración de sesión (PR #11)

Pendiente / movido al backlog

Ninguno. Todas las tareas del Sprint 0 cerradas.

Decisiones tomadas

  • ADR-001 — Aislamiento multi-tenant por schema de empresa
  • ADR-002 — GitHub Actions como plataforma CI/CD
  • ADR-003 — Logs estructurados + Sentry + Loki/Grafana
  • ADR-004 — Resolución de conflictos en sincronización offline
  • Refresh token en httpOnly cookie + access token en memoria Zustand (seguridad)
  • ruff + black para lint/formato Python; tsc --noEmit para TypeScript

Estado de salida

SPRINT_00_STATUS: CERRADO