1) Qu'est-ce que le projet Hem ?
Hem est une application web de gestion et de consultation de ressources, développée en groupe de 5 principalement durant le semestre 3. L'application permet à différents types d'utilisateurs — visiteurs sans compte, utilisateurs connectés, organismes et administrateurs — de consulter, ajouter ou retirer des ressources selon leurs droits. Un moteur de recherche permet également de filtrer les ressources en fonction de la situation de l'utilisateur ou de la personne pour laquelle la recherche est effectuée.
La stack technique repose sur Node.js côté backend, MySQL comme base de données via Prisma, et HTML/CSS/JavaScript vanilla côté frontend. Dans l'équipe, j'ai principalement travaillé sur le backend, la gestion des profils utilisateurs et les tests unitaires.
2) Mon approche du projet
J’ai participé à la conception et à l’implémentation d’une partie de la couche backend. J’ai notamment travaillé sur la définition des routes API, la mise en place des contrôles d’accès selon les rôles et les interactions avec la base de données. Le découpage des responsabilités entre authentification, gestion des droits et accès aux données a guidé les choix techniques liés aux fonctionnalités dont j’avais la charge.
J’ai également mis en place une suite de tests unitaires couvrant les routes API et la logique métier. J’ai notamment testé les comportements spécifiques à chaque rôle utilisateur, la sécurité des sessions et des comptes, ainsi que le fonctionnement des principales fonctionnalités de l’application.
3) Les apprentissages obtenus avec ce projet
Ce projet m’a appris à concevoir une architecture backend structurée, notamment autour d’un système de gestion des droits par rôles. J’ai dû réfléchir à l’organisation des différentes couches de l’application et à leurs responsabilités avant même de commencer certaines implémentations.
Il m’a aussi permis de développer une application web sans m’appuyer sur un framework lourd. Cela m’a obligé à comprendre plus en profondeur le fonctionnement du serveur, du routage des requêtes jusqu’aux interactions avec la base de données.
Enfin, travailler en groupe de 5 m’a confronté aux problématiques classiques du développement collaboratif. J’ai notamment constaté l’importance de définir des contrats d’API clairs afin que le frontend et le backend puissent avancer en parallèle sans se bloquer mutuellement. Même lorsque les choix techniques faisaient débat, il fallait parvenir à trouver un compromis cohérent pour le projet.



