# 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