1 Présentation de l'application
L'application Planning est un outil interne de consultation d'emploi du temps destiné aux apprenants et au personnel du Pôle Formation Industries Pays de la Loire (UIMM).
Elle permet de :
- Visualiser l'emploi du temps hebdomadaire et journalier
- Consulter les devoirs et travaux à rendre
- Suivre les échéances dépassées
- Consulter ses notes et bulletins de notes synchronisés automatiquement depuis Ypareo
- Se connecter via un compte local ou via ses identifiants Ypareo
- Recevoir des notifications sur son appareil (optionnel, à activer soi-même)
- Lier son compte Discord pour recevoir le planning en message privé et/ou dans le salon de son groupe (optionnel, à activer et désactiver soi-même à tout moment)
L'application est hébergée sur l'infrastructure de l'établissement et son accès est exclusivement réservé aux personnes autorisées par l'administration.
2 Accès et comptes utilisateurs
Il existe deux types de comptes :
| Type | Création | Authentification |
|---|---|---|
| Compte local | Par un administrateur | Identifiant + mot de passe stocké localement (haché) |
| Compte Ypareo | Automatiquement à la première connexion Ypareo | Identifiants Ypareo vérifiés en temps réel, jamais stockés |
Un compte local peut être lié à un compte Ypareo pour permettre une connexion via les deux méthodes.
⏱️ Les sessions sont valables 7 jours. Tant que vous utilisez l'application au moins une fois par semaine, votre connexion est automatiquement prolongée : vous n'êtes déconnecté(e) que si vous restez réellement 7 jours consécutifs sans y accéder. Vous pouvez aussi vous déconnecter manuellement à tout moment depuis votre profil.
3 Données stockées côté serveur
Les seules données conservées dans la base de données du serveur sont :
| Donnée | Nature | Finalité | Durée |
|---|---|---|---|
| Pseudo | Texte libre choisi par l'utilisateur | Identification dans l'application | Jusqu'à suppression du compte |
| Mot de passe haché | Hash scrypt + sel aléatoire (comptes locaux uniquement) | Authentification sécurisée | Jusqu'à suppression ou modification |
| Jeton de session | Empreinte SHA-256 d'une chaîne aléatoire de 256 bits (le jeton en clair n'est jamais stocké, seul votre navigateur le connaît) | Maintien de la connexion | 7 jours d'inactivité (renouvelée automatiquement en cas d'usage régulier, ou supprimée à la déconnexion manuelle) |
| Empreinte Ypareo | HMAC-SHA256 de l'identifiant Ypareo (non réversible) | Association du compte Ypareo sans stocker l'identifiant en clair | Jusqu'à déliaison ou suppression du compte |
| URL iCal | URL de flux calendrier Ypareo de l'utilisateur (ne contient aucune donnée personnelle, uniquement un UUID) | Accès au planning sans ré-authentification Ypareo à chaque visite | Jusqu'à suppression du compte |
| Identifiant Discord | Identifiant et pseudo Discord (fonctionnalité optionnelle, activée uniquement si vous liez volontairement votre compte) | Envoi du planning quotidien par message privé et/ou dans le salon Discord de votre groupe, si vous l'activez | Jusqu'à déliaison ou suppression du compte |
| Abonnement notifications push | Identifiant technique d'abonnement fourni par votre navigateur (fonctionnalité optionnelle, activée uniquement si vous autorisez les notifications) | Envoi de notifications sur votre appareil | Jusqu'à désactivation ou suppression du compte |
La base juridique du traitement est l'intérêt légitime de l'établissement à fournir un accès sécurisé à l'emploi du temps de ses apprenants.
4 Données stockées côté navigateur (localStorage)
🖥️ Les données suivantes sont stockées uniquement dans le navigateur de l'utilisateur (localStorage), jamais sur le serveur. Elles restent sur l'appareil et sont effacées à la déconnexion.
| Donnée | Finalité | Effacement |
|---|---|---|
| Bulletin de notes | Affichage des notes récupérées depuis Ypareo lors de la connexion | À la déconnexion et à la suppression du compte |
| Cache calendrier iCal | Accélération du chargement de l'emploi du temps (TTL 20 min) | Automatiquement après 20 minutes |
| Thème de couleur | Mémorisation de la préférence visuelle | À la suppression manuelle du stockage navigateur |
| Devoirs marqués comme faits | État local des devoirs cochés | À la suppression manuelle du stockage navigateur |
5 Données non collectées
🔒 Aucun mot de passe Ypareo n'est jamais stocké — ni sur le serveur, ni dans le navigateur. La vérification est effectuée en temps réel auprès de Ypareo. Les notes ne transitent que dans la réponse de connexion et sont stockées localement dans le navigateur.
L'application ne collecte pas :
- Non Mots de passe Ypareo
- Non Identifiant Ypareo en clair (uniquement une empreinte cryptographique non réversible)
- Non Adresse e-mail ou numéro de téléphone
- Non Données de navigation ou de localisation
- Non Cookies publicitaires ou de traçage
- Non Bulletin de notes côté serveur (stocké uniquement dans le navigateur de l'utilisateur)
6 Sécurité et mesures techniques
Les mesures techniques suivantes sont mises en œuvre :
- OK Mots de passe locaux hachés avec scrypt (sel aléatoire de 128 bits)
- OK Jetons de session générés aléatoirement (256 bits) et stockés en base sous forme d'empreinte SHA-256 uniquement (jamais en clair)
- OK Cookies
HttpOnly,SameSite=StrictetSecure(lorsque servi en HTTPS), avec vérification d'origine en complément contre le CSRF - OK Support HTTPS natif (certificat auto-signé généré via
gen-cert.mjs, ou certificat officiel) avec en-têteStrict-Transport-Security - OK Identifiants Ypareo tokenisés via HMAC-SHA256 (irréversible)
- OK Limitation des tentatives de connexion : max 10 par minute par IP, et verrouillage temporaire d'un compte après 5 échecs (15 minutes)
- OK Changement de mot de passe : déconnexion automatique de tous les autres appareils/sessions
- OK En-têtes HTTP :
CSP(avec nonce par requête, sans dépendre des scripts/styles en clair),X-Frame-Options: DENY,X-Content-Type-Options,Permissions-Policy,Cross-Origin-Opener-Policy,Cross-Origin-Resource-Policy - OK Aucun fichier serveur (code source, base de données, configuration) n'est accessible via une URL : seuls les fichiers strictement publics le sont
- OK Sessions expirées supprimées automatiquement, prolongées automatiquement en cas d'usage régulier
- OK Notes jamais persistées côté serveur
- OK Taille des requêtes limitée (100 Ko max) pour prévenir les attaques par saturation
Les données serveur sont stockées dans une base SQLite locale sur l'infrastructure de l'établissement, accessible uniquement depuis le réseau interne.
7 Droits des utilisateurs (RGPD)
Conformément au Règlement Général sur la Protection des Données (RGPD — UE 2016/679), vous disposez des droits suivants :
- Droit d'accès : pseudo, type de compte et liaison Ypareo consultables depuis votre profil.
- Droit de rectification : modification du pseudo depuis la section « Profil ».
- Droit à l'effacement : suppression complète du compte depuis « Profil → Supprimer mon compte ».
- Droit d'opposition : contactez l'administrateur ou le DPO (voir section 11).
Pour vos données sur la plateforme Ypareo (notes, planning source), exercez vos droits auprès du Délégué à la Protection des Données du Pôle Formation UIMM : dpo@formation-industries-pdl.fr
8 Suppression du compte
⚠️ La suppression du compte est définitive et irréversible. Elle entraîne la suppression de :
- Votre pseudo et identifiant interne
- Toutes vos sessions actives (déconnexion immédiate sur tous les appareils)
- L'empreinte Ypareo associée (si applicable)
- Le mot de passe haché (pour les comptes locaux)
- Les notes stockées dans le navigateur (localStorage)
La suppression ne concerne que les données propres à cette application. Vos données sur la plateforme Ypareo de l'établissement ne sont pas affectées.
Pour supprimer votre compte : Profil → Supprimer mon compte.
9 Responsabilités
L'utilisateur s'engage à :
- Ne pas partager ses identifiants de connexion
- Utiliser l'application conformément à son usage prévu (consultation de l'emploi du temps)
- Signaler tout accès non autorisé à l'administrateur
L'établissement ne saurait être tenu responsable des interruptions de service, des problèmes de connexion au serveur Ypareo ou de la perte de données résultant d'une utilisation incorrecte.
10 Modifications des CGU
Ces conditions d'utilisation peuvent être mises à jour à tout moment. La date de mise à jour est indiquée en haut de ce document. L'utilisation continue de l'application après modification vaut acceptation des nouvelles conditions.
11 Contact et DPO
Pour toute question relative à cette application, contactez l'administrateur système du Pôle Formation Industries Pays de la Loire (UIMM).
Pour vos droits RGPD sur les données Ypareo ou pour exercer votre droit d'accès, de modification ou de suppression conformément à la loi n° 78-17 du 6 janvier 1978 modifiée, contactez le Délégué à la Protection des Données :
📧 dpo@formation-industries-pdl.fr
Conformément aux mentions légales du Pôle Formation UIMM, une preuve de connexion avec les coordonnées de la personne connectée est conservée dans les systèmes informatiques de l'établissement dans des conditions raisonnables de sécurité.