173 lines
5.3 KiB
Markdown
173 lines
5.3 KiB
Markdown
# EPICA: EPIC-MGN-002 - Gestion de Usuarios
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | EPIC-MGN-002 |
|
|
| **Nombre** | Gestion de Usuarios |
|
|
| **Modulo** | users |
|
|
| **Fase** | Fase 1 - Foundation |
|
|
| **Prioridad** | P0 (Critico) |
|
|
| **Estado** | Ready |
|
|
| **Story Points** | 21 |
|
|
| **Sprint(s)** | Sprint 2 (CRUD), Sprint 5 (extras) |
|
|
| **Plan Detalle** | [SPRINT-PLAN-FASE-1.md](../SPRINT-PLAN-FASE-1.md) |
|
|
|
|
---
|
|
|
|
## Descripcion
|
|
|
|
Sistema completo de gestion de usuarios que permite crear, editar, desactivar y eliminar usuarios del sistema. Incluye perfiles de usuario, preferencias personalizadas (idioma, timezone, tema), gestion de avatares y datos personales.
|
|
|
|
Este modulo es esencial para la administracion de quienes pueden acceder al sistema y como personalizan su experiencia.
|
|
|
|
---
|
|
|
|
## Objetivo de Negocio
|
|
|
|
Proveer herramientas de administracion de usuarios que:
|
|
- Permitan control total sobre quien accede al sistema
|
|
- Ofrezcan personalizacion de experiencia por usuario
|
|
- Faciliten la gestion de grandes volumenes de usuarios
|
|
- Soporten el modelo multi-tenant
|
|
|
|
---
|
|
|
|
## Stakeholders
|
|
|
|
| Rol | Nombre/Equipo | Responsabilidad |
|
|
|-----|---------------|-----------------|
|
|
| Product Owner | Equipo Producto | Aprobacion de criterios |
|
|
| Tech Lead | Equipo Backend | Validacion tecnica |
|
|
| Administradores | Usuarios admin | Feedback de gestion |
|
|
|
|
---
|
|
|
|
## Historias de Usuario
|
|
|
|
| ID | Historia | Prioridad | SP | Estado |
|
|
|----|----------|-----------|-----|--------|
|
|
| US-MGN002-001 | Como admin, quiero crear usuarios para dar acceso a nuevos empleados | P0 | 5 | Ready |
|
|
| US-MGN002-002 | Como admin, quiero editar usuarios para actualizar su informacion | P0 | 3 | Ready |
|
|
| US-MGN002-003 | Como admin, quiero desactivar usuarios para revocar acceso sin eliminar datos | P0 | 3 | Ready |
|
|
| US-MGN002-004 | Como usuario, quiero editar mi perfil para mantener mi informacion actualizada | P0 | 3 | Ready |
|
|
| US-MGN002-005 | Como usuario, quiero cambiar mis preferencias (idioma, tema) para personalizar mi experiencia | P1 | 3 | Ready |
|
|
| US-MGN002-006 | Como admin, quiero listar y buscar usuarios para encontrar cuentas especificas | P0 | 2 | Ready |
|
|
| US-MGN002-007 | Como usuario, quiero subir mi avatar para personalizar mi perfil | P2 | 2 | Backlog |
|
|
|
|
**Total Story Points:** 21 SP
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion de la Epica
|
|
|
|
**Funcionales:**
|
|
- [ ] CRUD completo de usuarios (crear, leer, actualizar, eliminar logico)
|
|
- [ ] Perfiles de usuario con datos personales
|
|
- [ ] Preferencias de usuario (idioma, timezone, tema)
|
|
- [ ] Busqueda y filtrado de usuarios
|
|
- [ ] Activacion/desactivacion de cuentas
|
|
- [ ] Subida y gestion de avatares
|
|
|
|
**No Funcionales:**
|
|
- [ ] Performance: Listado paginado < 200ms para 1000 usuarios
|
|
- [ ] Seguridad: Solo admins pueden gestionar otros usuarios
|
|
- [ ] Usabilidad: Formularios con validacion en tiempo real
|
|
|
|
**Tecnicos:**
|
|
- [ ] Cobertura de tests > 80%
|
|
- [ ] Documentacion Swagger completa
|
|
- [ ] Integracion con modulo auth
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
**Esta epica depende de:**
|
|
| Epica/Modulo | Estado | Bloqueante |
|
|
|--------------|--------|------------|
|
|
| EPIC-MGN-001 Auth | Ready | Si |
|
|
| Schema core_auth | Por crear | Si |
|
|
|
|
**Esta epica bloquea:**
|
|
| Epica/Modulo | Razon |
|
|
|--------------|-------|
|
|
| EPIC-MGN-003 Roles | Requiere usuarios para asignar roles |
|
|
| EPIC-MGN-008 Notifications | Requiere usuarios como destinatarios |
|
|
| EPIC-MGN-015 Projects | Requiere usuarios para asignar a proyectos |
|
|
|
|
---
|
|
|
|
## Desglose Tecnico
|
|
|
|
**Database:**
|
|
- [ ] Schema: `core_auth` (extension)
|
|
- [ ] Tablas: 2 (user_profiles, user_preferences)
|
|
- [ ] Funciones: 1 (buscar_usuarios)
|
|
- [ ] RLS Policies: Si
|
|
|
|
**Backend:**
|
|
- [ ] Modulo: `users`
|
|
- [ ] Entities: 2 (UserProfile, UserPreference)
|
|
- [ ] Endpoints: 8 (CRUD + profile + preferences + avatar + search)
|
|
- [ ] Tests: 16+
|
|
|
|
**Frontend:**
|
|
- [ ] Paginas: 3 (UsersList, UserDetail, MyProfile)
|
|
- [ ] Componentes: 8 (UserForm, UserCard, UserTable, AvatarUpload, etc.)
|
|
- [ ] Stores: 1 (usersStore)
|
|
|
|
---
|
|
|
|
## Riesgos
|
|
|
|
| Riesgo | Probabilidad | Impacto | Mitigacion |
|
|
|--------|--------------|---------|------------|
|
|
| Escalabilidad con muchos usuarios | Media | Medio | Paginacion, indices, caching |
|
|
| Almacenamiento de avatares | Baja | Bajo | S3/MinIO, compresion de imagenes |
|
|
|
|
---
|
|
|
|
## Definition of Ready (DoR)
|
|
|
|
- [x] Historias de usuario definidas
|
|
- [x] Criterios de aceptacion claros
|
|
- [x] Dependencias identificadas
|
|
- [x] Estimacion completada
|
|
- [x] Diseno tecnico aprobado
|
|
- [x] Sin bloqueadores activos
|
|
|
|
## Definition of Done (DoD)
|
|
|
|
- [ ] Codigo implementado y revisado
|
|
- [ ] Tests pasando (unit, integration, e2e)
|
|
- [ ] Documentacion actualizada
|
|
- [ ] Inventarios actualizados
|
|
- [ ] Trazas registradas
|
|
- [ ] Demo realizada
|
|
- [ ] Product Owner aprobo
|
|
|
|
---
|
|
|
|
## Documentacion Relacionada
|
|
|
|
- Requerimientos: `docs/03-requerimientos/RF-users/`
|
|
- Especificaciones: `docs/04-modelado/especificaciones-tecnicas/ET-users-*.md`
|
|
- User Stories: `docs/05-user-stories/MGN-002/`
|
|
- DDL Spec: `docs/04-modelado/database-design/DDL-SPEC-core_auth.md`
|
|
|
|
---
|
|
|
|
## Historial
|
|
|
|
| Fecha | Cambio | Autor |
|
|
|-------|--------|-------|
|
|
| 2025-12-05 | Creacion de epica | Requirements-Analyst |
|
|
|
|
---
|
|
|
|
**Creada por:** Requirements-Analyst
|
|
**Fecha:** 2025-12-05
|
|
**Ultima actualizacion:** 2025-12-05
|