Application communautaire transformant le calendrier des évaluations scolaires en bulletin météorologique interactif
Find a file
Mathis 90adee1eae v0.3.0 — mise à jour in-app pour Android
- Server : GET /api/version (version + APK URL + taille), GET /download/latest.apk
- Server : releases/latest.apk servi avec Content-Type APK
- Web : checkForUpdate() compare version locale vs serveur au démarrage
- Web : modale de mise à jour (télécharger + installer, ou plus tard)
- Web : version affichée dans l'onglet Plus
- Vite : __APP_VERSION__ injecté au build depuis shared/APP_VERSION
- Workflow : bump APP_VERSION → build APK → copier vers server/releases/latest.apk
2026-10-04 17:18:48 +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.3.0 — mise à jour in-app pour Android 2026-10-04 17:18:48 +02:00
shared v0.3.0 — mise à jour in-app pour Android 2026-10-04 17:18:48 +02:00
web v0.3.0 — mise à jour in-app pour Android 2026-10-04 17:18:48 +02:00
.gitignore v0.3.0 — mise à jour in-app pour Android 2026-10-04 17:18:48 +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