ifgarces / TomaRamosApp_rails

Simulador de toma de ramos Uandes - Web
https://tomaramos.app
MIT License
0 stars 0 forks source link

Panel de administración básico para actualizar catálogo #39

Open ifgarces opened 1 year ago

ifgarces commented 1 year ago

Actualmente, el catálogo se actualiza mediante:

  1. Descargar el Excel actualizado provisto por la Facultad (manualmente).
  2. Convertirlo a CSV y eliminar files inútiles previas a las de metadata (head rows).
  3. Actualizar el catálogo en la base de datos mediante la tarea data_importer de Rake (por consola), con el CSV dentro de TomaRamosWebApp/db/catalog según corresponda (más info). El CSV se incluye por tanto en el repo mismo.
  4. Si hay problemas con la tarea, es probable que sea por errores humanos en valores de dicho Excel/CSV mismo de la Facultad. En cuyo caso, se repite el paso corrige a mano (no queda de otra) y se repite el paso 3 hasta que no haya problemas.
  5. Subir el CSV (actualizado) del repositorio en un commit.
  6. Desplegar en el servidor (pull y build con docker-compose).

Se desea agilizar esta tarea, implementar un panel de administración en la aplicación web misma, de forma que, directamente en el servidor, se pueda autenticar como un usuario administrador, se suba el Excel, y se ejecute la tarea data_importer, pudiendo ver el output en tiempo real. Investigar sobre alguna gema que permite hacer esto.

ifgarces commented 1 year ago

Esto es una tarea compleja que ahora mismo no será abordada. Esto porque implica:

I. Dificultades en el debugging, ya que, en muchos casos, como se menciona en (4), hay errores humanos del CSV mismo de la Facultad y esto debe solucionarse manualmente por el desarrollador. II. Desarrollo considerable de sincronización de tareas de rake: no encontré una gema existente que sirva mucho para esto, y se tendría que desarrollar todo un formato para ver el output de la tarea data_importer (backend) desde la app web (frontend).

Si bien la forma actual no es demasiado cómoda, es más práctica teniendo en cuenta el tamaño del proyecto.