Este microservicio se encarga de generar gráficas basadas en los datos de otros microservicios de una aplicación para la gestión académica de una universidad. Los gráficos incluyen, entre otros, análisis de rendimiento académico, necesidades especiales de educación, y estadísticas relacionadas con los cursos. Estos gráficos son orientados a cada uno de los posibles usuarios que puede tener nuestra aplicación (en este caso admin/director, profesores y estudiantes).
Antes de ejecutar el microservicio, asegúrate de cumplir con los siguientes requisitos:
-
Python 3.8+
-
Flask: Framework para el desarrollo de aplicaciones web en Python.
-
Otros microservicios (usuarios, cursos, etc.) en funcionamiento.
El proyecto requiere ciertas bibliotecas de Python que deben ser instaladas. Puedes hacerlo mediante un archivo requirements.txt que contiene todas las dependencias necesarias.
Archivo requirements.txt (En caso de querer añadirlo):
flask
requests
plotly
pandas
Flask_cors
Para instalar las dependencias, ejecuta:
python3 -m pip install flask requests pandas plotly Flask_cors --no-warn-script-locationLa estructura de carpetas y archivos del microservicio es la siguiente:
graficas/
├── src/
│ ├── app.py # Archivo principal para ejecutar la aplicación
│ ├── controllers/ # Contiene la lógica de los endpoints
│ │ ├── estudianteController.py
│ │ ├── profesorController.py
│ │ └── administradorController.py
│ ├── models/ # Contiene la lógica para acceder a los datos
│ │ ├── estudiantesModel.py
│ │ ├── cursosModel.py
│ │ └── profesoresModel.py
│ ├── services/ # Contiene la lógica para generar los gráficos
│ ├── graficoService.py
└── README.md # Documentación del proyecto
- Configurar endpoints para generación de las graficas:
-
Estas URLs son los endpoints donde están alojados los otros microservicios.
Endpoints necesarios para el desarrollo de las graficas (Cambiar URLs según sea necesario)
En profesoresModel.py
- Para la función
obtener_correo_profesor: http://localhost:3005/correoprof/{usuario}
En estudiantesModel.py
- Para la función
obtener_correo_estudiante: http://localhost:3005/CorreoEstudiante/{usuario} - Para la función
obtener_informacion_estudiante: http://localhost:3005/estudiantes
En cursosModel.py
- Para la función
obtener_rendimiento_estudiantes: http://localhost:3007/cursos/rendimiento/{correoProf} - Para la función
obtener_notas_estudiante: http://localhost:3007/cursos/notas/{correoEstudiante} - Para la función
obtener_notas_estudiantes: http://localhost:3007/cursos
- Para la función
-
- Instalación de dependencias:
- Ejecuta
pip install flask requests pandas plotly Flask_corspara instalar las dependencias.
- Ejecuta
Para ejecutar el microservicio, sigue estos pasos:
-
Dirígete a la carpeta
graficas/y ejecuta el siguiente comando:python src/app.py
-
Accede a los endpoints a través de
http://localhost:3008/<ruta-endpoint>.
- Gráfica del promedio por estudiante:
- Ruta:
http://localhost:3008/estudiante/<usuario>/grafico-promedio - Método:
GET - Descripción: Genera un gráfico del promedio acumulado de un estudiante.
- Ruta:
- Gráfica de aprobados y reprobados por materia (para profesores):
- Ruta:
http://localhost:3008/profesor/<usuario>/grafico-aprobados-reprobados - Método:
GET - Descripción: Muestra una gráfica de barras que representa la cantidad de estudiantes aprobados y reprobados en cada materia.
- Ruta:
- Gráfica de estado civil vs promedio de los estudiantes(para administrador):
- Ruta:
http://localhost:3008/admin/grafico-estadoCivil - Método:
GET - Descripción: Muestra una grafica de violines de estado civil vs promedio acumulado de los estudiantes.
- Ruta:
- Gráfica de préstamo vs promedio de los estudiantes(para administrador):
- Ruta:
http://localhost:3008/admin/grafico-prestamo - Método:
GET - Descripción: Muestra una grafica de violines de préstamo vs promedio acumulado de los estudiantes.
- Ruta:
- Gráfica de beca vs promedio de los estudiantes(para administrador):
- Ruta:
http://localhost:3008/admin/grafico-beca - Método:
GET - Descripción: Muestra una grafica de violines de beca vs promedio acumulado de los estudiantes.
- Ruta:
- Gráfica de desplazado vs promedio de los estudiantes(para administrador):
- Ruta:
http://localhost:3008/admin/grafico-desplazado - Método:
GET - Descripción: Muestra una grafica de violines de desplazado vs promedio acumulado de los estudiantes.
- Ruta:
- Gráfica de necesidades especiales de educación vs promedio de los estudiantes(para administrador):
- Ruta:
http://localhost:3008/admin/grafico-necesidades - Método:
GET - Descripción: Muestra una gráfica de violines de necesidades especiales de educación vs promedio acumulado de los estudiantes.
- Ruta:
curl <http://localhost:3008/estudiante/john_doe/grafico-promedio>
- Problemas con la instalación de dependencias
- Si recibes un error de instalación, verifica que estás usando la versión correcta de Python y que
pipestá actualizado.
- Si recibes un error de instalación, verifica que estás usando la versión correcta de Python y que
- Integración con otros microservicios: Asegúrate de que los microservicios de usuarios, cursos y asignaturas estén corriendo correctamente.