Skip to content

Repository files navigation

🛒 Projet E-commerce --- Serveur WAMP

📑 Index


📌 Présentation

Projet de site e-commerce développé en PHP et MySQL, exécuté sur un environnement WAMP (Windows, Apache, MySQL/MariaDB, PHP).

Fonctionnalités :

  • Catalogue produits
  • Panier utilisateur
  • Gestion clients
  • Back-office administrateur
  • Gestion des stocks
  • Hachage sécurisé des mots de passe
  • Protection contre les injections SQL (prepared statements)
  • URL rewriting pour des URLs propres
  • Système de sessions pour l'authentification
  • Validation côté serveur des formulaires
  • Structure MVC (Model-View-Controller) pour une meilleure organisation du code
  • Utilisation de PDO pour la connexion à la base de données
  • Mise en place d'un système de routing simple pour gérer les différentes pages du site

🧰 Stack technique

  • Serveur : Apache (WAMP)
  • Langage : PHP
  • Base de données : MySQL
  • Front-end : HTML / CSS / JavaScript

⚙️ Installation et configuration

Prérequis

  • Git pour cloner le dépôt.

Clonage du dépôt

  1. Ouvrez une invite de commande (CMD) ou PowerShell.
  2. Naviguez vers le répertoire où vous souhaitez cloner le projet, par exemple :
    cd C:\wamp64\www
  3. Clonez le dépôt GitHub du projet :
    git clone https://ytrack.learn.ynov.com/git/comaxime/SiteECommercePHP
  4. Accédez au répertoire du projet cloné :
    cd SiteECommercePHP

🪟 Mise en place du serveur WAMP sur Windows

Prérequis

  • Un ordinateur sous Windows avec les droits d'administrateur.
  • WAMP Server installé (version 64 bits recommandée).
  • win-acme pour générer des certificats SSL auto-signés. (Optionnel, mais recommandé pour HTTPS)

Informations de base

Pour la compréhension de la configuration WAMP :

  • Le serveur local utilisera le port 80 (HTTP).
  • Quand on parlera de WAMP dans la configuration, on fera référence à WAMPServer dans la barre des tâches de Windows.
    WAMP Tray Icon

Configuration d'APACHE

  1. Rendez-vous sur l'onglet de WAMP puis faite un clic droit sur l'icône WAMP dans la barre des tâches.
  2. Rendez-vous à nouveau sur WAMP mais cette fois-ci avec clic gauche.
  3. Ensuite, assurez-vous que dans Apache > Modules Apache les modules suivants sont bien activés (cochés) :
    • rewrite_module (Pour les URL propres ex : /page/1 au lieu de /public/index.php?page=1)
  4. Par défaut la configuration WAMP ne devrait pas nécessiter de modification, mais assurez-vous que le fichier httpd.conf trouvable dans Apache > httpd.conf contienne bien un bloc avec ces lignes exactes :
    <Directory "${INSTALL_DIR}/www/">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    Vous devez remplacer ${INSTALL_DIR} par l'emplacement utilisé s'il n'est pas dans l'emplacement par défaut de WAMP (C:/wamp64/www).
  5. Rendez vous dans Apache > httpd-vhosts.conf et ajouter :
    ###########################################
    # VirtualHost – Projet Site E-Commerce
    ###########################################
    #VirtualHost pour le site e-commerce (dev).
    <VirtualHost *:80>
        ServerName monprojet.local
        DocumentRoot "c:/wamp64/www/monprojet/public" #Remplacer par le chemin vers le dossier public du projet
        <Directory "c:/wamp64/www/monprojet/public/"> #Remplacer par le chemin vers le dossier public du projet sans oublier le "/" à la fin
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    ⚠️ Les chemins doivent contenir des "/", pas des "\". Pensez aussi par remplacer le nom du disque ("C:") par une lettre en minuscule.
  6. Enfin, pour ajouter un raccourci vers l'adresse, ouvrez le fichier : C:\Windows\System32\drivers\etc\hosts en tant qu'administrateur et ajouter ceci à la toute fin :
    # E-Commerce PHP WebApp Local address
    127.0.0.1 projet-ecommerce.local

📁 Structure du projet

Exemple d'organisation possible :

/project-root
│
├── app/               # Code source de l'application
│   ├── admin_pages/   # Pages d'administration (back-office)
│   ├── api/           # Points d'API RESTful
│   ├── pages/         # Pages du site (front-office)
│   ├── partials/      # Parties réutilisables (header, footer, etc.)
│   └── views/         # Vues HTML/PHP (templates)
│
├── config/            # Configuration du projet, base de données, fonctions utilitaires, etc.
│   ├── config.php     # Configuration principale
│   ├── db.php         # Connexion à la base de données
│   ├── dbInit.php     # Initialisation de la base de données
│   ├── dbStruct.php   # Structure de la base de données
│   └── ...
│
├── public/            # Dossier accessible publiquement
│   ├── index.php      # Point d'entrée principal (routage)
│   ├── .htaccess      # Configuration Apache (URL rewriting -> pour URLs propres)
│   └── assets/        # Ressources publiques
│       ├── css/       # Feuilles de style CSS
│       ├── js/        # Fichiers JavaScript
│       └── images/    # Images
│
├── images/            # Images du README
├── .gitignore
└── README.md

🚀 Lancement du projet

Une fois le serveur WAMP configuré, pour lancer le projet il suffit de lancer WAMP et d'accéder à l'URL configurée dans le navigateur, par exemple : http://monprojet.local


🔐 Comptes de test

Pour avoir accès aux exemples de tests, il faut mettre se rendre dans /config/config.php et mettre à jour cette variable :

// Mettre à true pour afficher les données de debug et les comptes de test
$show_debug_and_add_debug_data = true; 

Exemples :

Admin : - Username : admin - Mot de passe : 1234

Utilisateur : - Email : john.doe@example.com - Mot de passe : 1234


📦 Déploiement

Pour une mise en production :

  • Utiliser un serveur Linux (LAMP) ou hébergement dédié.
  • Activer HTTPS.
  • Sécuriser l'accès base de données.
  • Désactiver l'affichage d'erreurs PHP.

🗺️ Roadmap

Fonctionnalités futures possibles :

  • Paiement en ligne
  • Factures PDF
  • Système de coupons
  • Tableau de bord statistiques
  • Notifications email
  • Modification du thème / design
  • Amélioration de la sécurité (XSS, CSRF, etc.)
  • Optimisation des performances (caching, etc.)
  • Internationalisation (i18n) pour support multilingue
  • Intégration d'une API tierce (ex : Stripe pour paiement, etc.)
  • Refactorisation du code pour une meilleure maintenabilité (ex : MVC, etc.)
  • Tests unitaires et d'intégration automatisée
  • Déploiement continu (CI/CD) avec GitHub Actions ou autre outil similaire

📄 Licence

Projet sous licence, reportez-vous au fichier LICENCE pour plus d'informations sur les termes de la licence utilisée.


👤 Auteurs

  • Maxime Cordonnier (CookieG) - GitHub
  • Timothé Clément (Ink_Ouroboros) - GitHub

🆘 Support

Pour toute demande d'aide ou signalement de bug, veuillez ouvrir un ticket via le système de support du dépôt.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages