workspace/projects/gamilit/orchestration/inventarios/DEPENDENCY_GRAPH.yml
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- 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>
2025-12-08 10:44:23 -06:00

368 lines
10 KiB
YAML

# DEPENDENCY GRAPH - GAMILIT
# Grafo de dependencias entre modulos, schemas y componentes
# Version: 2.0.0
# Fecha: 2025-12-05 (Post-Sprint P1)
# Fuente: Requirements-Analyst
version: "2.0.0"
proyecto: "GAMILIT - Sistema de Gamificacion Educativa"
fecha_actualizacion: "2025-12-05"
descripcion: "Grafo de dependencias entre capas (Database -> Backend -> Frontend)"
estado_proyecto: "75% completado"
# ========================================
# SCHEMAS DE DATABASE (Base de la pirámide)
# ========================================
database_schemas:
auth_management:
descripcion: "Gestión de autenticación y perfiles de usuario"
dependencias: []
usado_por:
- backend: ["auth", "users", "profiles"]
- frontend: ["AuthContext", "useAuth"]
content_management:
descripcion: "Gestión de contenido pedagógico"
dependencias: ["auth_management"]
usado_por:
- backend: ["content", "exercises", "lessons"]
- frontend: ["ContentPages", "ExercisePage"]
gamification_system:
descripcion: "Sistema de gamificación (puntos, logros, recompensas)"
dependencias: ["auth_management", "content_management"]
usado_por:
- backend: ["gamification", "rewards", "achievements"]
- frontend: ["GamifiedHeader", "RewardsPage", "LeaderboardPage"]
classroom_system:
descripcion: "Gestión de aulas y grupos"
dependencias: ["auth_management"]
usado_por:
- backend: ["classrooms", "assignments"]
- frontend: ["ClassroomPages", "TeacherPortal"]
analytics_system:
descripcion: "Métricas y análisis de uso"
dependencias: ["auth_management", "content_management", "gamification_system"]
usado_por:
- backend: ["analytics"]
- frontend: ["AnalyticsPage", "DashboardPage"]
notification_system:
descripcion: "Sistema de notificaciones"
dependencias: ["auth_management"]
usado_por:
- backend: ["notifications"]
- frontend: ["NotificationsComponent"]
system_config:
descripcion: "Configuración del sistema"
dependencias: []
usado_por:
- backend: ["config"]
- frontend: ["SettingsPage"]
# ========================================
# MÓDULOS DE BACKEND (Capa intermedia)
# ========================================
backend_modules:
auth:
descripcion: "Autenticación y autorización"
dependencias_db: ["auth_management"]
dependencias_backend: []
expone_endpoints:
- "POST /auth/login"
- "POST /auth/register"
- "POST /auth/logout"
- "GET /auth/me"
usado_por_frontend:
- "AuthContext"
- "useAuth hook"
- "LoginPage"
- "RegisterPage"
users:
descripcion: "Gestión de usuarios"
dependencias_db: ["auth_management"]
dependencias_backend: ["auth"]
expone_endpoints:
- "GET /users"
- "GET /users/:id"
- "PATCH /users/:id"
- "DELETE /users/:id"
usado_por_frontend:
- "UsersPage (admin)"
- "ProfilePage"
profiles:
descripcion: "Perfiles de usuario"
dependencias_db: ["auth_management"]
dependencias_backend: ["auth", "users"]
expone_endpoints:
- "GET /profiles/:userId"
- "PATCH /profiles/:userId"
usado_por_frontend:
- "ProfilePage"
- "EnhancedProfilePage"
content:
descripcion: "Gestión de contenido"
dependencias_db: ["content_management", "auth_management"]
dependencias_backend: ["auth"]
expone_endpoints:
- "GET /content"
- "POST /content"
- "PATCH /content/:id"
- "DELETE /content/:id"
usado_por_frontend:
- "ContentManagementPage"
- "TeacherPortal"
exercises:
descripcion: "Gestión de ejercicios"
dependencias_db: ["content_management"]
dependencias_backend: ["auth", "content"]
expone_endpoints:
- "GET /exercises"
- "GET /exercises/:id"
- "POST /exercises/:id/submit" # ⚠️ BLOQUEANTE
usado_por_frontend:
- "ExercisePage"
- "ExercisesList"
gamification:
descripcion: "Sistema de gamificación"
dependencias_db: ["gamification_system", "auth_management"]
dependencias_backend: ["auth", "exercises"]
expone_endpoints:
- "GET /gamification/points"
- "GET /gamification/achievements"
- "POST /gamification/claim-reward"
usado_por_frontend:
- "GamifiedHeader"
- "RewardsPage"
- "AchievementsPage"
classrooms:
descripcion: "Gestión de aulas"
dependencias_db: ["classroom_system", "auth_management"]
dependencias_backend: ["auth", "users"]
expone_endpoints:
- "GET /classrooms"
- "POST /classrooms"
- "GET /classrooms/:id/students"
usado_por_frontend:
- "ClassroomsPage"
- "TeacherPortal"
assignments:
descripcion: "Gestión de tareas"
dependencias_db: ["classroom_system", "content_management"]
dependencias_backend: ["auth", "classrooms", "exercises"]
expone_endpoints:
- "GET /assignments"
- "POST /assignments"
- "POST /assignments/:id/submit"
usado_por_frontend:
- "AssignmentsPage"
- "StudentDashboard"
analytics:
descripcion: "Métricas y análisis"
dependencias_db: ["analytics_system"]
dependencias_backend: ["auth", "exercises", "gamification"]
expone_endpoints:
- "GET /analytics/dashboard"
- "GET /analytics/user/:userId"
usado_por_frontend:
- "AnalyticsPage"
- "DashboardPage"
notifications:
descripcion: "Sistema de notificaciones"
dependencias_db: ["notification_system"]
dependencias_backend: ["auth"]
expone_endpoints:
- "GET /notifications"
- "PATCH /notifications/:id/read"
usado_por_frontend:
- "NotificationsComponent"
- "Header"
# ========================================
# COMPONENTES DE FRONTEND (Capa superior)
# ========================================
frontend_components:
AuthContext:
descripcion: "Contexto de autenticación"
dependencias_backend: ["auth"]
dependencias_frontend: []
usado_por:
- "App.tsx"
- "Todas las páginas protegidas"
GamifiedHeader:
descripcion: "Header con información de gamificación"
dependencias_backend: ["gamification", "auth"]
dependencias_frontend: ["AuthContext"]
usado_por:
- "StudentLayout"
- "TeacherLayout"
StudentDashboard:
descripcion: "Dashboard del estudiante"
dependencias_backend: ["auth", "gamification", "assignments", "analytics"]
dependencias_frontend: ["AuthContext", "GamifiedHeader"]
usado_por:
- "StudentApp"
TeacherPortal:
descripcion: "Portal del maestro"
dependencias_backend: ["auth", "classrooms", "assignments", "content"]
dependencias_frontend: ["AuthContext"]
usado_por:
- "TeacherApp"
AdminPortal:
descripcion: "Portal de administración"
dependencias_backend: ["auth", "users", "config"]
dependencias_frontend: ["AuthContext"]
usado_por:
- "AdminApp"
# ========================================
# SPRINT P2 - DEPENDENCIAS
# ========================================
sprint_p2_dependencies:
# Sprint P2-A
p2_a_tareas:
- id: "P2-DTO-001"
descripcion: "Tipos canonicos frontend"
dependencias: []
bloquea: ["P2-DTO-002"]
- id: "P2-DTO-002"
descripcion: "Transformacion snake/camel"
dependencias: ["P2-DTO-001"]
bloquea: []
- id: "P2-TEACHER-001"
descripcion: "Eliminar mock-teacher-id"
dependencias: []
bloquea: ["P2-TEACHER-002", "P2-TEACHER-003"]
- id: "P2-ADMIN-001"
descripcion: "AdminRolesPage"
dependencias: []
bloquea: []
- id: "P2-ADMIN-002"
descripcion: "AdminInstitutionsPage"
dependencias: []
bloquea: []
# Sprint P2-B
p2_b_tareas:
- id: "P2-TEACHER-002"
descripcion: "TeacherCommunicationPage"
dependencias: ["P2-TEACHER-001"]
bloquea: []
- id: "P2-TEACHER-003"
descripcion: "TeacherContentPage"
dependencias: ["P2-TEACHER-001"]
bloquea: []
- id: "P2-TEACHER-004"
descripcion: "TeacherResourcesPage"
dependencias: ["P2-TEACHER-001"]
bloquea: []
- id: "P2-ADMIN-003"
descripcion: "AdminAdvancedPage (Feature Flags)"
dependencias: ["P2-ADMIN-001", "P2-ADMIN-002"]
bloquea: ["P2-QUALITY"]
# Sprint P2-C
p2_c_tareas:
- id: "P2-TEST-001"
descripcion: "Backend test coverage 50%"
dependencias: []
bloquea: []
- id: "P2-TEST-002"
descripcion: "E2E tests"
dependencias: ["P2-TEACHER-004", "P2-ADMIN-003"]
bloquea: []
- id: "P2-GAM-002"
descripcion: "Misiones grupales gremios"
dependencias: []
bloquea: []
# ========================================
# BLOQUEADORES Y DEPENDENCIAS CRITICAS
# ========================================
bloqueadores_conocidos:
- id: "BLOCK-001"
descripcion: "Endpoint POST /exercises/:id/submit"
afecta:
- backend: ["exercises"]
- frontend: ["ExercisePage"]
prioridad: "P0"
estado: "RESUELTO (Sprint P1)"
- id: "BLOCK-002"
descripcion: "Modulo Admin Portal incompleto"
afecta:
- backend: ["admin"]
- frontend: ["AdminPortal"]
prioridad: "P1"
estado: "EN PROGRESO (80%)"
- id: "BLOCK-003"
descripcion: "Mock-teacher-id en 10 paginas"
afecta:
- frontend: ["TeacherPortal"]
prioridad: "P0"
estado: "PENDIENTE P2-A"
- id: "BLOCK-004"
descripcion: "Test coverage 18% vs 50% objetivo"
afecta:
- backend: ["*"]
- frontend: ["*"]
prioridad: "P2"
estado: "PENDIENTE P2-C"
# ========================================
# NOTAS
# ========================================
notas:
- "Actualizado post-Sprint P1 (2025-12-05)"
- "Database: 95% completitud"
- "Backend: 88% completitud"
- "Frontend: 75% completitud"
- "Test Coverage: 18% (objetivo 50%)"
- "Ver ANALISIS-ALCANCES-P2-POST-SPRINT-P1-2025-12-05.md para detalles"
# ========================================
# HISTORIAL
# ========================================
historial:
- fecha: "2025-11-23"
version: "1.0.0"
cambios: "Creacion inicial"
- fecha: "2025-12-05"
version: "2.0.0"
cambios: "Actualizacion post-Sprint P1, agregado Sprint P2 dependencies"