Projet web transactionnel

Le lien du projet GitHub : https://github.com/AlexisBallan/gameblexis


Résumé du projet :

Gameblexis est un projet réalisé dans le cadre d’un cours au Cégep de Matane, le but de ce projet était de créer un site web ou l’utilisateur peut naviguer dans différentes pages du site, il peut aussi se connecter et acheter des jeux. L’utilisateur peut modifier ses données, son nom, sa description et sa photo de profil. Les données des utilisateurs, notamment les mots de passe, sont chiffrées dans la base de données.

L’administrateur a accès à une page lui permettant de créer, supprimer ou modifier des jeux.

Le thème du site est le suivant : vente de jeux.


Images du site :

Quand l’utilisateur n’est pas connecté
Quand un utilisateur lambda est connecté
Quand un administrateur est connecté
La vue d’un utilisateur lambda
La vue d’un administrateur
Les détails d’un jeu

Détails techniques sur le site :

Gameblexis a été mis à jour en janvier-février 2023 afin de présenter un projet professionnel.

D’un point de vue sécurisation :

  • Donnée utilisateur, les informations de l’utilisateur (mot de passe, email etc.) sont chiffrés dans la base de données avec le standard SHA-256 rajouter au sel du site web.
  • L’accès à la base de données et sécurisé via des modèles, des php_filters, des bindValue afin de contrer les injections SQL ou autre.
  • Les images des utilisateurs sont vérifié avant d’être uploadé sur le serveur, seul certains formats d’images (png, jpg, jpeg) sont acceptées et leur contenu est aussi filtré (pour éviter les doubles extension).
  • L’accès à la page administrateur est bloqué pour les non-administrateurs.

Les transactions se font avec PayPal (actuellement seul le mode bac à sable est actif sur le site web afin de ne pas laisser des personnes acheter des articles fictifs). Grâce à l’IPN les transactions sont enregistrées dans la base de données de l’utilisateur pour savoir qui a acheté quels jeux.

Plusieurs techniques on été utilisées sur le site web (Ajax, HTTP Request GET/POST).