Dossier complet pdf avec screenshots
Une web app pour gérer la location de voitures
·
Jules Doumèche
·
Gwénolé Martin
·
Mehdi Hachisman
L'objectif du projet est de construire une application web basée sur une architecture MVC de location de voitures. Elle permet aux utilisateurs de parcourir les différents modèles de véhicules mis en location avec une description, une photo, et des caractéristiques pour chaque véhicule.
Celle-ci implémente différents services pour les utilisateurs et les loueurs :
L'utilisateur est le plus souvent une entreprise qui souhaite louer des véhicules:
- Page d'inscription
- Connexion (non obligatoire pour voir la page d'accueil)
- Page d'accueil qui affiche les différents modèles proposés
- Réduction de 10% si paiement mensuel (à partir d'un mois)
- Connexion obligatoire pour une location
- Sélection d'une intervalle de date
- Possibilité de réaliser un paiement mensuel sans date limite (renouvellement chaque mois)
- Affichage des modèles disponibles à la location selon les dates entrées
- Page de récapitulative d'une location
- Panel de toutes les locations effectuées
- Accès à la facture
- Panel de gestion
- Affichage des revenus, des réservations du mois en cours
- Affichage du pourcentage de véhicules en cours de location
- Affichage du nombre de client
- Tableau des dernières locations
- Page de récapitulative des véhicules avec les statuts de chaque véhicule
- Page de modification d'un véhicule (non loué), avec possibilité de retirer le véhicule du stock
- Formulaire d'ajout d'un nouveau véhicule
- Page de tout les clients
- Calcul des factures pour chaque client du mois courant
Un rôle Administrateur est aussi implémenté:
- Panel d'administration
- Affichage du nombre d'utilisateurs
- tableau de tous les utilisateurs inscrits
- Possibilité de supprimer un compte
- Possibilité de définir un compte utilisateur en compte renter
- Possibilité de définir un compte renter en compte utilisateur
L'application repose sur une structure solide qui permet de garantir la sécurité:
- Authentification sécurisé avec token de connexion
- Mot de passe hashé, avec possibilité de rehasher le mot de passe
- Restrictions d'accès à certaines urls en fonction du rôle
- Données stockés dans une base de données avec accès sécurisé
Cette application web utilise certaines technologies et frameworks:
Une liste des dépendances est disponible ci-dessous
Voici comment mettre en place l'application dans votre environnement de développement
Configuration du fichier php.ini:
extension=fileinfo
extension=gd2
extension=exif
extension=mysqli
extension=pdo_mysql
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'c31c1e292ad7be5f49291169c0ac8f683499edddcfd4e42232982d0fd193004208a58ff6f353fde0012d35fdd72bc394') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
- Vérifier la configuration de symfony
symfony check:requirements
- Cloner le repos, ou télécharger l'archive correspondante dans votre IDE
cd /carapp
git clone https://github.com/julio4/CarApp.git
- Installer les dépendances
composer install
-
Démarrer le serveur mySql (exemple: XAMPP)
-
Configurer la base de données
Importer la base dans mysql avec l'aide du script carapp.sql
OU
- Configurer la connexion à la base dans le dossier
.env
:
@.env:28
DATABASE_URL='mysql://root:@127.0.0.1:3306/<BASE>' //(par défault:carApp)
- Charger le schéma de la base:
php bin/console doctrine:schema:update --force
- Charger des données de base () :
php bin/console doctrine:fixtures:load
- (optionel) Installer les certificats
symfony server:ca:install
- (optionel) Charger le cache en avance pour accélérer le site
php bin/console cache:warmup
- Démarrer le serveur web
symfony server:start
L'application est disponible en environnement de développement en local à l'adresse localhost:8000
-
Le compte administrateur de base est accessible avec l'utilisateur
admin
et le mot de passepassword
-
Un compte loueur est accessible avec l'utilisateur
loueur
et le mot de passepassword
-
Trois comptes clients sont accessibles:
Daisi Carignan
,Ernest Bonenfant
,Alita Robert
avec le mot de passepasswordpassword
Ces extensions sont automatiquement installées en suivant le guide d'installation
- Twig : gérer les vues du site grâce à des templates avancées
- Doctrine ORM : gérer les modèles, les entitées et la connexion à la base de données
- Webpack Encore : gérer tous les assets front-end, injecte le css, le javascript et les librairies supplémentaires
- Symfony/form : gérer la création et le traitement des formulaires
- Symfony/maker-bundle : créer des classes types rapidement et efficacement
- Symfony/security-bundle : gérer les connections et les rôles de chaque utilisateurs
- Symfony/validator : vérifie les données des formulaires pour correspondre au schéma de la base de données
- Symfony/web-profiler-bundle : barre de débug en environnement de développement
- Chart.js : affichage de graphiques dynamiques
- bsCustomFileInput : importation de fichier avec bootstrap
Documentation des fonctionnalitées offertes par notre application ! (voir le rapport de projet)Status