platform-marketing-content/docs/05-user-stories/EPIC-001-SETUP.md

173 lines
4.3 KiB
Markdown

# EPIC-001: Setup y Autenticación
**Versión:** 1.0.0
**Fecha:** 2025-12-08
**Fase:** 1 - MVP Core
---
## Descripción
Esta épica cubre la configuración inicial del sistema, autenticación de usuarios, gestión de roles y permisos.
---
## User Stories
### US-001-001: Crear Tenant Inicial
**Como** Super Admin del sistema
**Quiero** crear el tenant principal de la agencia
**Para** comenzar a usar la plataforma
**Criterios de Aceptación:**
- [ ] Puedo ingresar nombre y slug del tenant
- [ ] El sistema crea el tenant con plan "Internal"
- [ ] Se crea automáticamente un usuario admin inicial
- [ ] RLS queda configurado para el tenant
**Prioridad:** Must Have
---
### US-001-002: Login de Usuario
**Como** usuario de la agencia
**Quiero** iniciar sesión con mi email y contraseña
**Para** acceder a la plataforma
**Criterios de Aceptación:**
- [ ] Formulario de login con email y password
- [ ] Validación de credenciales
- [ ] Generación de JWT token
- [ ] Redirección al dashboard después de login exitoso
- [ ] Mensaje de error claro si credenciales son inválidas
- [ ] Bloqueo después de 5 intentos fallidos
**Prioridad:** Must Have
---
### US-001-003: Logout
**Como** usuario autenticado
**Quiero** cerrar mi sesión
**Para** proteger mi cuenta cuando dejo de usar la plataforma
**Criterios de Aceptación:**
- [ ] Botón de logout visible en el menú
- [ ] Token invalidado al hacer logout
- [ ] Redirección a página de login
- [ ] Sesión no puede reutilizarse después de logout
**Prioridad:** Must Have
---
### US-001-004: Invitar Usuario al Tenant
**Como** Admin de la agencia
**Quiero** invitar a nuevos usuarios por email
**Para** que mi equipo pueda acceder a la plataforma
**Criterios de Aceptación:**
- [ ] Formulario para ingresar email del invitado
- [ ] Selector de rol a asignar
- [ ] Email de invitación enviado con link único
- [ ] Link expira en 7 días
- [ ] Puedo ver lista de invitaciones pendientes
- [ ] Puedo reenviar o cancelar invitaciones
**Prioridad:** Must Have
---
### US-001-005: Aceptar Invitación y Crear Cuenta
**Como** usuario invitado
**Quiero** aceptar la invitación y crear mi cuenta
**Para** acceder a la plataforma
**Criterios de Aceptación:**
- [ ] Link de invitación me lleva a formulario de registro
- [ ] Email ya está pre-llenado y no es editable
- [ ] Debo ingresar nombre, apellido y contraseña
- [ ] Contraseña debe cumplir requisitos mínimos (8 chars, 1 número)
- [ ] Al completar, puedo hacer login inmediatamente
- [ ] Invitación queda marcada como aceptada
**Prioridad:** Must Have
---
### US-001-006: Ver y Editar Mi Perfil
**Como** usuario autenticado
**Quiero** ver y editar mi información personal
**Para** mantener mis datos actualizados
**Criterios de Aceptación:**
- [ ] Puedo ver mi nombre, email, rol
- [ ] Puedo editar nombre y apellido
- [ ] Puedo subir/cambiar mi avatar
- [ ] Puedo cambiar mi contraseña (requiere contraseña actual)
- [ ] Puedo configurar preferencias (idioma, timezone)
**Prioridad:** Should Have
---
### US-001-007: Gestionar Usuarios del Tenant
**Como** Admin de la agencia
**Quiero** ver y gestionar los usuarios de mi equipo
**Para** controlar quién tiene acceso
**Criterios de Aceptación:**
- [ ] Lista de usuarios con nombre, email, rol, status, último login
- [ ] Puedo filtrar por rol o status
- [ ] Puedo buscar por nombre o email
- [ ] Puedo cambiar el rol de un usuario
- [ ] Puedo suspender un usuario
- [ ] Puedo reactivar un usuario suspendido
- [ ] No puedo suspenderme a mí mismo
**Prioridad:** Must Have
---
### US-001-008: Ver Roles y Permisos
**Como** Admin de la agencia
**Quiero** ver qué puede hacer cada rol
**Para** asignar roles apropiados a mi equipo
**Criterios de Aceptación:**
- [ ] Lista de roles disponibles
- [ ] Al seleccionar un rol, veo sus permisos organizados por módulo
- [ ] Identificación clara de roles de sistema vs custom
- [ ] Puedo ver cuántos usuarios tienen cada rol
**Prioridad:** Should Have
---
## Notas Técnicas
- Usar JWT con refresh tokens
- Passwords hasheados con bcrypt
- Implementar rate limiting en endpoint de login
- Tokens de invitación deben ser únicos y no predecibles
- Considerar implementar 2FA en fase posterior
---
## Dependencias
- Ninguna (primera épica a implementar)
---
**Documento generado por:** Requirements-Analyst
**Fecha:** 2025-12-08