MaPrésence — Application Android de gestion des présences

Introduction

MaPrésence est une application Android éco-conçue qui centralise la gestion des présences pour trois profils : étudiants, enseignants et administrateurs. Elle permet la consultation des informations personnelles, l’enregistrement des présences, la création des cours/séances et la génération de statistiques d’assiduité pour offrir une vision globale et exploitable de la présence. Le développement a été orienté performance & sobriété : thème sombre, choix de types de données économes, réduction des transitions coûteuses et profilage mémoire.

I. Fonctionnalités par rôle

Barre de navigation commune

Une barre de navigation inférieure permet d’accéder à l’accueil, aux notifications, à la liste des absences (ou matières), et à la déconnexion (retour à la page de login).

Étudiant

Enseignant

Administrateur

II. Architecture des données (Modèle relationnel)

Le modèle de données est centré sur les entités Utilisateur, Cours, Seance et Presence, avec des relations adaptées à la réalité académique (enseignants ↔ cours, étudiants ↔ séances, etc.).

Entités & attributs

Entité Attributs Remarques
Utilisateur id:int, nom:String, prenom:String, email:String, motDePasse:String (hashé), role:short (1=prof, 2=étudiant, 3=admin) Rôles numérisés (économie mémoire vs String). Hash via at.favre.lib:bcrypt:0.9.0.
Cours id:int, nom:String, dateDebut:String, dateFin:String Un cours regroupe plusieurs séances, enseigné par un ou plusieurs professeurs.
Seance id:int, idCours:int (FK), dateDebut:String, dateFin:String Chaque séance appartient à un unique cours.
Presence utilisateurId:int (FK), seanceId:int (FK), etat:boolean Présent (true) / Absent (false).

Relations clés

III. Persistance & accès aux données (Room)

L’application utilise Room (ORM Android) pour mapper les tables SQLite à des entités Java, et des DAO (Data Access Objects) pour des accès typés et sûrs. Les requêtes SQLite sont exprimées via des annotations, réduisant le code répétitif et les erreurs.

IV. Sécurité

V. Éco-conception & performance

Choix colorimétriques

Thème sombre (noir/vert) pour diminuer la consommation énergétique des écrans.

Types de données

Passage de String à byte/short pour le rôle afin d’optimiser l’empreinte mémoire (vs. encodage UTF-8 des chaînes).

Minimisation des transitions

Architecture en hub centralisé (accès direct aux fonctionnalités depuis l’accueil adapté au rôle), réduisant le temps d’usage, les requêtes et les transitions coûteuses.

Profilage

Utilisation de Android Studio Profiler pour observer la RAM/CPU lors des scénarios usuels (login → liste d’appel → validation) et supprimer les pics superflus.

VI. Galerie (aperçu écrans)

Quelques écrans clés : accueil (par rôle), saisie de présence, statistiques.

VII. Conclusion

MaPrésence montre qu’une application mobile peut concilier fonctionnalité et responsabilité environnementale. Les besoins des trois profils utilisateurs sont couverts (consultation, enregistrement, pilotage), avec un soin particulier apporté à la sobriété de l’interface et à l’optimisation des accès aux données via Room/SQLite. Le résultat : une solution fiable, performante et durable pour la gestion des présences.