erp-core/docs/SPRINT-PLAN-FASE-1.md

7.0 KiB

Plan de Sprints - Fase 1 Foundation

Resumen Ejecutivo

Metrica Valor
Fase 1 - Foundation
Modulos MGN-001, MGN-002, MGN-003, MGN-004
Story Points Total 150 SP
Sprints Planificados 5
Velocidad Estimada 30 SP/sprint
Duracion Sprint 2 semanas

Dependencias entre Modulos

MGN-001 (Auth)
    |
    v
MGN-002 (Users) <--+
    |              |
    v              |
MGN-003 (Roles) ---+
    |
    v
MGN-004 (Tenants)

Orden de implementacion:

  1. Auth (login basico, JWT)
  2. Users (CRUD basico)
  3. Roles (RBAC)
  4. Tenants (multi-tenancy)
  5. Integracion completa

Sprint 1: Autenticacion Core

Objetivo: Implementar login basico y manejo de tokens JWT

ID User Story SP Prioridad
US-MGN001-001 Login con email y password 8 P0
US-MGN001-003 Logout y cierre de sesion 2 P0
US-MGN001-004 Renovacion automatica de tokens 5 P0
- Setup proyecto backend (NestJS) 5 P0
- Setup proyecto frontend (React) 5 P0
- Setup base de datos PostgreSQL 5 P0
Total 30 SP

Entregables:

  • Proyecto NestJS configurado con TypeORM
  • Proyecto React configurado con Vite + React Router
  • Esquema core_auth en PostgreSQL
  • Tabla credentials con RLS
  • Endpoint POST /api/v1/auth/login
  • Endpoint POST /api/v1/auth/refresh
  • Endpoint POST /api/v1/auth/logout
  • Pagina de Login funcional
  • Manejo de tokens en frontend

Criterios de Aceptacion:

  • Usuario puede iniciar sesion con email/password
  • Access token expira en 15 minutos
  • Refresh token permite renovar sin re-login
  • Logout invalida tokens

Sprint 2: Password Recovery + Users CRUD

Objetivo: Recuperacion de password y gestion basica de usuarios

ID User Story SP Prioridad
US-MGN001-002 Recuperacion de password 5 P0
US-MGN002-001 CRUD de usuarios (Admin) 8 P0
US-MGN002-002 Perfil de usuario 5 P0
US-MGN002-003 Cambio de password 3 P0
- Configuracion de email (SMTP/SendGrid) 4 P0
- Tests unitarios Auth 5 P1
Total 30 SP

Entregables:

  • Esquema core_users en PostgreSQL
  • Tablas: users, user_profiles, user_preferences
  • Endpoint POST /api/v1/auth/forgot-password
  • Endpoint POST /api/v1/auth/reset-password
  • Endpoints CRUD /api/v1/users
  • Endpoint GET/PATCH /api/v1/users/me/profile
  • Endpoint POST /api/v1/users/me/change-password
  • Servicio de email configurado
  • Pagina de usuarios (admin)
  • Pagina de perfil

Criterios de Aceptacion:

  • Usuario puede solicitar reset de password
  • Email con link de reset se envia correctamente
  • Admin puede crear, editar, eliminar usuarios
  • Usuario puede editar su perfil

Sprint 3: Roles y Permisos (RBAC)

Objetivo: Sistema de roles, permisos y guards

ID User Story SP Prioridad
US-MGN003-001 Crear y gestionar roles 8 P0
US-MGN003-002 Asignar permisos a roles 8 P0
US-MGN003-003 Validar permisos en runtime 5 P0
US-MGN003-004 Asignar roles a usuarios 5 P0
- Guards de autorizacion 4 P0
Total 30 SP

Entregables:

  • Esquema core_rbac en PostgreSQL
  • Tablas: roles, permissions, role_permissions, user_roles
  • Endpoints CRUD /api/v1/roles
  • Endpoints CRUD /api/v1/permissions
  • Endpoint POST /api/v1/roles/:id/permissions
  • Endpoint POST /api/v1/users/:id/roles
  • @RequirePermission decorator
  • PermissionsGuard
  • Pagina de roles (admin)
  • Componente de asignacion de permisos

Criterios de Aceptacion:

  • Admin puede crear roles con permisos
  • Roles se pueden asignar a usuarios
  • Guards bloquean acceso sin permisos
  • Permisos granulares por modulo

Sprint 4: Multi-tenancy Core

Objetivo: Aislamiento de datos por tenant y subscripciones

ID User Story SP Prioridad
US-MGN004-001 Crear tenant 8 P0
US-MGN004-002 Aislamiento RLS 8 P0
US-MGN004-003 Cambio de contexto tenant 5 P0
US-MGN004-004 Planes de subscripcion 5 P1
- Migracion de tablas existentes a multi-tenant 4 P0
Total 30 SP

Entregables:

  • Esquema core_tenants en PostgreSQL
  • Tablas: tenants, tenant_users, subscriptions, plans
  • Policies RLS en todas las tablas
  • Middleware de tenant context
  • Endpoints CRUD /api/v1/tenants
  • Endpoint POST /api/v1/tenants/:id/users
  • Contexto de tenant en frontend
  • Selector de tenant (para usuarios multi-tenant)

Criterios de Aceptacion:

  • Datos aislados por tenant via RLS
  • Usuario solo ve datos de su tenant
  • Super-admin puede ver todos los tenants
  • Usuarios pueden pertenecer a multiples tenants

Sprint 5: Integracion y Estabilizacion

Objetivo: Integracion E2E, tests y pulido

ID User Story SP Prioridad
US-MGN002-005 Cambio de email 6 P1
US-MGN002-004 Preferencias de usuario 3 P1
- Tests E2E Auth 5 P0
- Tests E2E Users 5 P0
- Tests E2E Roles 4 P0
- Tests E2E Tenants 4 P0
- Documentacion Swagger 3 P1
Total 30 SP

Entregables:

  • Funcionalidad cambio de email
  • Pagina de preferencias de usuario
  • Suite de tests E2E completa
  • Cobertura > 80% en modulos core
  • Documentacion Swagger actualizada
  • README con instrucciones de setup
  • Seed data para desarrollo

Criterios de Aceptacion:

  • Todos los tests E2E pasando
  • Cobertura de codigo > 80%
  • Swagger documentado y funcional
  • Flujo completo Auth -> Users -> Roles -> Tenants funcional

Backlog (Post-Fase 1)

Historias que quedan pendientes para fases posteriores:

ID Historia SP Notas
US-MGN001-005 Login con OAuth (Google/Microsoft) 8 Requiere configuracion OAuth apps
US-MGN001-006 2FA (TOTP) 5 Nice to have
US-MGN001-007 Gestion de sesiones activas 3 Bajo impacto

Riesgos y Mitigaciones

Riesgo Probabilidad Impacto Mitigacion
Complejidad RLS Media Alto POC temprano en Sprint 1
Integracion email Baja Medio Usar servicio externo (SendGrid)
Performance JWT Baja Medio Cache de tokens, indices
Scope creep Media Alto Backlog estricto, no features nuevas

Definicion de Done (General)

  • Codigo en PR con code review aprobado
  • Tests unitarios con cobertura > 80%
  • Tests E2E pasando
  • Documentacion Swagger actualizada
  • Sin warnings de linter
  • Sin vulnerabilidades criticas
  • Merge a develop

Historial

Version Fecha Autor Cambios
1.0 2025-12-06 System Creacion inicial