7.0 KiB
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:
- Auth (login basico, JWT)
- Users (CRUD basico)
- Roles (RBAC)
- Tenants (multi-tenancy)
- 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_authen PostgreSQL - Tabla
credentialscon 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_usersen 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_rbacen 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_tenantsen 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 |