Skip to content

Application permettant de prendre un rendez-vous pour une vaccination COVID dans un centre de vaccination en France.

Notifications You must be signed in to change notification settings

EmyLIEUTAUD/ProjetFullStack

Repository files navigation

ProjetFullStack - Vaccination COVID

Application permettant de prendre un rendez-vous pour une vaccination COVID dans un centre de vaccination en France.
Créée par Emy LIEUTAUD (31818604), Yunqiao ZHANG (31733827) et Romain PERRELLE (32024667)

Données sur les lieux de vaccination : https://www.data.gouv.fr/fr/datasets/lieux-de-vaccination-contre-la-covid-19/

Structure du back

Projet JAVA basé sur Maven : les dépendances sont donc décrites dans le fichier pom.xml.
Technologies implémentées :

  • Basic Auth
  • Contrôleur REST
  • ETag
  • Hibernate
  • JWT
  • Liquibase
  • Métriques avec Micrometer
  • PostgreSQL
  • RateLimit via Token Bucket
  • Spring (Web, Security)
  • Swagger

Plusieurs méthodes existent pour lancer le back :

  • avec VScode :
    Il faut premièrement ouvrir le projet dans VScode.
    Ensuite, il faut faire un clique droit sur la classe CovidApiApplication.java qui se trouve dans src/main/java/org/polytech/covid/.
    Enfin, il suffit de cliquer sur Run Java.
  • en ligne de commandes :
    Il faut tout d'abord aller à la racine du projet. Puis, il faut exécuter la commande suivante :
    mvn exec:java -Dexec.mainClass=org.polytech.covid.CovidApiApplication

Le back est maintenant accessible sur le navigateur sur localhost:8080.

Endpoints

/public/ -> destiné à tout utilisateur qui souhaite prendre un rendez-vous sur l'application
/admin/ -> destiné aux professionnels : besoin d'être connecté pour y accéder
/login/ -> reservé aux professionnels pour se créer un compte (/login/nouveau) ou se connecter (/login/authenticate)
/actuator/metrics/ -> accéder aux métriques générées
/swagger-ui -> accéder au swagger (description de l'API REST)

Structure du front

Projet Angular.
Technologies implémentées :

  • Bootstrap
  • File d'attente
  • Formulaire BasicAuth
  • Guard : canActivate, canDeactivate
  • Interceptors
  • Material : core, input, form-field, datepicker, card, button, progress-bar
  • Modales
  • Promises
  • Regex

Pour lancer le front, il faut tout d'abord aller dans le dossier VaccinationCOVID.
Ensuite, il suffit d'exécuter la commande suivante : ng serve.
Le front est maintenant accessible sur le navigateur sur localhost:4200.

Endpoints

/home/ -> destiné à tout utilisateur qui souhaite prendre un rendez-vous sur l'application
/register/ -> destiné aux professionnels pour se créer un compte
/login/ -> reservé aux professionnels pour se connecter

Rôles

SuperAdmin

Il n'appartient pas à un centre précis.
Un seul SuperAdmin existe.
Il peut :

  • gérer les centres (/admin/centres/) :
    • créer un centre (POST /admin/centres/nouveau)
    • afficher les centres (GET /admin/centres et GET /public/centres et GET /public/centres/id/{id})
    • modifier un centre (PUT /admin/centres/modifier/{gid})
    • supprimer un centre (DELETE /admin/centres/supprimer/{gid})
  • gérer les administrateurs (/admin/administrateurs/) :
    • récupérer les professionnels en attente d'affectation (GET /admin/professionnels)
    • créer un administrateur (POST /admin/administrateurs/nouveau)
    • afficher les administrateurs (GET /admin/administrateurs)
    • modifier un administrateur (PUT /admin/administrateurs/modifier/{id})
    • supprimer un administrateur (DELETE /admin/administrateurs/supprimer/{id})

Admin

Il est lié à un centre.
Il peut :

  • gérer les médecins de son centre (admin/medecins/) :
    • récupérer les professionnels en attente d'affectation (GET /admin/professionnels)
    • créer un médecin (POST /admin/medecins/nouveau)
    • afficher les médecins (GET /admin/medecins et GET /admin/medecins/id/{id})
    • modifier un médecin (PUT /admin/medecins/modifier/{id})
    • supprimer un médecin (DELETE /admin/medecins/supprimer/{id})
  • gérer les réservations de son centre (/admin/reservations/) :
    • afficher les réservations (GET /admin/reservations et GET /admin/reservations/centre/{date})
    • supprimer une réservation (DELETE /admin/reservations/supprimer/{id})

Medecin

Il est lié à un centre.
Il peut :

  • rechercher une personne dans son centre par son nom (GET /admin/personnes/{nom})
  • rechercher une personne dans son centre par sa date de réservation (GET /admin/reservations/centre/{date})
  • valider la vaccination d'une personne (PUT /admin/personnes/validerVaccination/{id})

Comptes pré-créés

SuperAdmin

mail : superAdmin@gmail.com
mdp : superAdminPassword

Admins

  • Admin 1 :
    mail : admin1@gmail.com
    mdp : admin1
    Appartient au centre numéro 3157
  • Admin 2 :
    mail : admin2@gmail.com
    mdp : admin2
    Appartient au centre numéro 1072

Médecins


Une réservation est également pré-crée dans le centre numéro 3157. Elle date du 1er février 2023 et est associé à la personne ayant pour nom Public1.

Métriques

Pour accéder aux métriques, il est nécessaire d'avoir appelé au moins une fois l'endpoint lié.

rendez-vous.temps.enregistrement

Elle sert à voir le temps d'enregistrement d'un rendez-vous.
Endpoint : GET /actuator/metrics/rendez-vous.temps.enregistrement
Métrique mise à jour lors de l'appel du endpoint suivant : POST /public/inscription

rendez-vous.nombre

Elle sert à voir le nombre de rendez-vous pris.
Endpoint : GET /actuator/metrics/rendez-vous.nombre
Métrique incrémentée lors de l'appel du endpoint suivant : POST /public/inscription

Docker

Il est possible de lancer notre application (back + front) avec Docker.
Pour cela, il faut aller à la racine du projet (là où se trouve le fichier docker-compose.yml).
Remarque : Docker doit être lancé (état : running).
Ensuite, il est nécessaire d'exécuter la commande suivante : docker-compose up -d --build.
L'application fonctionne alors dans des conteneurs. Vous pouvez y accéder sur votre navigateur :

  • localhost:4200 pour accéder au front
  • localhost:8080 pour accéder au back

Versions

Angular CLI : 15.0.3
Docker : 20.10.21
Java (jdk) : 17.0.5
Maven : 3.6.3
Node : 18.12.1
npm : 8.19.2

/!\ Ne fonctionne que sur Windows 10 et 11

About

Application permettant de prendre un rendez-vous pour une vaccination COVID dans un centre de vaccination en France.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published