erp-core/docs/08-epicas/EPIC-MGN-015-projects.md

179 lines
5.6 KiB
Markdown

# 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