Skip to content

mlangumier/project-rest-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projet REST API - Tricount

Mettre en place la base d'une application similaire à Tricount (calcul de budgets entre amis : partages et remboursements) en utilisant Spring Boot & une architecture MVC afin de permettre une gestion des dépenses ainsi qu'une authentification optionnelle.

Introducing Tricount

Notes

Ce projet utilise la dépendence Docker Compose pour lancer un serveur MySQL dans un container lorsqu'on démarre l'application, et nécessite que Docker soit lancé. Pour lancer ce projet sur un serveur MySQL local, il suffit de commenter le contenu du fichier compose.yaml, ou supprimer la dépendence spring-boot-docker-compose du fichier pom.xml.

Lancer l'application

S'assurer que Docker Desktop soit ouvert (si vous conservez les fichiers mentionnés ci-dessus), installer les dépendances :

  mvc clean install

Puis lancer le projet, ce qui lancera le serveur MySQL sur un container Docker en même temps :

  mvn spring-boot:run

La base de données sera remplie automatiquement lors du premier lancement grâce au DataLoader. Elle peut également être remplie manuellement ou réinitialisée grâce à des requêtes présentes dans les fichiers .http.

Fichiers de requêtes HTTP

Variable: base_url: http://localhost:8080/api/v1

IntelliJ IDEA (HttpClient)

Ouvrir un des fichiers .http qui se trouvent dans le dossier resources/http-requests à l'intérieur du chemin principal, appuyer sur le bouton Run with: dans le menu contextuel, puis sélectionner development. Cela permettra aux fichiers .http de lire les variables contenues dans le fichier http-client.env.json. Après cela, il suffira de lancer les requêtes depuis le fichier en cliquant sur la flèche run.

VSCode

Pour VSCode, il faudra soit utiliser un outil comme Postman, ou une extension comme Bruno, et adapter le contenu selon l'outil.

Objectifs

Voir l'énoncé

Fonctionnalités attendues

  • Créer un groupe de dépenses
  • Entrer des dépenses dans ce groupe (ex : Marc - Billet de train - 25€)
  • Consulter la liste et le total des dépenses d'un groupe, filtrer par personne et montant (inférieur ou supérieur à...)
  • Consulter le détail des dépenses, qui doit combien à qui
  • Pouvoir indiquer qu'on a payé son dû
  • S'authentifier pour voir les différents groupes auxquels on fait partis

Étapes

  • Créer un diagramme d'entités
  • Initialiser le projet Spring Boot et les dépendances nécessaires
  • Mettre en place une architecture MVC (DTOs dans les controllers, la logique & l'accès aux repositories dans la couche Business)
  • Quelques tests fonctionnels sur les endpoints

Class Diagram

UML Class Diagram

About

Exam - Tricount-inspired REST API app with Spring Boot MVC architecture, authentication & functional tests

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages