Sistema Completo de Gestión de Contenido Educativo
Guía cristalina para entender e implementar TODO el sistema
KENDI es una plataforma educativa interactiva donde los docentes crean contenido educativo dinámico (trivias, juegos, lecciones) organizado por niveles educativos, y los estudiantes consumen ese contenido a través de un sistema de menús y actividades gamificadas.
18 niveles fijos desde Maternal hasta Tercer Curso de Bachiller
Estructura de navegación creada por el docente (ej: Colores → Primarios)
El contenido real: preguntas, juegos, lecciones, videos
La conexión que une todo: Menú + Submenú + Banco
| Colección | Estado | Descripción | Campos Principales |
|---|---|---|---|
| niveles | ✅ EXISTE | 18 niveles educativos fijos | id, nombre, edad_min, edad_max, categoria |
| menus | ✅ EXISTE | Menús creados por docentes | id, nivel_id, nombre, icono, descripcion |
| submenus | ✅ EXISTE | Submenús de cada menú | id, menu_id, nombre, orden |
| bancos_contenido | ❌ FALTA | Contenido educativo (preguntas, juegos, lecciones) | id, nivel_id, tipo, variante, data (JSON), creado_por |
| asignaciones | ❌ FALTA | Vincula menús con bancos | id, nivel_id, menu_id, submenu_id, banco_id, nombre_boton, orden |
data en los bancos es flexible y cambia según el tipo/variante:
"preguntas""imagen_principal", "texto""pares""url_video", "duracion"Ubicación: features/content_banks/
Componentes:
ContentBankRemoteDataSource - API calls a FirebaseContentBankModel - Modelo de datosContentBankRepositoryImpl - ImplementaciónContentBankEntity - Entidad de negocioContentBankRepository - InterfazCreateContentBankUseCaseGetContentBanksByLevelUseCaseUpdateContentBankUseCaseContentBankBloc - Gestión de estadoCreateBankPage - Flujo de creación (nivel → tipo → variante)BankEditorPage - Editor de contenido con flutter_quillBankListPage - Lista de bancos creadosUbicación: features/assignments/
Componentes:
AssignmentBlocCreateAssignmentPage - Formulario para asignar:
AssignmentListPage - Ver asignaciones existentesUbicación: features/student_dashboard/presentation/players/
Componentes (Players):
TriviaPlayer - Renderiza trivias
MemoryGamePlayer - Juego de memoriaDragDropPlayer - Arrastrar y soltarInfographicPlayer - Mostrar infografíasVideoPlayer - Reproducir videosAudioPlayer - Reproducir audiosReadingPlayer - Contenido de lecturaLógica:
tipo y variantedataUbicación: features/student_dashboard/
Implementar:
Ubicación: features/teacher_dashboard/
Funcionalidades:
| Semana | Módulo | Entregables | Prioridad |
|---|---|---|---|
| 1-2 | Bancos de Contenido |
• CRUD completo • Editor con flutter_quill • Subida de imágenes/audio • Formulario por tipo/variante |
CRÍTICA |
| 3 | Asignaciones |
• Formulario de asignación • CRUD de asignaciones • Validaciones |
CRÍTICA |
| 4 | Players (Renderizado) |
• TriviaPlayer • MemoryPlayer • InfographicPlayer • Mínimo 3 tipos funcionando |
CRÍTICA |
| 5 | Student Dashboard |
• Navegación dinámica • Carga de asignaciones • Integración con players |
ALTA |
| 6 | Teacher Dashboard |
• Dashboard principal • Gestión de contenido • Estadísticas básicas |
ALTA |
| 7+ | Extras |
• Más players • Sistema de puntos • Competencias • Analytics |
MEDIA |
flutter_quill: Editor WYSIWYG para texto rico (negrita, cursiva, imágenes)
image_picker: Seleccionar imágenes
file_picker: Archivos (audio, video)
firebase_storage: Subir archivos
video_player: Reproducir videos
audioplayers: Reproducir audios
flip_card: Para Memory Game
confetti: Animaciones de celebración
lottie: Animaciones
ContentBankModel)flutter_quill para editorTriviaPlayer:
MemoryGamePlayerInfographicPlayer
Ahora tienes una visión cristalina del sistema completo.
Conoces cada pieza, cómo se conectan, y el orden exacto de implementación.
💪 Siguiente paso: Empezar con el módulo de Bancos de Contenido
Documento Maestro v1.0 | Creado para guiar la implementación completa del sistema
¡Con este documento, cualquier desarrollador puede entender e implementar KENDI! 🔥