El objetivo de este plan es reemplazar el sistema de almacenamiento actual por uno basado en archivos JSON locales, implementando la persistencia de datos de forma incremental, empezando por los OVCs, seguido por las Rúbricas y Evaluaciones.
-
Preparación del Entorno de Datos:
- Crear el directorio
./data/en la raíz del proyecto si no existe. - Crear el archivo
./data/ovcs.jsoncon un array JSON vacío[]inicialmente.
- Crear el directorio
-
Carga de Datos de OVCs:
- Identificar el código JavaScript responsable de inicializar y gestionar los datos de los OVCs (probablemente en
js/main.jso un archivo similar). - Modificar este código para que, al cargar la aplicación, intente leer el contenido del archivo
./data/ovcs.json. - Si el archivo existe y contiene JSON válido, cargar los datos en una variable global o en un objeto de gestión de datos en memoria (ej. un array de objetos JavaScript).
- Si el archivo no existe o está vacío, inicializar la estructura de datos en memoria como un array vacío.
- Identificar el código JavaScript responsable de inicializar y gestionar los datos de los OVCs (probablemente en
-
Guardado de Datos de OVCs:
- Implementar una función JavaScript que tome el array de OVCs en memoria, lo serialice a una cadena JSON y lo escriba en el archivo
./data/ovcs.jsonutilizando la herramientawrite_to_file. - Esta función debe ser llamada cada vez que se realice una operación que modifique el array de OVCs en memoria (crear, editar, eliminar).
- Implementar una función JavaScript que tome el array de OVCs en memoria, lo serialice a una cadena JSON y lo escriba en el archivo
-
Integración con la Interfaz de Usuario (UI) de OVCs:
- Adaptar las funciones JavaScript que manejan la visualización de la lista de OVCs (
listar-sectionenpages/index.html) para que lean los datos desde la estructura de datos de OVCs cargada en memoria. - Modificar las funciones que manejan el formulario de creación y edición de OVCs (
crear-sectionenpages/index.html) para que:- Al cargar para edición, pueblen el formulario con los datos del OVC correspondiente desde la memoria.
- Al guardar (crear o actualizar), modifiquen la estructura de datos de OVCs en memoria y luego llamen a la función de guardado en
./data/ovcs.json.
- Adaptar la función de eliminación de OVCs para que elimine el OVC de la estructura en memoria y luego llame a la función de guardado.
- Adaptar las funciones JavaScript que manejan la visualización de la lista de OVCs (
-
Generación de IDs Únicos para OVCs:
- Implementar una lógica simple para generar IDs únicos para los nuevos OVCs creados (ej. usando
Date.now(), una combinación de fecha/hora y un contador, o una librería simple para UUIDs si se considera necesario).
- Implementar una lógica simple para generar IDs únicos para los nuevos OVCs creados (ej. usando
-
Verificación de la Persistencia de OVCs:
- Ejecutar la aplicación.
- Crear varios OVCs utilizando el formulario.
- Recargar la aplicación (cerrar y volver a abrir).
- Verificar que los OVCs creados previamente se cargan y se muestran correctamente en la lista.
- Editar y eliminar algunos OVCs.
- Recargar la aplicación nuevamente y verificar que los cambios (ediciones y eliminaciones) persisten.
-
Preparación del Archivo JSON de Rúbricas:
- Crear el archivo
./data/rubricas.jsoncon un array JSON vacío[]inicialmente.
- Crear el archivo
-
Carga y Guardado de Datos de Rúbricas:
- Implementar la carga de datos desde
./data/rubricas.jsonal iniciar la aplicación, similar al paso 2 de la Fase 1. - Implementar una función de guardado para serializar y escribir el array de Rúbricas en memoria a
./data/rubricas.json, similar al paso 3 de la Fase 1.
- Implementar la carga de datos desde
-
Integración con la UI de Rúbricas:
- Adaptar las funciones JavaScript que manejan el diseño de rúbricas (probablemente en
pages/disenar_rubrica.htmly su JS asociado) para que utilicen los datos de rúbricas cargados en memoria y llamen a la función de guardado después de crear, editar o eliminar rúbricas. - Implementar la generación de IDs únicos para las nuevas Rúbricas.
- Adaptar las funciones JavaScript que manejan el diseño de rúbricas (probablemente en
-
Verificación de la Persistencia de Rúbricas:
- Ejecutar la aplicación.
- Crear, editar y eliminar Rúbricas utilizando la interfaz.
- Recargar la aplicación y verificar que los cambios persisten.
-
Preparación del Archivo JSON de Evaluaciones:
- Crear el archivo
./data/evaluaciones.jsoncon un array JSON vacío[]inicialmente.
- Crear el archivo
-
Carga y Guardado de Datos de Evaluaciones:
- Implementar la carga de datos desde
./data/evaluaciones.jsonal iniciar la aplicación. - Implementar una función de guardado para serializar y escribir el array de Evaluaciones en memoria a
./data/evaluaciones.json.
- Implementar la carga de datos desde
-
Integración con la UI de Evaluaciones:
- Adaptar las funciones JavaScript que manejan la evaluación de OVCs (probablemente en
pages/evaluar_ovc.htmly su JS asociado) para que:- Carguen las rúbricas disponibles desde la estructura de datos de Rúbricas en memoria.
- Al guardar una evaluación, creen un nuevo objeto Evaluación con los IDs correctos (
ovc_id,rubrica_id,evaluador_id), la fecha, los resultados, el porcentaje y el feedback, lo añadan a la estructura de datos de Evaluaciones en memoria y llamen a la función de guardado.
- Implementar la generación de IDs únicos para las nuevas Evaluaciones.
- Adaptar las funciones JavaScript que manejan la evaluación de OVCs (probablemente en
-
Integración con la Visualización de Promedios:
- Adaptar las funciones JavaScript que manejan la visualización de promedios (probablemente en
pages/ver_promedios.htmly su JS asociado) para que calculen los promedios a partir de los datos de Evaluaciones cargados en memoria, relacionándolos con los OVCs y Rúbricas según los IDs.
- Adaptar las funciones JavaScript que manejan la visualización de promedios (probablemente en
-
Verificación de la Persistencia de Evaluaciones y Promedios:
- Ejecutar la aplicación.
- Realizar varias evaluaciones para diferentes OVCs utilizando distintas rúbricas, incluyendo feedback y porcentajes.
- Recargar la aplicación y verificar que las evaluaciones persisten.
- Verificar que la sección de promedios muestra los cálculos correctos basados en los datos persistidos.
Fase 4: Consideración Inicial de otras Entidades (Usuarios, Cursos, Foros, Versiones, Colaboradores)
-
Preparación de Archivos JSON:
- Crear los archivos
./data/usuarios.json,./data/cursos.json, y./data/foros.jsoncon arrays JSON vacíos[].
- Crear los archivos
-
Carga Inicial:
- Incluir la carga de estos archivos JSON vacíos al inicio de la aplicación (Paso 2 de la Fase 1).
-
Estructuras en Memoria:
- Mantener estructuras de datos en memoria (arrays vacíos por ahora) para Usuarios, Cursos y Foros.
-
Relaciones en OVCs:
- Asegurar que la estructura de datos de OVCs en memoria pueda manejar los campos
asignaturas_ids,historial_versiones, ycolaboradoressegún lo definido enestructura_datos.md. La lógica para manipular estas sub-estructuras se implementará en esta fase para OVCs, aunque la lógica completa de las entidades relacionadas (crear usuarios, gestionar versiones completas, etc.) se pospondrá.
- Asegurar que la estructura de datos de OVCs en memoria pueda manejar los campos
- La implementación del almacenamiento y la lógica para los datos de Kanban (
./data/kanban.json) se pospondrá para una fase posterior.