Application communautaire transformant le calendrier des évaluations scolaires en bulletin météorologique interactif
Find a file
Mathis 246f989bdc v0.2.0 — config admin (météo forcée, flash info, édition classe) + PWA
- DB : table day_weather (override admin par jour), flash_message sur classes
- API : PUT/DELETE /api/config/day-weather, PUT /api/config/flash, PATCH /api/config/class
- SSE : day_weather.updated/deleted, flash.updated, class.updated
- Front : bandeau flash info, indicateur 'forcé' sur la frise, modale météo admin
- Onglet Plus : panneau admin (flash info + édition classe), tout admin modifiable
- PWA : manifest.webmanifest, service worker, meta Apple, icônes 192/512
- Web version accessible sur iOS via Safari (Ajouter à l'écran d'accueil)
2026-10-04 17:05:56 +02:00
design/prototype Météo Exam v0.1.0 — calendrier des évaluations en bulletin météo 2026-10-02 19:51:13 +02:00
scripts v0.2.0 — config admin (météo forcée, flash info, édition classe) + PWA 2026-10-04 17:05:56 +02:00
server v0.2.0 — config admin (météo forcée, flash info, édition classe) + PWA 2026-10-04 17:05:56 +02:00
shared v0.2.0 — config admin (météo forcée, flash info, édition classe) + PWA 2026-10-04 17:05:56 +02:00
web v0.2.0 — config admin (météo forcée, flash info, édition classe) + PWA 2026-10-04 17:05:56 +02:00
.gitignore Météo Exam v0.1.0 — calendrier des évaluations en bulletin météo 2026-10-02 19:51:13 +02:00
package-lock.json Météo Exam v0.1.0 — calendrier des évaluations en bulletin météo 2026-10-02 19:51:13 +02:00
package.json Météo Exam v0.1.0 — calendrier des évaluations en bulletin météo 2026-10-02 19:51:13 +02:00
README.md Météo Exam v0.1.0 — calendrier des évaluations en bulletin météo 2026-10-02 19:51:13 +02:00

Météo Exam

Le calendrier des évaluations scolaires, traduit en bulletin météorologique interactif. Application Android (Capacitor) + API Node.js.

Structure

meteo-exam/
├── shared/         Types + correspondance type d'éval ↔ météo
├── server/         API Express + SQLite (classes, évaluations, SSE)
├── web/            Front Vite + TypeScript (compilé dans Capacitor)
│   └── android/    Projet Capacitor Android
└── design/prototype/meteo-exam-reference.html   Prototype visuel d'origine

Démarrage rapide

1. Installer les dépendances

cd meteo-exam
npm install

2. Lancer le serveur

# Base de démonstration (Terminale S2, code d'invitation TERMS2)
npm run seed

# Serveur API (port 8787)
npm run dev:server

3. Lancer le front en développement

npm run dev:web
# → http://localhost:5173

4. Builder l'APK Android

cd web
npx cap sync android
cd android
./gradlew assembleDebug
# → android/app/build/outputs/apk/debug/app-debug.apk

Comptes de démonstration

Rôle Classe Code Pseudo
Admin Terminale S2 TERMS2 Thomas S.
Élève Terminale S2 TERMS2 n'importe quel

L'admin peut ajouter / modifier / supprimer les évaluations. Les élèves consultent et reçoivent les mises à jour en temps réel (SSE).

Configuration

Serveur

Variable Défaut Description
PORT 8787 Port d'écoute de l'API
METEO_DB server/data/meteo-exam.db Chemin du fichier SQLite
METEO_ORIGINS * Origines CORS autorisées (séparez par une virgule)

App Android

Dans l'onglet Plus de l'app, l'adresse du serveur est configurable. Sur l'émulateur Android, utilisez http://10.0.2.2:8787 (l'hôte de la machine). Sur un téléphone physique, utilisez l'IP locale de la machine qui tourne le serveur.

API

Méthode Route Accès Description
POST /api/classes public Créer une classe → { token, code, member, klass }
POST /api/classes/join public Rejoindre via un code
GET /api/classes/me membre Session courante
GET /api/exams?from&to membre Liste des évaluations
POST /api/exams admin Ajouter une évaluation
PATCH /api/exams/:id admin Modifier
DELETE /api/exams/:id admin Supprimer
GET /api/stream membre Flux SSE (ping + exam.created/updated/deleted)

Authentification : Authorization: Bearer <token> ou ?token= (SSE uniquement).

Statuts météo

Icône Nom Coefficient Signification
☀️ Grand Soleil 0 Aucune évaluation
🌫️ Brouillard — Rumeur non confirmée
💨 Coup de vent 1 Interro surprise, coeff faible
🌩️ Orage 2–3 DS / contrôle continu
🚨 Alerte Rouge 4+ Examen blanc / épreuve commune

Phase 2 (prévu)

  • Radar de rumeurs (vote communautaire, seuil de conversion 65 %)
  • Métriques : pression atmosphérique (coefficient) + indice de vigilance 1-5
  • Flash info du jour généré automatiquement
  • PWA / service worker