Contexte
Ce projet fullstack a été réalisé en groupe (de 3 personnes) lors du bootcamp Ironhack, en une semaine.
Etant tous les trois intéressés par la santé mentale, nous avons choisi de travailler sur un site qui permettrait à des patients en thérapie (notamment en Thérapie Comportementale et Cognitive) d'avoir un carnet de bord en ligne et à leur thérapeute de consulter les notes. Le ou la patient.e pourrait noter les "épisodes" et éléments déclencheurs de crises.
Voici une partie des spécificités qui nous ont été demandées :
- Avoir un CRUD (Create, Read, Update, Delete)
- Avoir une bonne structure de dossiers et des fichiers nommés correctement
- Utiliser au moins deux modèles, complexes, dans la base de données
- Asynchronicité
- Utiliser la méthode populate
- Utiliser des partials
- Utiliser Ajax (bonus)
- Avoir du code propre et documenté
Procédé
Pour cet exercice nous avons utilisé du HTML, du CSS, NodeJS, ExpressJS, Mongoose, Ajax, Handlebars. Nous avons un modèle de base de données "patient" et un "docteur", qui communiquent entre eux : par exemple, si un.e patient.e change de médecin, les informations des médecins se mettent à jour (le ou la patient.e disparait de la liste des patients du médecin actuel et vont s'ajouter à la liste des patients du nouveau médecin).
Il y a donc deux tableaux de bord différents, un pour les patient.e.s, un pour les thérapeutes. Le ou la patient.e peut voir sur son tableau de bord : les informations concernant son thérapeute, ses documents déjà créés, ainsi qu'un bouton qui permet de créer de nouveaux documents. Le ou la thérapeute voit la liste de ses patiens et lorsqu'il ou elle clique sur un.e patient.e, peut voir la liste des documents de ce.tte patient.e et les lire (uniquement).
J'ai personnellement travaillé sur toutes les routes du back-end et la communication entre les modèles de la base de données.
Vous pouvez cliquer sur l'image pour voir la page ou visualiser le code dans ce repository (dossier GitHub).