Calificacion_classroom

Revisor de tareas manuscritas para Google Classroom

App web que ayuda a docentes de matemáticas a calificar tareas entregadas en Classroom como foto o PDF. La app no escribe nada en Classroom: lee las entregas, genera una calificación y un comentario sugeridos, y el docente los captura a mano.

Guías

En Windows basta con doble clic en instalar.bat (una vez), iniciar.bat (cada vez que la uses) y actualizar.bat (cuando haya versión nueva).

Estado

Etapa Contenido Estado
1 OAuth y listado de cursos, tareas y entregas ✅
2 Descarga y conversión a imágenes ✅
3 Módulo de marca de validación ✅ modo local · falta probar con Claude
4 Clave de respuestas y calificación de una entrega ✅ probado con Claude simulado · falta probar con Claude real
5 Procesamiento por lote y panel ✅ probado con Claude simulado · falta probar con Claude real
6 Detección de copias pendiente

Configurar Google Cloud (una sola vez)

  1. En Google Cloud Console crea un proyecto.
  2. APIs y servicios → Biblioteca: habilita Google Classroom API y Google Drive API.
  3. Pantalla de consentimiento OAuth (Google Auth Platform):
    • Tipo de usuario: Externo (o Interno si tu cuenta de la UdeG lo permite).
    • Estado de publicación: Pruebas. Agrega tu cuenta como usuario de prueba. drive.readonly es un scope restringido; en modo prueba no requiere verificación.
    • Scopes: los de la tabla de abajo.
  4. Credenciales → Crear credenciales → ID de cliente de OAuth → Aplicación web:
    • URI de redirección autorizado: http://localhost:5173/api/auth/callback
  5. Copia el ID y el secreto a backend/.env (usa .env.example como plantilla).

Si tu cuenta es de Google Workspace institucional, el administrador puede tener bloqueado el acceso de apps de terceros a Classroom o Drive. Si al iniciar sesión aparece “acceso bloqueado”, ese es el motivo.

Scopes

Scope Uso
openid, userinfo.email, userinfo.profile Identificar al docente
classroom.courses.readonly Listar cursos
classroom.coursework.students.readonly Tareas y entregas (estado, adjuntos, enlace)
classroom.rosters.readonly Nombres de los alumnos
drive.readonly Descargar los archivos entregados (solo v1, modo prueba)

Correr en local (desarrollo)

En Windows lo más simple es instalar.bat e iniciar.bat (ver INSTALACION.md). A mano:

# Backend
cd backend
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
python scripts/crear_env.py   # crea .env y genera las claves; luego llena los de Google
alembic upgrade head
uvicorn app.main:app --reload --port 8000

# Frontend (otra terminal)
cd frontend
npm install
npm run dev                    # http://localhost:5173

En Windows (PowerShell)

# Backend
cd backend
python -m venv .venv
.\.venv\Scripts\Activate.ps1   # si falla: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
pip install -e ".[dev]"
python scripts\crear_env.py    # crea .env y genera las claves; llena los de Google con: notepad .env
alembic upgrade head
uvicorn app.main:app --reload --port 8000

# Frontend (otra ventana de PowerShell)
cd frontend
npm install
npm run dev

Vite reenvía /api al backend, así que la cookie de sesión y el redirect de OAuth usan el mismo origen (localhost:5173).

Actualizar a una versión nueva

git pull
cd backend
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"     # por si hay librerías nuevas
alembic upgrade head        # por si hay tablas nuevas

Pruebas

cd backend && pytest
cd frontend && npm run build && npm run lint

Módulo de marca de validación

  1. En Mi marca sube 1 a 5 fotos o recortes de tu firma o sello, elige su significado (“Tarea correcta” = 100 sin revisar contenido, o “Solo informativa”) y dónde buscarla.
  2. En la tarea: Descargar entregas y luego Revisar marcas.
  3. Cada entrega con marca muestra el recorte junto al nombre del alumno.

Cómo decide:

Privacidad (los alumnos son menores)