- 🛒 Projet E-commerce --- Serveur WAMP
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
- Serveur : Apache (WAMP)
- Langage : PHP
- Base de données : MySQL
- Front-end : HTML / CSS / JavaScript
- Git pour cloner le dépôt.
- Ouvrez une invite de commande (CMD) ou PowerShell.
- Naviguez vers le répertoire où vous souhaitez cloner le projet, par exemple :
cd C:\wamp64\www - Clonez le dépôt GitHub du projet :
git clone https://ytrack.learn.ynov.com/git/comaxime/SiteECommercePHP
- Accédez au répertoire du projet cloné :
cd SiteECommercePHP
- 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)
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.
- Rendez-vous sur l'onglet de WAMP puis faite un clic droit sur l'icône WAMP dans la barre des tâches.
- Rendez-vous à nouveau sur WAMP mais cette fois-ci avec clic gauche.
- 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)
- Par défaut la configuration WAMP ne devrait pas nécessiter de modification, mais assurez-vous que le fichier
httpd.conftrouvable dans Apache > httpd.conf contienne bien un bloc avec ces lignes exactes :Vous devez remplacer ${INSTALL_DIR} par l'emplacement utilisé s'il n'est pas dans l'emplacement par défaut de WAMP (<Directory "${INSTALL_DIR}/www/"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>C:/wamp64/www). - 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. - Enfin, pour ajouter un raccourci vers l'adresse, ouvrez le fichier :
C:\Windows\System32\drivers\etc\hostsen tant qu'administrateur et ajouter ceci à la toute fin :# E-Commerce PHP WebApp Local address 127.0.0.1 projet-ecommerce.local
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
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
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
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.
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
Projet sous licence, reportez-vous au fichier LICENCE pour plus d'informations sur les termes de la licence utilisée.
Pour toute demande d'aide ou signalement de bug, veuillez ouvrir un ticket via le système de support du dépôt.