- Configure workspace Git repository with comprehensive .gitignore - Add Odoo as submodule for ERP reference code - Include documentation: SETUP.md, GIT-STRUCTURE.md - Add gitignore templates for projects (backend, frontend, database) - Structure supports independent repos per project/subproject level Workspace includes: - core/ - Reusable patterns, modules, orchestration system - projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.) - knowledge-base/ - Reference code and patterns (includes Odoo submodule) - devtools/ - Development tools and templates - customers/ - Client implementations template 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
500 lines
16 KiB
YAML
500 lines
16 KiB
YAML
# TRACEABILITY_MATRIX.yml - Matriz Consolidada de Trazabilidad
|
|
|
|
project: GAMILIT
|
|
version: 2.0
|
|
generated: 2025-11-08
|
|
source: Consolidado de 16 épicas (Fases 1-3)
|
|
|
|
# ============================================================================
|
|
# RESUMEN EJECUTIVO
|
|
# ============================================================================
|
|
|
|
summary:
|
|
total_epics: 16
|
|
total_requirements: 45+
|
|
total_specifications: 45+
|
|
total_user_stories: 120+
|
|
total_database_objects: 415
|
|
total_backend_modules: 20
|
|
total_frontend_features: 15
|
|
traceability_coverage: 100%
|
|
|
|
# ============================================================================
|
|
# MATRIZ POR ÉPICA
|
|
# ============================================================================
|
|
|
|
epics:
|
|
# ===== FASE 1: ALCANCE INICIAL (5 épicas) =====
|
|
|
|
- code: EAI-001
|
|
name: Fundamentos del Sistema
|
|
phase: 1
|
|
requirements:
|
|
- RF-AUTH-001 (Roles y permisos)
|
|
- RF-AUTH-002 (Estados de cuenta)
|
|
- RF-AUTH-003 (Autenticación)
|
|
specifications:
|
|
- ET-AUTH-001 (RBAC implementation)
|
|
- ET-AUTH-002 (Account states)
|
|
- ET-AUTH-003 (Auth flow)
|
|
user_stories: [US-FUND-001 through US-FUND-008]
|
|
implementation:
|
|
database:
|
|
- Schema: auth_management (11 tables)
|
|
- Key tables: users_extended, roles, permissions, user_roles
|
|
backend:
|
|
- Module: auth
|
|
- Services: auth.service, jwt.service, rbac.service
|
|
- Endpoints: 8
|
|
frontend:
|
|
- Feature: auth
|
|
- Components: LoginForm, RegisterForm, PasswordInput
|
|
- Routes: 4
|
|
|
|
- code: EAI-002
|
|
name: Actividades Educativas
|
|
phase: 1
|
|
requirements:
|
|
- RF-EDU-001 (Estructura de módulos)
|
|
- RF-EDU-002 (Mecánicas de ejercicios)
|
|
- RF-EDU-003 (Taxonomía de Bloom)
|
|
specifications:
|
|
- ET-EDU-001 (Module structure)
|
|
- ET-EDU-002 (Exercise mechanics)
|
|
- ET-EDU-003 (Bloom taxonomy)
|
|
user_stories: [US-ACT-001 through US-ACT-015]
|
|
implementation:
|
|
database:
|
|
- Schema: educational_content (10 tables)
|
|
- Key tables: modules, exercises, exercise_options
|
|
backend:
|
|
- Module: educational-content
|
|
- Services: module.service, exercise.service
|
|
- Endpoints: 15
|
|
frontend:
|
|
- Features: modules, exercises
|
|
- Components: ModuleCard, ExercisePlayer, MultipleChoice
|
|
- Routes: 5
|
|
|
|
- code: EAI-003
|
|
name: Gamificación Básica
|
|
phase: 1
|
|
requirements:
|
|
- RF-GAM-001 (Achievements)
|
|
- RF-GAM-002 (ML Coins economy)
|
|
- RF-GAM-003 (Rangos mayas)
|
|
specifications:
|
|
- ET-GAM-001 (Achievement system)
|
|
- ET-GAM-002 (Coin economy)
|
|
- ET-GAM-003 (Rank progression)
|
|
user_stories: [US-GAM-001 through US-GAM-012]
|
|
implementation:
|
|
database:
|
|
- Schema: gamification_system (12 tables)
|
|
- Key tables: achievements, user_achievements, ranks, coin_transactions
|
|
backend:
|
|
- Module: gamification
|
|
- Services: achievement.service, rank.service, coin.service
|
|
- Endpoints: 12
|
|
frontend:
|
|
- Feature: gamification
|
|
- Components: AchievementCard, RankProgressBar, CoinBalance
|
|
- Routes: 4
|
|
|
|
- code: EAI-004
|
|
name: Analytics y Seguimiento
|
|
phase: 1
|
|
requirements:
|
|
- RF-PRG-001 (Tracking de progreso)
|
|
- RF-ANLT-001 (Analytics básicos)
|
|
specifications:
|
|
- ET-PRG-001 (Progress tracking)
|
|
- ET-ANLT-001 (Analytics implementation)
|
|
user_stories: [US-ANLT-001 through US-ANLT-008]
|
|
implementation:
|
|
database:
|
|
- Schema: progress_tracking (11 tables)
|
|
- Key tables: user_module_progress, user_statistics
|
|
backend:
|
|
- Module: progress
|
|
- Services: progress.service, analytics.service
|
|
- Endpoints: 10
|
|
frontend:
|
|
- Feature: progress
|
|
- Components: ProgressChart, StatisticsCard
|
|
- Routes: 3
|
|
|
|
- code: EAI-005
|
|
name: Admin Dashboard Base
|
|
phase: 1
|
|
requirements:
|
|
- RF-ADMIN-001 (Dashboard administrativo)
|
|
- RF-ADMIN-002 (Gestión de usuarios)
|
|
specifications:
|
|
- ET-ADMIN-001 (Admin dashboard)
|
|
- ET-ADMIN-002 (User management)
|
|
user_stories: [US-ADMIN-001 through US-ADMIN-010]
|
|
implementation:
|
|
database:
|
|
- Schema: admin_dashboard (9 tables)
|
|
- Key tables: dashboard_metrics, user_activity_logs
|
|
backend:
|
|
- Module: admin
|
|
- Services: admin-dashboard.service, user-management.service
|
|
- Endpoints: 18
|
|
frontend:
|
|
- Feature: admin-dashboard
|
|
- Components: MetricsCard, UserTable
|
|
- Routes: 4
|
|
|
|
# ===== FASE 2: ROBUSTECIMIENTO (1 épica) =====
|
|
|
|
- code: EMR-001
|
|
name: Migración y Robustecimiento BD
|
|
phase: 2
|
|
requirements:
|
|
- Technical requirements (DB migration)
|
|
specifications:
|
|
- Technical specifications (Schema design)
|
|
tasks: [6 technical tasks]
|
|
implementation:
|
|
database:
|
|
- Migration: 1 schema → 13 schemas
|
|
- Migration: 44 tables → 89 tables
|
|
- Created: 127 indexes, 28 functions, 18 triggers, 45 RLS policies
|
|
backend:
|
|
- Updates: Query optimization, schema-aware queries
|
|
- Performance: +65% improvement
|
|
frontend:
|
|
- Changes: None (API compatible)
|
|
|
|
# ===== FASE 3: EXTENSIONES (10 épicas) =====
|
|
|
|
- code: EXT-001
|
|
name: Portal de Maestros
|
|
phase: 3
|
|
requirements:
|
|
- RF-PM-001 (Classroom management)
|
|
- RF-PM-002 (Assignments)
|
|
- RF-PM-003 (Grading)
|
|
specifications:
|
|
- ET-PM-001 (Classroom structure)
|
|
- ET-PM-002 (Assignment system)
|
|
- ET-PM-003 (Grading system)
|
|
user_stories: [US-PM-001a through US-PM-005c] (12 stories)
|
|
implementation:
|
|
database:
|
|
- Schema: social_features (extended)
|
|
- New tables: assignments, assignment_submissions, teacher_notes
|
|
backend:
|
|
- Module: teacher-portal
|
|
- Services: classroom.service, assignment.service, grading.service
|
|
- Endpoints: 18
|
|
frontend:
|
|
- Feature: teacher-dashboard
|
|
- Components: ClassroomList, GradingInterface, ProgressChart
|
|
- Routes: 5
|
|
|
|
- code: EXT-002
|
|
name: Admin Extendido
|
|
phase: 3
|
|
requirements:
|
|
- RF-ADMIN-EXT-001 (Bulk operations)
|
|
- RF-ADMIN-EXT-002 (System config)
|
|
specifications:
|
|
- ET-ADMIN-EXT-001 (Bulk management)
|
|
- ET-ADMIN-EXT-002 (Configuration)
|
|
user_stories: [US-ADMIN-EXT-001 through US-ADMIN-EXT-010]
|
|
implementation:
|
|
database:
|
|
- Schema: admin_dashboard (extended)
|
|
- New tables: content_moderation, moderation_rules
|
|
backend:
|
|
- Module: admin-extended
|
|
- Services: user-management.service, system-config.service
|
|
- Endpoints: 15
|
|
frontend:
|
|
- Feature: admin-tools
|
|
- Components: BulkUserManager, SystemConfigPanel
|
|
- Routes: 4
|
|
|
|
- code: EXT-003
|
|
name: Notificaciones Multi-Canal
|
|
phase: 3
|
|
requirements:
|
|
- RF-NOTIF-001 (Multi-channel notifications)
|
|
- RF-NOTIF-002 (Preferences)
|
|
specifications:
|
|
- ET-NOTIF-001 (Notification system)
|
|
- ET-NOTIF-002 (Preference management)
|
|
user_stories: [US-NOTIF-001 through US-NOTIF-008]
|
|
implementation:
|
|
database:
|
|
- Schema: gamilit (extended)
|
|
- New tables: notifications, notification_preferences, notification_logs
|
|
backend:
|
|
- Module: notifications
|
|
- Services: notification.service, email.service, push.service
|
|
- Endpoints: 10
|
|
- Integrations: SendGrid, FCM
|
|
frontend:
|
|
- Feature: notifications
|
|
- Components: NotificationCenter, NotificationBell
|
|
- Routes: 2
|
|
|
|
- code: EXT-004
|
|
name: Perfiles Avanzados
|
|
phase: 3
|
|
requirements:
|
|
- RF-PROF-001 (Profile customization)
|
|
- RF-PROF-002 (Social features)
|
|
specifications:
|
|
- ET-PROF-001 (Profile structure)
|
|
- ET-PROF-002 (Social comparison)
|
|
user_stories: [US-PROF-001 through US-PROF-008]
|
|
implementation:
|
|
database:
|
|
- Schema: auth_management (extended)
|
|
- New table: user_profiles_extended
|
|
backend:
|
|
- Module: profiles
|
|
- Services: profile.service, avatar-upload.service
|
|
- Endpoints: 8
|
|
frontend:
|
|
- Feature: user-profile
|
|
- Components: ProfileHeader, BadgesShowcase
|
|
- Routes: 3
|
|
|
|
- code: EXT-005
|
|
name: Reportería Avanzada
|
|
phase: 3
|
|
requirements:
|
|
- RF-REP-001 (Custom reports)
|
|
- RF-REP-002 (Export capabilities)
|
|
specifications:
|
|
- ET-REP-001 (Report builder)
|
|
- ET-REP-002 (Export engine)
|
|
user_stories: [US-REP-001 through US-REP-010]
|
|
implementation:
|
|
database:
|
|
- Schema: admin_dashboard (extended)
|
|
- New tables: reports_templates, report_schedules
|
|
- New views: 4 materialized views
|
|
backend:
|
|
- Module: reports
|
|
- Services: report-builder.service, report-export.service
|
|
- Endpoints: 12
|
|
- Libraries: PDFKit, ExcelJS
|
|
frontend:
|
|
- Feature: reports
|
|
- Components: ReportBuilder, ChartRenderer
|
|
- Routes: 4
|
|
|
|
- code: EXT-006
|
|
name: Gestión de Contenido
|
|
phase: 3
|
|
requirements:
|
|
- RF-CMS-001 (Content editor)
|
|
- RF-CMS-002 (Workflow)
|
|
specifications:
|
|
- ET-CMS-001 (CMS architecture)
|
|
- ET-CMS-002 (Approval workflow)
|
|
user_stories: [US-CMS-001 through US-CMS-009]
|
|
implementation:
|
|
database:
|
|
- Schema: educational_content (extended)
|
|
- New tables: content_versions, content_approvals
|
|
backend:
|
|
- Module: content-management
|
|
- Services: content-editor.service, workflow-approval.service
|
|
- Endpoints: 10
|
|
frontend:
|
|
- Feature: content-editor
|
|
- Components: WYSIWYGEditor (TipTap), VersionHistory
|
|
- Routes: 4
|
|
|
|
- code: EXT-007
|
|
name: LTI Integration
|
|
phase: 3
|
|
status: partial (40%)
|
|
requirements:
|
|
- RF-LTI-001 (LTI 1.3 integration)
|
|
specifications:
|
|
- ET-LTI-001 (LTI implementation)
|
|
user_stories: [US-LTI-001 through US-LTI-006] (partial)
|
|
implementation:
|
|
database:
|
|
- Schema: system_configuration (partial)
|
|
- New tables: lti_consumers, lti_sessions (partial)
|
|
backend:
|
|
- Module: lti (partial)
|
|
- Services: lti-auth.service ✅, lti-launch.service ✅
|
|
- Endpoints: 6 (partial)
|
|
frontend:
|
|
- Changes: Minimal (LTI launch handled)
|
|
|
|
- code: EXT-008
|
|
name: White Label
|
|
phase: 3
|
|
status: partial (30%)
|
|
requirements:
|
|
- RF-WL-001 (Multi-tenant theming)
|
|
specifications:
|
|
- ET-WL-001 (Theming system)
|
|
user_stories: [US-WL-001 through US-WL-005] (partial)
|
|
implementation:
|
|
database:
|
|
- Schema: system_configuration (partial)
|
|
- New table: tenant_configurations (partial)
|
|
backend:
|
|
- Module: white-label (partial)
|
|
- Services: tenant-config.service ✅, theming.service (partial)
|
|
- Endpoints: 4 (partial)
|
|
frontend:
|
|
- Feature: theme customization (partial)
|
|
- Components: ThemeSelector (partial)
|
|
|
|
- code: EXT-009
|
|
name: Peer Challenges
|
|
phase: 3
|
|
status: partial (50%)
|
|
requirements:
|
|
- RF-PEER-001 (Peer challenges)
|
|
specifications:
|
|
- ET-PEER-001 (Challenge system)
|
|
user_stories: [US-PEER-001 through US-PEER-005] (partial)
|
|
implementation:
|
|
database:
|
|
- Schema: gamification_system (partial)
|
|
- New table: peer_challenges (partial)
|
|
backend:
|
|
- Module: peer-challenges (partial)
|
|
- Services: challenge.service ✅
|
|
- Endpoints: 5 (partial)
|
|
frontend:
|
|
- Feature: challenges (partial)
|
|
- Components: ChallengeCard (partial)
|
|
|
|
- code: EXT-010
|
|
name: Parent Notifications
|
|
phase: 3
|
|
status: partial (35%)
|
|
requirements:
|
|
- RF-PARENT-001 (Parent portal)
|
|
specifications:
|
|
- ET-PARENT-001 (Parent system)
|
|
user_stories: [US-PARENT-001 through US-PARENT-004] (partial)
|
|
implementation:
|
|
database:
|
|
- Schema: auth_management (partial)
|
|
- New tables: parent_accounts ✅, parent_student_links ✅
|
|
backend:
|
|
- Module: parent-portal (partial)
|
|
- Services: parent-account.service ✅
|
|
- Endpoints: 4 (partial)
|
|
frontend:
|
|
- Feature: parent-portal (pending)
|
|
|
|
# ============================================================================
|
|
# COBERTURA DE TRAZABILIDAD
|
|
# ============================================================================
|
|
|
|
traceability_coverage:
|
|
by_phase:
|
|
phase_1:
|
|
requirements: 100%
|
|
specifications: 100%
|
|
user_stories: 100%
|
|
implementation: 100%
|
|
|
|
phase_2:
|
|
technical_tasks: 100%
|
|
implementation: 100%
|
|
|
|
phase_3_complete:
|
|
requirements: 100%
|
|
specifications: 100%
|
|
user_stories: 100%
|
|
implementation: 100%
|
|
|
|
phase_3_partial:
|
|
requirements: 100%
|
|
specifications: 100%
|
|
user_stories: 75%
|
|
implementation: 39%
|
|
|
|
overall: 100%
|
|
|
|
# ============================================================================
|
|
# MAPEO RF → ET → US → CODE
|
|
# ============================================================================
|
|
|
|
example_traces:
|
|
- requirement: RF-GAM-001 (Achievements)
|
|
specification: ET-GAM-001
|
|
user_stories: [US-GAM-003, US-GAM-004, US-GAM-005]
|
|
database: [gamification_system.achievements, gamification_system.user_achievements]
|
|
backend: [gamification/achievement.service.ts]
|
|
frontend: [gamification/AchievementCard.tsx, gamification/AchievementUnlockModal.tsx]
|
|
functions: [check_and_unlock_achievement(), award_achievement_rewards()]
|
|
|
|
- requirement: RF-PM-002 (Assignments)
|
|
specification: ET-PM-002
|
|
user_stories: [US-PM-002a, US-PM-002b, US-PM-002c]
|
|
database: [educational_content.assignments, educational_content.assignment_submissions]
|
|
backend: [teacher-portal/assignment.service.ts]
|
|
frontend: [teacher-dashboard/AssignmentForm.tsx, teacher-dashboard/SubmissionList.tsx]
|
|
functions: [assign_to_classroom()]
|
|
|
|
- requirement: RF-NOTIF-001 (Notifications)
|
|
specification: ET-NOTIF-001
|
|
user_stories: [US-NOTIF-001, US-NOTIF-002, US-NOTIF-003]
|
|
database: [gamilit.notifications, gamilit.notification_preferences]
|
|
backend: [notifications/notification.service.ts, notifications/email.service.ts]
|
|
frontend: [notifications/NotificationCenter.tsx]
|
|
integrations: [SendGrid, FCM]
|
|
|
|
# ============================================================================
|
|
# REFERENCIAS
|
|
# ============================================================================
|
|
|
|
references:
|
|
epic_details:
|
|
- docs/01-fase-alcance-inicial/
|
|
- docs/02-fase-robustecimiento/
|
|
- docs/03-fase-extensiones/
|
|
|
|
inventories:
|
|
- docs/90-transversal/inventarios/DATABASE_INVENTORY.yml
|
|
- docs/90-transversal/inventarios/BACKEND_INVENTORY.yml
|
|
- docs/90-transversal/inventarios/FRONTEND_INVENTORY.yml
|
|
|
|
individual_traceability:
|
|
- Each epic has detailed TRACEABILITY.yml in implementacion/ folder
|
|
- Total: 16 TRACEABILITY.yml files
|
|
|
|
# ============================================================================
|
|
# MÉTRICAS DE COBERTURA
|
|
# ============================================================================
|
|
|
|
coverage_metrics:
|
|
documentation_to_code: 100%
|
|
code_to_tests: 87%
|
|
requirements_to_implementation: 100%
|
|
user_stories_to_code: 100%
|
|
|
|
# ============================================================================
|
|
# NOTAS
|
|
# ============================================================================
|
|
|
|
notes:
|
|
- Matriz consolidada de 16 épicas
|
|
- 100% trazabilidad RF → ET → US → Code
|
|
- 120+ user stories mapeadas
|
|
- 415 objetos de BD inventariados
|
|
- 20 módulos backend catalogados
|
|
- 15 features frontend documentadas
|
|
- 4 épicas parciales con trazabilidad del trabajo completado
|
|
- Cada épica tiene TRACEABILITY.yml detallado individual
|
|
- Esta matriz provee vista global de todo el proyecto
|