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.
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.
S'assurer que Docker Desktop soit ouvert (si vous conservez les fichiers mentionnés ci-dessus), installer les dépendances :
mvc clean installPuis lancer le projet, ce qui lancera le serveur MySQL sur un container Docker en même temps :
mvn spring-boot:runLa 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.
Variable: base_url: http://localhost:8080/api/v1
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.
Pour VSCode, il faudra soit utiliser un outil comme Postman, ou une extension comme Bruno, et adapter le contenu selon l'outil.
- 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
- 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
