Files
biblioteca_conocimiento_lab…/docs/tareas-hijas-google-drive.md

6.5 KiB
Raw Permalink Blame History

Sistema de tareas de las hijas (Inés y Carolina) — Google Drive + IA

Documentación para reproducir el sistema en cualquier equipo. Última revisión: 04-oct-2026 (portátil).


1. Qué es

Ecosistema para gestionar las tareas escolares de las hijas:

  • Los correos de Classroom de Inés se vigilan y avisan por Telegram.
  • Las tareas entregadas (fotos/escaneos) se suben a Google Drive por asignatura.
  • El asistente (opencode/IA) lee los documentos, corrige y genera hojas nuevas de repaso.

2. Cuentas y credenciales

Elemento Valor
Google Drive (personal) juan.minguez.sanz@gmail.com
Proyecto Google Cloud tareasnenas
Client secret biblioteca_negocio_prolongo/google/client_secret_personal.json
Token OAuth biblioteca_negocio_prolongo/google/token_personal.json
Scopes drive, gmail.readonly, documents
Correo escolar de Inés ines.minguezlarhziale@alumnos.fundacionvictoria.edu.es

El token_personal.json se refresca solo al usarlo (guardar el fichero tras refrescar). Acceso válido desde portátil y sobremesa sin depender del otro equipo.

3. Estructura en Google Drive

TAREAS/
├── CAROLINA/
│   ├── LENGUA/
│   │   ├── Por hacer/     ← hojas en blanco (SIN soluciones) para que las haga
│   │   └── Respondido/    ← lo ya entregado (escaneos/PDF) y el modelo hecho
│   └── MATEMATICAS/
└── INES/
    ├── FISICA Y QUÍMICA/<Tema>/ → Doc "FEEDBACK ..." + fotos
    ├── HISTORIA Y GEOGRAFÍA/    → Doc "Tareas - HISTORIA Y GEOGRAFÍA"
    ├── LENGUA/                  → Doc "Tareas - LENGUA"
    ├── MATEMÁTICAS/ · INGLÉS/ · E.F/ · MÚSICA/ · PLÁSTICA/ · RELIGIÓN/ · TECNOLOGÍA/ · VALORES/

Convención de organización (IMPORTANTE)

  • Cada asignatura tiene subcarpetas Por hacer (pendiente) y Respondido (hecho).
  • Cuando algo se responde, se mueve de Por hacer a Respondido (no se deja mezclado).
  • Las hojas para las niñas van sin soluciones; el asistente guarda las respuestas correctas para corregir.

Formato de los docs "Tareas - "

TAREAS INES - <ASIGNATURA>
Profesor/a: <nombre>
Actualizado: DD/MM/AAAA

TAREAS Y ACTIVIDADES
========================================
[Pendiente|Pasada|Revisar] <titulo>
   Tipo: Anuncio|Tarea|Material | Fecha: DD mes AAAA

4. Bot del VPS (Inés) — classroom-watcher

Servicio systemd en el VPS Contabo que vigila el correo de Inés.

Dato Valor
Ruta /opt/classroom_watcher/
Script classroom_watcher.py
Servicio classroom-watcher.service (activo, enabled)
Ficheros token_personal.json, client_secret_personal.json, .env (TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID), seen_messages.json, pending_alerts.json, watcher.log
Filtro Gmail from:ines.minguezlarhziale classroom (tarea OR "Nueva tarea" OR "fecha de entrega" OR "Nuevo anuncio")
Horario avisos 15:00–22:00
Revisión Gmail cada 5 min
Reaviso cada 30 min hasta que el usuario responde S
Asignatura detectar_asignatura() mapea profesor→asignatura y si no, por asunto

Diseño intencionado: el bot solo avisa por Telegram. NO vuelca los correos a Google Drive (decisión del usuario, 04-oct-2026). El Drive de tareas se gestiona aparte (entrada manual / por IA).

Gestión del servicio (en el VPS)

systemctl status classroom-watcher
systemctl restart classroom-watcher
journalctl -u classroom-watcher -n 50 --no-pager
tail -n 50 /opt/classroom_watcher/watcher.log

Otros servicios relacionados en el VPS

  • /opt/email-watcher/ (email-watcher.service, disabled) — incidencia EmailService FaccsaMissa de jminguez@prolongo.es → grupo IDD Telegram (ámbito empresa, NO hijas).

5. Spec 004 (diseño completo, en pausa)

biblioteca_negocio_prolongo/specs/004-monitor-correo-ines/ (spec + plan + tasks):

  • Flujo A: resumen IA de correos escolares → Discord DM de Inés + aviso Telegram al padre.
  • Flujo B: entrega de foto en Drive → evaluación IA → mueve a "hechas" o avisa corrección.
  • Prerequisitos manuales listados en plan.md (Azure AD Graph, Service Account, bot Discord...).

6. Cómo reproducirlo en otro equipo

  1. Clonar biblioteca_conocimiento_laboratorio y biblioteca_negocio_prolongo.
  2. Asegurar google/client_secret_personal.json y google/token_personal.json (o regenerar con python google/google_auth.py).
  3. Instalar deps: pip install google-api-python-client google-auth-oauthlib pymupdf.
  4. Usar scripts/tareas_hijas/drive.py (helpers) para listar/leer/crear/mover en Drive.
  5. Para el bot: desplegar /opt/classroom_watcher en el VPS + classroom-watcher.service (ver §4).
  6. Para corregir: descargar los PDF/imágenes, convertirlos a PNG (pymupdf) y analizarlos con el MCP image-vision; corregir contra la hoja.

7. Notas / gotchas

  • La consola Windows falla con acentos (charmap): usar python -X utf8 o exportar a fichero.
  • Para crear Google Docs desde HTML: files().create(mimeType='application/vnd.google-apps.document', media=text/html).
  • Quitar soluciones de un Doc existente: documents().batchUpdate con deleteContentRange desde la cabecera "SOLUCIONES".
  • Mover ficheros: files().update(fileId, addParents, removeParents).

8. Conocimiento del Medio (Carolina) — flujo con temario

Carpeta: TAREAS/CAROLINA/CONOCIMIENTO DEL MEDIO/

Ciclo de vida de las tareas: Por hacer → Respondido → Revisado.

CONOCIMIENTO DEL MEDIO/
├── Por hacer/     pendiente para la niña
├── Respondido/    entregado (escaneos/fotos)
├── Revisado/      ya corregido por el asistente (+ Doc FEEDBACK)
└── Temario/       resumen del tema para estudiar + Capturas/ (páginas del libro)

Proceso:

  1. El temario (páginas del libro) se aporta como capturas; si son del PC suelen estar en C:\Users\<user>\Pictures\Screenshots. Se suben a Temario/Capturas/.
  2. Se crea un Doc Resumen Tema N — <título> en Temario/.
  3. Las tareas entregadas (escaneos en Respondido/) se corrigen contra el resumen; al corregir se genera FEEDBACK Tema N — <título> y se mueven junto a él a Revisado/.

Ejemplo Tema 1 (04-oct-2026): La alimentación y la dieta saludable — funciones de los alimentos (energéticos / constructores / reguladores), tipos por procesamiento (naturales / procesados / ultraprocesados) y dieta saludable (agua 1,5–2 L/día). Corrección de Carolina: todo bien salvo la cantidad de agua (escribió "12 a 15 L").