EcoRide est une application web de covoiturage écoresponsable. Elle permet aux utilisateurs de proposer, réserver et gérer des trajets partagés afin de réduire leur empreinte carbone.
- Front-end : HTML5, SCSS, JavaScript (ES6+)
- Back-end : PHP 8.4.6, MySQL, MongoDB
- Outils : chart.js, npm: '11.1.0', node: '22.13.0', Composer, Docker version 28.0.1, build 068a01e, Docker Compose version v2.33.1-desktop.1
- PDO (gestion SQL sécurisée)
- MongoDB (Atlas NoSQL pour les avis)
- Vous trouverez les log des compte tests dans le dossier Documentation
# Cloner le projet
git clone https://github.com/Alyaesub/Ecoride.git
# Installer les dépendances front
npm install
# Configurer la base de données
# → Exécuter les scripts SQL dans /database/sql
# → Configurer MongoDB Atlas : renseigner l'URI dans le fichier .env (MONGO_URI)
# → Adapter les infos dans le fichier .env- Structure
app/:controllers/,models/,views/,functions/ public/: racine propre avecindex.phpcentral- Gestion hybride : modèles SQL via PDO (MySQL) et modèle Avis (MongoDB)
- Autoload via Composer (
vendor/,composer.json,dump-autoload) - Chargement automatique des classes avec
require 'vendor/autoload.php'
- Whoops installé et activé (
index.php) pour la gestion des erreurs
- Fonction
render()(dansfunctions/view.php) pour charger dynamiquement les pages - Layout unique (
layout.php) avechtml,head,bodycentralisés et dynamiques
- Maquettes Figma
- Diagramme d’utilisation
- Diagramme de classe
- MCP - Modèle de Conceptualisation du Projet
- Diagramme de séquence
DB_HOST = 127.0.0.1
DB_NAME = ecoride
DB_USER = rootExemple
DB_PASS = rootExemple
APP_ENV = local
DEBUG = true
MONGO_URI = mongodb+srv://user:[email protected]/Ecoride- Séparation des infos sensibles
- Adaptable pour un déploiement en production
- Charge
.env - Active le mode
DEBUG - Définit la constante
APP_ENV - Gère l’absence de fichier de config
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
<FilesMatch "\.(ini|env|sql|log|sh|bak|htaccess)$">
Order allow,deny
Deny from all
</FilesMatch>
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
AddDefaultCharset UTF-8- Redirection vers
index.php(MVC) - Protection des fichiers sensibles
- Personnalisation des erreurs
use App\Models\ConnexionDb;
$pdo = ConnexionDb::getPdo();- Connexion centralisée via
ConnexionDb - Requêtes prêtes à l’emploi avec PDO
Le projet inclut une configuration minimale de tests unitaires avec PHPUnit.
- Installation de PHPUnit via Composer :
composer require --dev phpunit/phpunit
- Lancement des tests :
./vendor/bin/phpunit
- Resultats attendu : Connexion Db ✔ Connexion db retourne un p d o User ✔ Create user OK (2 tests, 2 assertions)
- L'application est déployée sur O2Switch.
- PHP 8.3+ et MySQL sont nativement supportés par l’hébergement.
- Déploiement via FTP ou Git (branche principale).
-
Préparer le projet
- Vérifier que
.envcontient les identifiants de la base de données de production (MySQL + MongoDB Atlas). - Vérifier que
APP_ENV = prodetDEBUG = false.
- Vérifier que
-
Transférer les fichiers
- Envoyer les fichiers du projet dans le répertoire
www/via FTP ou Git. public/doit être utilisé comme racine du site.
- Envoyer les fichiers du projet dans le répertoire
-
Configurer la base de données
- Importer les fichiers SQL présents dans
/database/sqldans phpMyAdmin (O2Switch). - Vérifier les accès utilisateurs MySQL.
- Importer les fichiers SQL présents dans
-
Vérifier la configuration Apache
.htaccessredirige toutes les requêtes verspublic/index.php.- Protection des fichiers sensibles activée.
- Configuration centralisée et sécurisée
- Séparation environnement local / prod
- Connexion BDD fiable via PDO
- Architecture MVC propre et maintenable
- Sécurisation via tokens CSRF sur tous les formulaires
- Gestion complète des crédits (transactions en attente, redistribution, remboursements)
- Validation des avis par les employés avant publication (MongoDB)
- Gestion des comptes suspendus (utilisateurs et employés)
- Projet prêt pour la mise en ligne