Descripción • Uso • Contribuir • Creditos • Soporte • Licencia
El proyecto va a consistir en una SPA que se podría generalizar en 3 cosas principales: la interfaz web, la API y en generador de plantillas (de la mano con la api)
-
Para la interfaz web no hay nada decidido de cómo se va a realizar, por lo que es algo que se puede discutir. Quizás ni siquiera sea necesario un framework, pero esta como opción usar Vite-react con tailwind css para los estilos. De forma general, el front es un formulario que pregunta al usuario por alguna plantilla pre definida o personalizada y luego permite editar cosas como la portada, indices, columnas, letra, márgenes, si incluye tutoríal o no, etc.
-
Para la API usaremos python con la librería FastApi para manejar las solicitudes y Gunicorn como servidor.
-
Cuando se realiza una solicitud de compilación, se crea una tarea en una cola que construye una plantilla de LaTeX con ayuda de jinja en base a un .json recibido desde el front, para luego ser comprimido en un .zip y enviado nuevamente al usuario.
En un futuro sería bueno ver cómo podemos pre generar algunos resultados en base a plantillas pre hechas y así quitarle algo de carga del servidor.
- Crear la API con Fast Api
- Hacer un generador de .tex con jinja
- Convertir los templates de OSUC en una plantilla general.
- Filtrar lista de archivos incluidos en el .zip segun la data
- Dar soporte a la funcion
pandoc_convert()
realizada con pandoc - Ver como poder recibir png/jpg/pdf (impedir svg) y configurarlo para agregarlo en el resultado final
- Agregar soporte para otros estilos de citación
- Configurar API
- Mejorar el tutorial de cómo usar LaTeX que se incluye por defecto
- Estudiar como comprimir el zip y enviar los archivos al front
- Manejó de errores y documentación de la API
- (opcional) crear la vista con Figma
- Crear la vista con algún framework de preferencia (consultarlo)
- Ver cómo optimizar la generación de archivos, buscando como pre generar algunas plantillas por defecto
- Pasar a Docker el proyecto
- Configurar un devcontainer
# Solo 1 vez
python3 -m venv env
source env/bin/activate
# Solo 1 vez (o cuando se agregan dependencias)
python -m pip install --upgrade pip
pip install -r requirements.txt
# Para actualizar los requirements.txt
pip freeze > requirements.txt
Utilice las issues para informar cualquier bug o solicitud.
El workflow es PR a development -> Revisar preview y checks -> Asignar reviewers -> Aprobación -> Merge a development
La información detallada sobre cómo contribuir se puede encontrar en contributing.md.
Comuníquese con nosotros a travez de OSUC.dev