{"id":25135485,"url":"https://github.com/julio4/carapp","last_synced_at":"2025-04-24T01:27:06.110Z","repository":{"id":76622962,"uuid":"304891314","full_name":"julio4/CarApp","owner":"julio4","description":"Class Project - Symfony web-app rental system","archived":false,"fork":false,"pushed_at":"2023-12-28T11:45:01.000Z","size":19178,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T05:31:41.242Z","etag":null,"topics":["car","class-project","rentalsystem","symfony","symfony-application","symfony5","webapp"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/julio4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-17T14:05:36.000Z","updated_at":"2024-02-10T20:27:12.000Z","dependencies_parsed_at":"2023-12-28T13:04:57.378Z","dependency_job_id":null,"html_url":"https://github.com/julio4/CarApp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julio4%2FCarApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julio4%2FCarApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julio4%2FCarApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julio4%2FCarApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/julio4","download_url":"https://codeload.github.com/julio4/CarApp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250542990,"owners_count":21447812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["car","class-project","rentalsystem","symfony","symfony-application","symfony5","webapp"],"created_at":"2025-02-08T16:33:06.330Z","updated_at":"2025-04-24T01:27:06.074Z","avatar_url":"https://github.com/julio4.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[Dossier complet pdf avec screenshots](DOUMECHE_MARTIN_HACHISMAN_Rapport_PWEB.pdf)\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n\n  \u003ch3 align=\"center\"\u003eProjet Pweb 2020: Car'App\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Une web app pour gérer la location de voitures\n    \u003cbr /\u003e\n    ·\n    Jules Doumèche\n    ·\n    Gwénolé Martin\n    ·\n    Mehdi Hachisman\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\n\u003c!-- Sommaire --\u003e\n## Sommaire\n\n* [A propos du projet](#a-propos-du-projet)\n* [Technologies](#technologies)\n* [Installation](#installation)\n* [Prérequis](#prérequis)\n* [Démarrage](#démarrage)\n* [Utilisation](#utilisation)\n* [Contact](#contact)\n\n\n## A propos du projet\n\nL'objectif du projet est de construire une application web basée sur une architecture [MVC](https://fr.wikipedia.org/wiki/Mod%C3%A8le-vue-contr%C3%B4leur) de location de voitures.\nElle 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.\n\nCelle-ci implémente différents services pour les utilisateurs et les loueurs :\n\n#### Listes des services clients/loueurs\n\nL'utilisateur est le plus souvent une entreprise qui souhaite louer des véhicules:\n* Page d'inscription \n![Status][s-fini]\n* Connexion (non obligatoire pour voir la page d'accueil) \n![Status][s-fini]\n* Page d'accueil qui affiche les différents modèles proposés\n![Status][s-fini]\n* Réduction de 10% si paiement mensuel (à partir d'un mois) \n![Status][s-fini]\n* Connexion obligatoire pour une location\n![Status][s-fini]\n* Sélection d'une intervalle de date \n![Status][s-fini] ![Rôle][s-customer]\n* Possibilité de réaliser un paiement mensuel sans date limite (renouvellement chaque mois)\n![Status][s-fini] ![Rôle][s-customer]\n* Affichage des modèles disponibles à la location selon les dates entrées\n![Status][s-fini] ![Rôle][s-customer]\n* Page de récapitulative d'une location \n![Status][s-fini] ![Rôle][s-customer] ![Rôle][s-renter]\n* Panel de toutes les locations effectuées \n![Status][s-fini] ![Rôle][s-customer] ![Rôle][s-renter]\n* Accès à la facture \n![Status][s-fini] ![Rôle][s-renter]\n* Panel de gestion \n![Status][s-fini] ![Rôle][s-renter]\n* Affichage des revenus, des réservations du mois en cours\n![Status][s-fini] ![Rôle][s-renter]\n* Affichage du pourcentage de véhicules en cours de location \n![Status][s-fini] ![Rôle][s-renter]\n* Affichage du nombre de client \n![Status][s-fini] ![Rôle][s-renter]\n* Tableau des dernières locations\n![Status][s-fini] ![Rôle][s-renter]\n* Page de récapitulative des véhicules avec les statuts de chaque véhicule \n![Status][s-fini] ![Rôle][s-renter]\n* Page de modification d'un véhicule (non loué), avec possibilité de retirer le véhicule du stock \n![Status][s-fini] ![Rôle][s-renter]\n* Formulaire d'ajout d'un nouveau véhicule \n![Status][s-fini] ![Rôle][s-renter]\n* Page de tout les clients \n![Status][s-fini] ![Rôle][s-renter]\n* Calcul des factures pour chaque client du mois courant \n![Status][s-fini] ![Rôle][s-renter]\n\n#### Administrateur\nUn rôle Administrateur est aussi implémenté:\n* Panel d'administration \n![Status][s-fini] ![Rôle][s-admin]\n* Affichage du nombre d'utilisateurs \n![Status][s-fini] ![Rôle][s-admin]\n* tableau de tous les utilisateurs inscrits \n![Status][s-fini] ![Rôle][s-admin]\n* Possibilité de supprimer un compte \n![Status][s-fini] ![Rôle][s-admin]\n* Possibilité de définir un compte utilisateur en compte renter \n![Status][s-fini] ![Rôle][s-admin]\n* Possibilité de définir un compte renter en compte utilisateur \n![Status][s-fini] ![Rôle][s-admin]\n\n#### Sécurité\nL'application repose sur une structure solide qui permet de garantir la sécurité:\n* Authentification sécurisé avec token de connexion\n![Status][s-fini]\n* Mot de passe hashé, avec possibilité de rehasher le mot de passe \n![Status][s-fini]\n* Restrictions d'accès à certaines urls en fonction du rôle \n![Status][s-fini]\n* Données stockés dans une base de données avec accès sécurisé \n![Status][s-fini]\n\n\n### Technologies\nCette application web utilise certaines technologies et frameworks:\n\n##### Front-end\n* [Bootstrap](https://getbootstrap.com)\n* [JQuery](https://jquery.com)\n\n##### Back-end\n* [Symfony 5](https://symfony.com/)\n* [Node.js](https://nodejs.org/en/)\n\nUne liste des dépendances est disponible ci-dessous\n\n\n\u003c!-- Installation --\u003e\n## Installation\n\nVoici comment mettre en place l'application dans votre environnement de développement\n\n### Prérequis\n\n* [PHP \u003e7.2.5](https://www.php.net/downloads)\n\nConfiguration du fichier php.ini:\n```php\nextension=fileinfo\nextension=gd2\nextension=exif\nextension=mysqli\nextension=pdo_mysql\n```\n* [Composer](https://getcomposer.org/download/)\n```sh\nphp -r \"copy('https://getcomposer.org/installer', 'composer-setup.php');\"\nphp -r \"if (hash_file('sha384', 'composer-setup.php') === 'c31c1e292ad7be5f49291169c0ac8f683499edddcfd4e42232982d0fd193004208a58ff6f353fde0012d35fdd72bc394') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;\"\nphp composer-setup.php\nphp -r \"unlink('composer-setup.php');\"\n```\n* [Symfony Cli 5.x](https://symfony.com/download)\n\n### Démarrage\n\n1. Vérifier la configuration de symfony\n```sh\nsymfony check:requirements\n```\n2. Cloner le repos, ou télécharger l'archive correspondante dans votre IDE\n```sh\ncd /carapp\ngit clone https://github.com/julio4/CarApp.git\n```\n3. Installer les dépendances\n```sh\ncomposer install\n```\n4. Démarrer le serveur mySql (exemple: [XAMPP](https://www.apachefriends.org/fr/index.html))\n\n5. Configurer la base de données\n\n##### A partir de notre base \nImporter la base dans mysql avec l'aide du script ```carapp.sql```\n  \n  OU\n  \n##### A partir d'une nouvelle base, importer le schéma avec doctrine:\n  \n   - Configurer la connexion à la base dans le dossier `.env`:\n```php\n@.env:28\nDATABASE_URL='mysql://root:@127.0.0.1:3306/\u003cBASE\u003e' //(par défault:carApp)\n```\n   - Charger le schéma de la base:\n```sh\nphp bin/console doctrine:schema:update --force\n```\n   - Charger des données de base () :\n```sh\n  php bin/console doctrine:fixtures:load\n```\n  \n6. (optionel) Installer les certificats\n```sh\nsymfony server:ca:install\n```\n\n7. (optionel) Charger le cache en avance pour accélérer le site\n```sh\nphp bin/console cache:warmup\n```\n\n8. Démarrer le serveur web\n```sh\nsymfony server:start\n```\n\nL'application est disponible en environnement de développement en local à l'adresse [localhost:8000](https://127.0.0.1:8000/)\n\n- Le compte administrateur de base est accessible avec l'utilisateur `admin` et le mot de passe `password`\n\n- Un compte loueur est accessible avec l'utilisateur `loueur` et le mot de passe `password`\n\n- Trois comptes clients sont accessibles: `Daisi Carignan`,`Ernest Bonenfant`,`Alita Robert` avec le mot de passe `passwordpassword`\n\n### Extensions utilisées\n\nCes extensions sont automatiquement installées en suivant [le guide d'installation](#Installation)\n\n##### Back-end\n* [Twig](https://twig.symfony.com/) : gérer les vues du site grâce à des templates avancées\n* [Doctrine ORM](https://www.doctrine-project.org/projects/orm.html) : gérer les modèles, les entitées et la connexion à la base de données\n* [Webpack Encore](https://packagist.org/packages/symfony/webpack-encore-bundle) : gérer tous les assets front-end, injecte le css, le javascript et les librairies supplémentaires\n* [Symfony/form](https://packagist.org/packages/symfony/form) : gérer la création et le traitement des formulaires\n* [Symfony/maker-bundle](https://packagist.org/packages/symfony/maker-bundle) : créer des classes types rapidement et efficacement\n* [Symfony/security-bundle](https://packagist.org/packages/symfony/security-bundle) : gérer les connections et les rôles de chaque utilisateurs\n* [Symfony/validator](https://packagist.org/packages/symfony/validator) : vérifie les données des formulaires pour correspondre au schéma de la base de données\n* [Symfony/web-profiler-bundle](https://packagist.org/packages/symfony/validator) : barre de débug en environnement de développement\n\n\n##### Front-end\n* [Chart.js](https://www.chartjs.org/) : affichage de graphiques dynamiques\n* [bsCustomFileInput](https://www.npmjs.com/package/bs-custom-file-input) : importation de fichier avec bootstrap\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Utilisation\n\nDocumentation des fonctionnalitées offertes par notre application ! (voir le rapport de projet)[Status][s-fini] \n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[s-url]: (#roadmap)\n[s-a-faire]: https://img.shields.io/static/v1?label=Statut\u0026message=A%20faire\u0026color=red\n[s-en-cours]: https://img.shields.io/static/v1?label=Statut\u0026message=En%20cours\u0026color=orange\n[s-fini]: https://img.shields.io/static/v1?label=Statut\u0026message=Termin%C3%A9e\u0026color=green\n[s-customer]: https://img.shields.io/static/v1?label=Rôle\u0026message=Client\u0026color=yellow\n[s-renter]: https://img.shields.io/static/v1?label=Rôle\u0026message=Loueur\u0026color=purple\n[s-admin]: https://img.shields.io/static/v1?label=Rôle\u0026message=Admin\u0026color=red\n[s-bug]: https://img.shields.io/static/v1?label=Statut\u0026message=Bug\u0026color=purple\n[s-frontend]: https://img.shields.io/static/v1?label=Front-end\u0026message=90%\u0026color=green\n[s-backend]: https://img.shields.io/static/v1?label=Back-end\u0026message=40%\u0026color=orange\n[screenshot]: images/screenshot.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulio4%2Fcarapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulio4%2Fcarapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulio4%2Fcarapp/lists"}