Ce projet consiste en la conception et la réalisation d'une application web pour la gestion d'une agence de location de voitures. L'objectif est de faciliter la gestion des locations de véhicules, des réservations et des clients, tout en offrant une expérience utilisateur fluide. L'application est composée de deux interfaces principales : une pour les clients et une pour les administrateurs.
- Inscription, connexion, et récupération de mot de passe
- Consultation des véhicules disponibles
- Réservation de véhicules
- Système de paiement sécurisé via PayPal
- Réception de la facture et du contrat de réservation par email
- Avis et commentaires sur les véhicules
- Mode sombre et clair pour l'interface avec un design intuitif
- Gestion des véhicules (ajout, modification, suppression)
- Gestion des réservations et des clients
- Consultation des statistiques (réservations, revenus, etc.)
- Gestion des paiements et des avis des clients
- Une dashboard administrateur pour analyser l'état actuel ainsi que les prévisions futures
Le backend est développé avec Spring Boot et est responsable de la logique métier et de la gestion des données :
- Controller : Gère les requêtes entrantes et fait le lien avec la logique métier.
- DTO (Data Transfer Object) : Facilite la communication entre le frontend et le backend, et joue également le rôle d'une couche de sécurité.
- Service : Contient la logique métier principale.
- Security : Utilisation de JWT pour sécuriser les API et gérer l'authentification.
Le frontend est développé avec React et Tailwind CSS :
- Composants React : Permettent de construire une interface utilisateur dynamique et réactive.
- React Router : Gère la navigation entre les différentes pages de l'application.
- Axios : Pour effectuer des requêtes HTTP vers le backend.
- Frontend : React, Tailwind CSS
- Backend : Spring Boot, Spring Security, JWT
- Base de données : MySQL
- Tests : Postman
- Gestion de projet : Jira
- Contrôle de version : GitHub
Voici une description des principales pages de l'application :
-
Page d'accueil : Présente une vue dynamique des véhicules disponibles.
-
Page de connexion : Permet de se connecter, de réserver ou de créer un compte.
-
Page des véhicules : Affiche la liste des véhicules avec des options de filtre.
-
Page de réservation : Permet aux utilisateurs de réserver un véhicule.
-
Page de paiement : Système sécurisé de paiement via PayPal.
-
Facture et Contrat : Envoi par email du contrat et de la facture après réservation.
-
Page d'avis : Permet aux utilisateurs de donner leur avis sur les véhicules.
-
Page de gestion des véhicules : Ajout, modification et suppression des véhicules.
-
Page de gestion des réservations : Visualisation et gestion des réservations des clients.
-
Page de gestion des clients : Visualisation et gestion des clients avec des options.
-
Page de statistiques : Statistiques de l'activité de l'agence de location.

























