- Seed : plus de membres fictifs, seuls les vrais apparaissent
- Panel admin centralise TOUT :
- Flash info du jour
- Édition de la classe (nom + niveau)
- Gestion des évaluations (liste, ajout, modification, suppression)
- Météo par jour (override admin avec bouton forcé/auto)
- Gestion des membres (promotion/rétrogradation)
- Formulaire d'évaluation complet (matière, prof, salle, chapitre, date, heure, durée, coeff, note)
- Modale météo par jour (soleil, brouillard, vent, orage, tempête)
- joinClass : si aucun admin 'réel' (is_creator=0) n'existe, le nouveau membre est admin
- Seed : ne crée plus de membre admin — la première personne qui rejoint gère la classe
- Régression : 'Mathis' rejoignant TERMS2 devient admin au lieu d'élève
- v0.4.1
- joinClass vérifie si un membre porte déjà ce pseudo dans la classe
- Si oui : nouveau jeton + retourne le rôle existant (admin conservé)
- Si non : création d'un nouvel élève
- L'admin peut se reconnecter avec son pseudo pour retrouver ses droits
- DB : colonne is_creator sur members + migration automatique
- API : GET /api/config/members (liste admin), PATCH /api/config/members/:id (rôle)
- Règles : créateur non rétrogradable, admin non auto-rétrogradable, dernier admin protégé
- Front : panneau 'Membres de la classe' dans l'onglet Plus (admin)
- Chaque membre affiche son badge (Créateur / Admin / Élève) + boutons promote/demote
- 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
- 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)