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

Watchers

Forks

Releases

Packages

Contributors

Languages