Skip to content

oldDolly

Fernando Danko edited this page Sep 2, 2020 · 1 revision

Dolly Legacy - Decisiones de diseño, problemitas de FIUBA y cosas así

Materias repetidas

Hay muchas materias que son exactamente la misma, mismos docentes, mismo horario, mismo todo, pero poseen códigos y hasta nombres distintos. Para poder agruparlas, hay una array de reemplazos en el archivo data/equivalencias.json listadas de la forma [ [7533, 7543, 9560],[7541, 9515], ... ]. Cada elemento de ese array es un grupo de materias equivalentes.

Reemplazos

La funcion Equivalency.getEquivalent() @ js/equivalence.js se encarga de resolver dicho dilema. Si la materia no posee equivalencias listadas, devuelve el mismo valor. En caso de pertenecer a algún grupo de equivalencias, devuelve el elemento 0.

** Es importante no alterar el orden del json de equivalencias **

Uso en el programa

Al completar una encuesta, el desplegable muestra todas las materias con sus equivalentes por separado (ya que un usuario no necesita saber que internamente el programa hace esta crotada o que su materia tiene otros códigos). Sin embargo, al enviar la encuesta, ésta no se almacena con el nombre original de la materia elegida. Por ejemplo, al completar una encuesta de la materia 8601 el código se lo pasa por getEquivalent y se registrará internamente como 6601. Todo esto ocurre a espaldas del usuario.

Al ver los resultados de una materia, el desplegable muestra todas las materias por la misma razón que arriba, pero se el parámetro recibido se pasa por getEquivalent previamente. Es decir: al entrar a resultados?mat=8601 el programa busca los resultados de la materia 6601.

Agregando equivalencias nuevas

Si un día nos enteramos que la materia X y la materia Y son efectivamente las mismas, se pueden mergear en la db con el siguiente procedimiento:

  1. Hacer una copia de seguridad antes de tocar cosas en el server
  2. Agregar el array [X, Y] al archivo data/equivalencias.json
  3. Abrir la página update_equivalencies.html y ejecutar en consola lo que dice.
  4. Copiar el texto mostrado a un archivo txt y subirlo al server. Ojo! no el HTML, sino lo que muestra el navegador. En lugar de hacer la operación a mano puede renombrar gente.txt y enviar $('body').text() al server mediante la funcionalidad usual para que lo apendeé al csv (vaciado anteriormente). Recuerde no renombrar gente.txt antes de llamar a la función en el navegador (o pase como parámetro el archivo renombrado).
  5. Correr el análisis de datos con bash analitics/analisis.sh [sic]. Si todo fue bien puede verlo en el log.
  6. Verificar que todo funcione, recuerde actualizar la caché.