Site E-Commerce

Site de vente de déguisements pour animaux

Contexte du projet

Ce projet a été réalisé dans le cadre du module de développement Web dispensé à l’IUT de Montpellier, dans le but de mettre en pratique l’ensemble des compétences acquises durant les séances de TD, notamment sur les technologies web côté serveur (PHP, MySQL), le versionnage avec Git, et le déploiement sur un serveur distant.

L’objectif principal était de développer un site de e-commerce fonctionnel, dont le thème (produits vendus) était laissé à l’appréciation du groupe. Le projet devait être conçu en équipe de trois étudiants, avec une rigueur professionnelle : gestion du code source sur GitLab, déploiement sur un serveur universitaire (webinfo), et soutenance orale basée sur une démonstration technique et des questions sur le code.

Enjeux pédagogiques

Concevoir une application web dynamique en PHP suivant le modèle MVC.
Manipuler une base de données relationnelle (MySQL) pour stocker les utilisateurs et les produits.
Travailler en équipe sur un projet commun en respectant les bonnes pratiques de versionnage via Git.
Apprendre à déployer un site web sur un environnement Linux distant (via SFTP et SSH).
Préparer une soutenance technique sans support visuel, reposant uniquement sur la qualité du code et la capacité à l’expliquer.

Le projet constituait une part importante de la note finale du module, complétée par une évaluation écrite.

Méthodes de travail et résultats obtenus

Phase 1 : Organisation et Planning

Nous avons commencé par établir un plan d'implémentation détaillé en collaboration avec mon tuteur de stage. Cette première phase a consisté à :

  • Définition du thème : Déguisements pour animaux
  • Configuration du dépôt GitLab pour partager et suivre l’avancement du projet
  • Hébergement du site sur le serveur webinfo avec des droits configurés via SSH et SFTP
  • Créer un document de suivi pour le projet

Phase 2 : fonctionnalités développées

  • Une page listant les produits disponibles, avec affichage dynamique des informations depuis une base de données SQL.
  • Une page de détails pour chaque produit, incluant son prix, sa description et un bouton "Ajouter au panier" (non fonctionnel à ce stade, comme demandé).
  • Un système d’administration pour ajouter et modifier les produits directement depuis l’interface Web.

Phase 3 : Réslutats obtenus

Le site est fonctionnel, hébergé et accessible à l’adresse suivante : https://webinfo.iutmontp.univ-montp2.fr/~garciaj/projet-web-deguisements-animaux/web/controleurFrontal.php

interface site
L’image ci-dessus illustre l’interface principale du site web réalisé dans le cadre de ce projet. On y voit la page d’accueil affichant une liste de déguisements pour animaux, avec leur nom, prix et une image représentative. Chaque produit est accompagné d’un bouton permettant de l’ajouter au panier (fonctionnalité prévue mais non activée à ce stade). Ce visuel témoigne du bon fonctionnement de l’affichage dynamique des produits à partir de la base de données, ainsi que de l’interface utilisateur pensée pour être claire et intuitive.

Contribution personnelle

Dans ce projet, j’ai contribué en réalisant différentes parties clés de l’application en allant de la création du compte, jusqu'à la suppression

Inscription / Création de compte

pap inscription

Connexion

pap connexion

Page du compte

pap compte

Cette page révèle une erreur dû à l'historique des commandes, nous avons eu quelques problèmes lors de la conception du backend

Accès administrateurs

pap accès admin

Ici, avec le rôle d'admin sur le site, nous pouvons modifier n'importe quel informations de chaque utilisateurs, de même, supprimer des comptes.

Hachage de mot de passe

Le système de hachage utilisé dans cette classe MotDePasse est conçu pour renforcer la sécurité des mots de passe en combinant plusieurs techniques éprouvées. Avant de hacher le mot de passe, on utilise un poivre (ou pepper) : une chaîne secrète connue uniquement du serveur. Ce poivre est combiné avec le mot de passe en clair à l’aide de la fonction hash_hmac avec l’algorithme SHA-256. Cela permet d’ajouter une couche de sécurité supplémentaire, car même si un attaquant accède à la base de données, il ne pourra pas facilement retrouver le mot de passe sans connaître le poivre.

Le résultat de ce HMAC est ensuite passé à la fonction password_hash, qui utilise un algorithme de hachage adapté (comme bcrypt), avec un sel aléatoire et une fonction de dérivation lente. Cela rend les attaques par force brute ou dictionnaire beaucoup plus difficiles, car chaque tentative est coûteuse en temps de calcul.

Enfin, la vérification se fait en reproduisant exactement le même processus avec le mot de passe fourni, et en comparant le résultat avec le hachage stocké.

Ce système est donc robuste : il combine un secret serveur (le poivre), un hachage sécurisé et lent, et un sel unique à chaque mot de passe. C’est une approche fortement recommandée pour la gestion des mots de passe en production.

Apprentissages réalisés

Développement backend

Utilisation du language PHP, respectant un modèle MVC, gestion de la partie utilisateurs

Développement frontend

Réalisation d'un design cohérent, optimisation pour une navigation intuitive

Adaptabilité

Face aux difficultés techniques rencontrées, j'ai développé ma capacité à trouver rapidement des solutions alternatives et à m'adapter aux contraintes.

Compétences travaillées

Développement web

PHP SQL HTML/CSS

Travail en équipe

Répartition des tâches Collaboration Communication Respect des délais