Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/carlosgomezc7/plataforma_aprendizaje/llms.txt

Use this file to discover all available pages before exploring further.

db_local.json es el archivo de persistencia de datos de la Plataforma Educativa Personalizada. Vive en la raíz del proyecto, junto a index.py, y es gestionado exclusivamente por la clase MotorBaseDatos. Si el archivo no existe cuando se inicia la aplicación, MotorBaseDatos.cargar_datos() lo crea automáticamente con los cinco cursos predeterminados y una lista de progresos vacía.

Estructura de alto nivel

El archivo contiene un único objeto JSON con dos claves de nivel superior:
{
    "cursos": [ ... ],
    "progresos": [ ... ]
}
  • cursos — Array de objetos que describen los cursos disponibles en la plataforma.
  • progresos — Array de objetos que registran cada módulo completado por un estudiante. Comienza vacío y crece cada vez que se llama a guardar_progreso().

Objeto curso

Cada elemento del array cursos representa un curso de la plataforma.
id
integer
required
Identificador numérico único del curso. Los cursos predeterminados usan el rango 101–105. Se utiliza como clave de búsqueda en busqueda_binaria_curso().
nombre
string
required
Nombre legible del curso en español. Se muestra en la interfaz gráfica dentro de la pestaña Cursos (Orden/Búsqueda).
relevancia
integer
required
Puntuación de relevancia del curso en una escala de 0 a 100. Es la clave de ordenamiento por defecto en quicksort_cursos(): los cursos con mayor relevancia se sugieren primero.
dificultad
integer
required
Calificación de dificultad del curso en una escala de 1 a 10. Se muestra en el cuadro de diálogo cuando se localiza un curso mediante Búsqueda Binaria.

Objeto progreso

Cada elemento del array progresos representa un módulo que un estudiante ha completado y ha sido sincronizado desde la ColaProgreso a la base de datos.
estudiante
string
required
Identificador de cadena del estudiante (por ejemplo "Juan_Perez"). Generado por la UI de la pestaña Progreso (Cola/Lineal).
modulo
string
required
Nombre del módulo completado (por ejemplo "Módulo 4"). Corresponde al valor encolado antes de llamar a guardar_progreso().

Cursos predeterminados

Cuando db_local.json no existe, MotorBaseDatos inicializa cursos con los siguientes cinco registros:
[
    {"id": 101, "nombre": "Matemáticas Básicas",    "relevancia": 85, "dificultad": 3},
    {"id": 102, "nombre": "Programación en Python", "relevancia": 95, "dificultad": 5},
    {"id": 103, "nombre": "Historia del Arte",      "relevancia": 60, "dificultad": 2},
    {"id": 104, "nombre": "Física Cuántica",        "relevancia": 90, "dificultad": 9},
    {"id": 105, "nombre": "Estructuras de Datos",   "relevancia": 99, "dificultad": 8}
]

Agregar un curso manualmente

Puedes agregar cursos directamente a través de la clase MotorBaseDatos sin necesidad de editar el archivo JSON a mano:
db = MotorBaseDatos()
db.data["cursos"].append({
    "id": 106,
    "nombre": "Inteligencia Artificial",
    "relevancia": 97,
    "dificultad": 8
})
db.guardar_datos()
guardar_datos() serializa db.data completo de vuelta a db_local.json, preservando los registros de progresos existentes.
Editar db_local.json manualmente mientras la aplicación está en ejecución puede provocar la pérdida de tus cambios. La próxima vez que la app llame a guardar_datos() (por ejemplo, al sincronizar un progreso desde la cola), sobreescribirá el archivo con el estado en memoria, descartando cualquier edición externa que no haya sido cargada previamente.
El archivo se escribe con ensure_ascii=False, por lo que los caracteres en español como tildes (á, é, í, ó, ú) y la letra ñ se almacenan tal cual en UTF-8, en lugar de ser escapados como secuencias Unicode del tipo \u00f3. Esto hace que el archivo sea legible directamente con cualquier editor de texto.

Build docs developers (and LLMs) love