Skip to content

Alyaesub/Ecoride

Repository files navigation

🌱 EcoRide - Application de Covoiturage Écologique

À propos

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.

Technologies

  • 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)

Comptes de test

  • Vous trouverez les log des compte tests dans le dossier Documentation

Installation

# 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

📦 Architecture et Structure du projet

MVC

  • Structure app/ : controllers/, models/, views/, functions/
  • public/ : racine propre avec index.php central
  • Gestion hybride : modèles SQL via PDO (MySQL) et modèle Avis (MongoDB)

Autoload

  • Autoload via Composer (vendor/, composer.json, dump-autoload)
  • Chargement automatique des classes avec require 'vendor/autoload.php'

Débogage

  • Whoops installé et activé (index.php) pour la gestion des erreurs

Vue & Layout

  • Fonction render() (dans functions/view.php) pour charger dynamiquement les pages
  • Layout unique (layout.php) avec html, head, body centralisés et dynamiques

🔗 Ressources

📚 Documentation technique

Configuration

.env

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

config/config.php

  • Charge .env
  • Active le mode DEBUG
  • Définit la constante APP_ENV
  • Gère l’absence de fichier de config

.htaccess

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

Connexion à la base

use App\Models\ConnexionDb;

$pdo = ConnexionDb::getPdo();
  • Connexion centralisée via ConnexionDb
  • Requêtes prêtes à l’emploi avec PDO

✅ Tests unitaires

Le projet inclut une configuration minimale de tests unitaires avec PHPUnit.

Mise en place

  • 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)

Déploiement

Hébergement O2Switch

  • 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).

Étapes de déploiement

  1. Préparer le projet

    • Vérifier que .env contient les identifiants de la base de données de production (MySQL + MongoDB Atlas).
    • Vérifier que APP_ENV = prod et DEBUG = false.
  2. 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.
  3. Configurer la base de données

    • Importer les fichiers SQL présents dans /database/sql dans phpMyAdmin (O2Switch).
    • Vérifier les accès utilisateurs MySQL.
  4. Vérifier la configuration Apache

    • .htaccess redirige toutes les requêtes vers public/index.php.
    • Protection des fichiers sensibles activée.

Liens utiles

Bonnes pratiques

  • 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published