EcoRide est une application web de covoiturage pensée pour promouvoir une mobilité économique et écologique. Conçue pour offrir une expérience fluide à ses utilisateurs, la plateforme permet de rechercher, proposer et réserver des trajets en voiture tout en valorisant les trajets réalisés avec des véhicules électriques. L'application intègre des fonctionnalités telles que l'authentification sécurisée, un système de réservation avec gestion des crédits, des filtres dynamiques, une modération des avis, ainsi qu'un tableau de bord administrateur.
- Front-end : HTML5 / CSS3 / Javascript avec Bootstrap
- Back-end : PHP >= 8.1 + avec le framework Symfony
- Gestion des dépendances : Composer
- Base de données relationnelle : MySQL
- Base de données NoSQL : MongoDB
- Déploiement local : Symfony CLI
- Contrôle de version : Git
Extensions utiles pour VS Code :
- PHP Intelephense
- PHP Getters & Setters
- Twig Language 2
- YAML
- dotenv
- SonarQube
- Cloner le dépôt
git clone https://github.com/<ton-utilisateur>/Ecoride_A.git
cd Ecoride_ARemplace par ton nom d'utilisateur GitHub ou modifie le lien avec l'URL réelle du dépôt.
- Installer les dépendances PHP avec Composer
composer install- Configurer les variables d'environnement Duplique le fichier .env :
cp .env .env.localPuis configure les variables suivantes dans .env.local selon ton environnement :
DATABASE_URL="mysql://user:password@127.0.0.1:3306/ecoride"
MONGODB_URL="mongodb+srv://<username>:<password>@<cluster>.mongodb.net/ecoride"
APP_ENV=dev
APP_SECRET=your_app_secret
MAILER_DSN=smtp://login:password@mailtrap.io- Créer la base de données MySQL et lancer les migrations
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate- Charger les données de test(optionnel)
php bin/console doctrine:fixtures:loadOu, si tu veux exécuter les fichiers SQL manuellement :
mysql -u <user> -p ecoride < data.sqlLancer le serveur Symfony avec la commande symfony server:start
Puis accède à l'application via http://localhost:8000
| Dossiers | Description |
|---|---|
| public/ | Fichiers accessibles publiquement (CSS, images, index.php...) |
| src/ | Code source PHP (contrôleurs, entités, repository...) |
| templates/ | Vues Twig |
| migrations/ | Fichiers de migration Doctrine |
| .env/ | Fichier d'environnement |
| composer.json | Dépendances PHP |
| README.md | Documentation projet |
Résumé des User Stories / fonctionnalités implémentées :
- Recherche d'itinéraires et filtres dynamiques
- Réservation avec gestion des crédits
- Création d'un compte passager ou chauffeur
- Espace utilisateur avec historique et préférences
- Gestion d'avis
- Tableau de bord administrateur (statistiques, gestion des comptes)
- master : branche principale contenant les versions stables et déployées en production.
- dev : branche de développement intégrant les fonctionnalités testées, en attente de déploiement.
- feature/nom-de-la-fonctionnalité : branche créée pour chaque nouvelle fonctionnalité.
- fix/nom-du-bug : branche dédiée à la correction d'un bug spécifique.
- Création d'une nouvelle fonctionnalité : branche
feature/...à partir dedev. - Développement local et commits fréquents : (
feat:,fix:...). - Tests manuels.
- Merge vers
devune fois la fonctionnalité testée et validée. - Merge de
devversmasteruniquement lors d'un déploiement.
- Authentification sécurisée avec mot de passe hashé (bcrypt)
- Protection CSRD (Symfony)
- Requêtes sécurisées avec Doctrine (Anti-SQLi)
- Validation côté serveur des formulaires
- RGPD : mentions légales / gestion des données / https
Test manuels :
- création et connexion utilisateur
- réservation avec gestion de crédits
- démarrer/arrêter/valider un trajet
- affichage conditionnel selon les rôles
- modération des avis
- annulation d'un covoiturage
Des tests automatisés vont être ajoutés
L'application EcoRide est déployée sur la plateforme Heroku
- Création de l'application Heroku
heroku login
heroku create ecoride-app-
Définition du Procfile
web: heroku-php-apache2 public/ -
Configuration des variables d'environnement
heroku config:set APP_ENV=prod
heroku config:set APP_SECRET=your_app_secret
heroku config:set MAILER_DSN=smtp://user:pass@mailtrap.io
heroku config:set MONGODB_URL="mongodb+srv://..."- Connexion à la base MySQL via JawsDB
heroku addons:create jawsdb:kitefin
heroku config:set DATABASE_URL=$(heroku config:get JAWSDB_URL)-
Exécution des migrations Doctrine
php bin/console doctrine:migrations:migrate -
Déploiement du code
git push heroku master
- HTTPS activé automatiquement (Let's Encrypt via Heroku)
- Redirection forcée vers l'URL sécurisée https://ecoride-app.fr
- Variables sensibles stockées en dehors du code source
- Auncun fichier
.envversionné grâce au.gitignore
Le nom de domaine ecoride-app.fr a été acheté chez Gandi et configuré pour pointer vers Heroku via :
- un enregistrement CNAME
- un enregistrement ALIAS
Toutes les requêtes sont redirigées vers l'URL https://ecoride-app.fr.
Le fichier schema.sql contient le script de création des tables nécessaires au fonctionnement de l'application.
Tables créées : user, vehicule, trajet, reservation, avis, suspension, transaction
Commande pour exécuter :
mysql -u root -p ecoride < schema.sqlLe fichier data.sql contient un jeu de données permettant de tester l'application. Il comprend notamment :
- des utilisateurs avec différents rôles (admin, employé, utilisateur)
- des véhicules et trajets (écologiques ou non)
- des réservations à venir et terminées
- des avis modérés (validés, refusés, en attente)
- une suspension
- des transactions détaillées
Commande pour insérer les données :
mysql -u root -p ecoride < data.sqlIl est possible d'adapter les identifiants, mot de passe, crédits et autre selon vos besoins.
Les identifiants de test sont disponibles dans le Manuel d'utilisation.