Ce que j'ai fait pour cette MR :
-
Logique NFC :
-
Le scan vérifie d'abord l'UID dans le cache local (
SharedPreferences). -
Si connu : Émargement direct (plus de validation manuelle nécessaire).
-
Si inconnu : Redirection auto vers le formulaire d'inscription avec l'UID pré-rempli.
-
Gestion du cache local, des étudiants pour la reconnaissance hors-ligne.
-
Modèle de données :
-
Passage des clés JSON en français (
nom,prenom...) pour matcher avec le script google sheet. -
Ajout du champ
scanTypepour différencier "NFC" et "Manuel" dans le google sheet.
Fichiers impactés :
-
AttendanceService: Logique de sync et cache local. -
NfcScanScreen: Logique conditionnelle (Connu ou Inconnu). -
Studentmodel : Mise à jour des champs firstname, lastname et scanType.
Comment tester :
- Scanner une nouvelle carte -> Le formulaire doit s'ouvrir.
- Sauvegarder l'étudiant.
- Re-scanner la même carte -> Validation directe (Vert) : Crée la ligne avec Heure Entrée.
- Re-scanner la carte une seconde fois -> Validation directe : Met à jour la ligne avec Heure Sortie.
- Couper le wifi, scanner, et remettre le wifi -> Vérifier que la donnée arrive bien dans le Google Sheet après reconnexion.