# EPICA: EPIC-MGN-015 - Proyectos Genericos ## Metadata | Campo | Valor | |-------|-------| | **ID** | EPIC-MGN-015 | | **Nombre** | Proyectos Genericos | | **Modulo** | projects | | **Fase** | Fase 3 - Extended | | **Prioridad** | P2 | | **Estado** | Backlog | | **Story Points** | 26 | | **Sprint(s)** | Sprint 17-18 | --- ## Descripcion Sistema de gestion de proyectos generico que incluye proyectos, tareas con subtareas, asignacion de recursos, registro de tiempo (timesheets), estados/etapas configurables y vista Kanban. Es la base que se extiende en verticales especificas como construccion. --- ## Objetivo de Negocio Proveer gestion de proyectos que: - Organice trabajo en proyectos y tareas estructuradas - Asigne recursos de forma eficiente - Rastree tiempo dedicado para facturacion y analisis - Visualice progreso en tiempo real - Sea extensible para verticales especificas --- ## Stakeholders | Rol | Nombre/Equipo | Responsabilidad | |-----|---------------|-----------------| | Product Owner | Equipo Producto | Definicion de funcionalidades PM | | Tech Lead | Equipo Backend | Arquitectura extensible | | Project Managers | Usuarios finales | Uso diario, feedback | | Gerentes | Management | Reportes de productividad | --- ## Historias de Usuario | ID | Historia | Prioridad | SP | Estado | |----|----------|-----------|-----|--------| | US-MGN015-001 | Como PM, quiero crear proyectos con fechas y responsables para organizar el trabajo | P0 | 3 | Backlog | | US-MGN015-002 | Como PM, quiero crear y asignar tareas para distribuir el trabajo | P0 | 5 | Backlog | | US-MGN015-003 | Como usuario, quiero registrar tiempo en tareas para reportar avance | P0 | 5 | Backlog | | US-MGN015-004 | Como PM, quiero ver progreso en vista Kanban para visualizar estado del proyecto | P0 | 5 | Backlog | | US-MGN015-005 | Como PM, quiero definir etapas del proyecto para personalizar el flujo | P1 | 3 | Backlog | | US-MGN015-006 | Como gerente, quiero ver reportes de proyectos para analizar productividad | P1 | 5 | Backlog | **Total Story Points:** 26 SP --- ## Criterios de Aceptacion de la Epica **Funcionales:** - [ ] CRUD de proyectos con fechas inicio/fin y responsables - [ ] Tareas con subtareas ilimitadas y dependencias - [ ] Asignacion multiple de usuarios a tareas - [ ] Timesheets por tarea con descripcion de actividad - [ ] Vista Kanban drag & drop por etapas - [ ] Etapas configurables por tenant - [ ] Reportes de horas por proyecto/usuario/periodo - [ ] Alertas de tareas vencidas **No Funcionales:** - [ ] Performance: Kanban carga en < 1s con 200+ tareas - [ ] UX: Drag & drop fluido - [ ] Extensibilidad: Facil de extender para verticales **Tecnicos:** - [ ] Cobertura de tests > 80% - [ ] Modelo de datos extensible - [ ] API documentada para verticales --- ## Dependencias **Esta epica depende de:** | Epica/Modulo | Estado | Bloqueante | |--------------|--------|------------| | EPIC-MGN-002 Users | Ready | Si | | EPIC-MGN-005 Catalogs | Backlog | No | **Esta epica bloquea:** | Epica/Modulo | Razon | |--------------|-------| | Vertical Construccion | Extiende proyectos con obras y avances | | Vertical Servicios | Extiende proyectos con ticketing | --- ## Desglose Tecnico **Database:** - [ ] Schema: `core_projects` - [ ] Tablas: 6 (projects, tasks, task_assignments, timesheets, stages, task_dependencies) - [ ] Funciones: calcular_horas_proyecto, obtener_tareas_vencidas - [ ] RLS Policies: Si (por tenant, por asignacion) **Backend:** - [ ] Modulo: `projects` - [ ] Entities: 6 (Project, Task, TaskAssignment, Timesheet, Stage, TaskDependency) - [ ] Services: ProjectService, TaskService, TimesheetService - [ ] Endpoints: 18 (CRUD projects, tasks, timesheets, stages) - [ ] Tests: 25+ **Frontend:** - [ ] Paginas: 5 (Projects, ProjectDetail, Kanban, Timesheets, Reports) - [ ] Componentes: ProjectCard, TaskForm, KanbanBoard, TimesheetEntry, GanttChart (opcional) - [ ] Stores: 1 (projectsStore) --- ## Riesgos | Riesgo | Probabilidad | Impacto | Mitigacion | |--------|--------------|---------|------------| | Complejidad de dependencias entre tareas | Media | Medio | Validaciones, alertas de ciclos | | Performance con muchas subtareas | Media | Medio | Lazy loading, paginacion | | Conflictos con verticales | Baja | Alto | Arquitectura extensible documentada | --- ## Definition of Ready (DoR) - [x] Historias de usuario definidas - [x] Criterios de aceptacion claros - [x] Dependencias identificadas - [x] Estimacion completada - [ ] Etapas default definidas - [ ] Modelo de extension para verticales aprobado - [x] Sin bloqueadores activos ## Definition of Done (DoD) - [ ] Codigo implementado y revisado - [ ] Tests pasando (unit, integration, e2e) - [ ] Kanban funcional con drag & drop - [ ] Timesheets registrando correctamente - [ ] Reportes basicos funcionando - [ ] Documentacion actualizada - [ ] Inventarios actualizados - [ ] Trazas registradas - [ ] Demo realizada - [ ] Product Owner aprobo --- ## Documentacion Relacionada - Requerimientos: `docs/03-requerimientos/RF-projects/` - User Stories: `docs/05-user-stories/mgn-015/` - DDL Spec: `docs/04-modelado/database-design/DDL-SPEC-core_projects.md` - Modelo de Extension: `docs/95-guias-desarrollo/extension-projects.md` --- ## Historial | Fecha | Cambio | Autor | |-------|--------|-------| | 2025-12-05 | Creacion de epica | Requirements-Analyst | | 2025-12-05 | Completado con Stakeholders, Riesgos, DoR/DoD | Requirements-Analyst | --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-05 **Ultima actualizacion:** 2025-12-05