eptm_dashboard/data/docs/01-overview.md

2.1 KiB

Vue d'ensemble

EPTM Dashboard est une application de gestion des absences, notes et bulletins pour l'École professionnelle technique et des métiers (EPTM Sion / Monthey). Elle se synchronise avec Escadaweb (le système de notation cantonal) pour récupérer et pousser les données.

À quoi sert l'application

  • Visualiser les absences par apprenti ou par classe, avec calendrier mensuel et statistiques.
  • Excuser ou modifier les absences manuellement (les changements sont mis en file d'attente avant d'être renvoyés à Escada).
  • Récupérer les bulletins de notes (BN), les notes d'examen et les fiches personnelles depuis Escada.
  • Automatiser les imports/exports via des tâches planifiées (cron) avec notifications Telegram.
  • Tracer qui a modifié quoi (audit log complet).

Modèle de données simplifié

Apprenti ── Absence (avec statut: a_traiter, excusee, ...)
        ├── ApprentiFiche (données personnelles : adresse, entreprise, formateur)
        ├── NotesBulletin (BN par semestre)
        ├── NotesMatu (Matu pro)
        └── NotesExamen (notes d'examen finales)

EscadaPending : file d'attente des modifications locales à pousser vers Escada
                (action ∈ {"E", "N", "clear"})

Import / ImportBN / ImportMatu : trace des imports PDF effectués

CronJob : tâches planifiées (push, sync, push+sync)

Architecture technique

  • Frontend : Reflex 0.9.2 (Python full-stack avec Radix Themes + Tailwind-friendly)
  • DB : SQLite en mode WAL, à data/absences.db
  • Scraping Escada : Selenium / Playwright, dans scripts/sync_esacada.py et scripts/push_to_escada.py
  • Parsing PDF : src/parser.py (absences), src/parser_bn.py (bulletins), src/parser_matu.py (matu)
  • Conteneurisation : Docker Compose, derrière nginx-proxy-manager
  • Cron : OS cron déclenche scripts/cron_tick.py toutes les minutes, qui consulte la table CronJob

Rôles utilisateurs

  • user : accès aux pages Tableau de bord, Apprentis, Classes (lecture + édition d'absences).
  • admin : tout ce qui précède + Escada, Cron, Logs, Utilisateurs, Paramètres.