-
-
Gestión de Células: Funcionalidad clave donde cada profesor puede configurar y actualizar su propia lista de alumnos.
-
Vista del Alumno: Un portal simple y centralizado donde el estudiante puede ver todos los cursos en los que está inscrito.
-
Dashboard del Coordinador: Vista global con gráficos automáticos de métricas y filtro para supervisar todas las células.
-
Dashboard del Profesor: Vista filtrada de su célula, con gráfico de progreso, estado de tareas y enlaces de contacto directo.
-
Página de bienvenida y login. La autenticación se realiza de forma segura a través de Google OAuth 2.0 para una experiencia fluida.
Inspiración
La inspiración nació directamente del desafío de Semillero Digital. Al leer sobre sus dificultades para gestionar el progreso de los alumnos y la falta de métricas claras en Google Classroom, vi la oportunidad de construir una herramienta que no solo resolviera un problema técnico, sino que también apoyara una misión social increíble: formar a jóvenes para un futuro mejor. El objetivo era claro: crear una solución que les ahorrara tiempo y les permitiera enfocarse en lo más importante, sus estudiantes.
Qué hace
Es un dashboard de gestión que actúa como una capa de inteligencia sobre Google Classroom. La aplicación se conecta a la API de Google para proporcionar vistas y datos que Classroom no ofrece, implementando un sistema de roles con funcionalidades específicas para cada uno:
Coordinador: Obtiene una vista global con gráficos automáticos sobre la carga de trabajo por curso y la distribución de alumnos por "célula" (grupo de mentoría), además de un filtro de búsqueda en tiempo real.
Profesor: Visualiza un panel enfocado únicamente en su célula, con un gráfico de progreso, el estado de las tareas de sus alumnos, y la capacidad de gestionar su lista de estudiantes y contactarlos vía Gmail con un solo clic.
Alumno: Accede a un portal simple y centralizado para ver todos los cursos en los que está inscrito.
Cómo lo construimos
El proyecto se construyó usando un stack tecnológico moderno y eficiente, ideal para un desarrollo rápido y robusto:
Backend: Python con el micro-framework Flask para la lógica del servidor y las rutas. Se utilizó SQLAlchemy como ORM para interactuar con la base de datos.
Base de Datos: PostgreSQL para almacenar la relación entre profesores y alumnos (las "células"), añadiendo la capa de datos que falta en Classroom.
Frontend: HTML5, CSS3 y JavaScript puro. Se usó la librería Chart.js para generar los reportes gráficos dinámicos.
Autenticación y API: Se implementó el flujo completo de Google OAuth 2.0 para un inicio de sesión seguro y se consumieron múltiples endpoints de la API de Google Classroom para obtener los datos de cursos, alumnos, tareas y entregas.
Desafíos que enfrentamos
El mayor desafío técnico fue, sin duda, la autenticación con la API de Google (OAuth 2.0). Manejar correctamente los permisos (scopes), los tokens de acceso y, especialmente, los refresh_token para mantener la sesión activa, requirió una depuración exhaustiva y la implementación de un flujo de re-autenticación robusto. Otro reto significativo fue la configuración inicial de la base de datos PostgreSQL en un entorno de desarrollo en Windows, superando problemas de conexión, contraseñas y codificación de caracteres.
Logros de los que estamos orgullosos
Estoy especialmente orgulloso de haber construido, como desarrollador único en menos de 24 horas, un MVP completo y multifuncional que no solo cumple con todos los requisitos mínimos, sino que implementa varias de las funcionalidades opcionales más complejas:
Un sistema de 3 roles funcionales.
Reportes gráficos tanto para el coordinador como para el profesor.
La funcionalidad "secreta" y más valorada: permitir que los profesores gestionen sus propias células.
Un diseño de interfaz pulido y una experiencia de usuario fluida.
Qué aprendimos
Este hackatón fue una experiencia de aprendizaje intensiva. Profundicé mis conocimientos en Flask, la integración de APIs complejas, y el manejo de errores de autenticación en un entorno real. Aprendí la importancia crítica de un flujo de trabajo profesional con Git, usando ramas para experimentar de forma segura. Sobre todo, reforcé la habilidad de transformar un problema de negocio real en una solución técnica funcional y bien presentada bajo una gran presión de tiempo.
Qué sigue para el proyecto
El proyecto actual es una base sólida y funcional. La visión a futuro es potenciar aún más la plataforma con las siguientes mejoras:
Notificaciones Automáticas Multicanal: Implementar un sistema para enviar notificaciones vía WhatsApp o Telegram a los profesores sobre alumnos con tareas atrasadas.
Módulo de Asistencia: Integrar la aplicación con la API de Google Calendar para llevar un registro automatizado de la asistencia.
Asistente con IA: Integrar un asistente para que los alumnos puedan resolver dudas frecuentes y para que los coordinadores puedan consultar métricas usando lenguaje natural.
Built With
- css3
- flask
- google-classroom-api
- google-oauth-2.0
- html5
- javascript
- postgresql
- python
- sqlalchemy
Log in or sign up for Devpost to join the conversation.