Projet RPlace

L'objectif du projet était de mettre en pratique les connaissances et compétences en developpement et gestion de base de données en pratique. Dans le cadre de ma formation j'ai du recréer le site de l'evenement RPlace proposé par reddit.


Introduction

Dans le cadre de ce projet, j'ai développé un site Web dynamique qui reproduit le fonctionnement de l'application Place du site Reddit. L'objectif était de permettre aux utilisateurs de s'identifier, de visualiser une grille de dessin et de placer des pixels de couleur sur cette grille.


Objectifs:

Les principaux objectifs de ce projet étaient les suivants :
Reproduire le fonctionnement de l'application Place du site Reddit
Permettre aux utilisateurs de s'inscrire et de se connecter
Afficher une grille de dessin à l'utilisateur
Autoriser les utilisateurs à placer des pixels de couleur sur la grille
Stocker les informations des utilisateurs et les pixels dans une base de données


Description du projet:

Le projet consistait à développer un site Web utilisant les technologies HTML, CSS, SQL, PHP et JavaScript. L'accent était mis sur les fonctionnalités plutôt que sur l'aspect graphique, et nous devions démontrer la faisabilité du projet en mettant en place un prototype de concept.
L'application était composée de plusieurs pages, dont une page d'accueil avec un formulaire d'authentification permettant aux utilisateurs de se connecter ou de créer un compte. Une fois connectés, les utilisateurs étaient redirigés vers la page du canevas, où ils pouvaient visualiser la grille de dessin et placer des pixels en spécifiant les coordonnées et la couleur souhaitées.
Les données des utilisateurs et des pixels étaient stockées dans une base de données SQLite, et la dernière date de modification était enregistrée pour empêcher les modifications trop fréquentes.




Fonctionnalités du projet:

Les fonctionnalités implémentées dans ce projet étaient les suivantes :
Initialisation du projet :
Création de la base de données avec les tables Utilisateur et Pixel

Création d'un utilisateur "admin" par défaut
Remplissage de la table Pixel avec une grille par défaut de 16x16 pixels de couleur blanche
Page d'authentification :
Formulaire d'identification avec identifiant et mot de passe
Vérification des informations dans la base de données Utilisateur
Redirection vers la page du canevas en cas de succès
Possibilité de créer un compte si l'utilisateur n'en possède pas
Page d'affichage du canevas :
Récupération des pixels définis dans la table Pixel
Affichage des pixels sous forme de grille à l'aide de balises SVG
Bouton de déconnexion

Modification d'un pixel :
Formulaire permettant à l'utilisateur de spécifier les coordonnées (x, y) et la couleur souhaitée
Modification de l'élément correspondant dans la table Pixel
Rechargement du canevas

Empêchement des modifications fréquentes :
Enregistrement de la date de la dernière modification
Empêchement des modifications si la dernière modification date de moins d'une minute



L'auto-évaluation de mon travail:

Ce projet m'a offert l'opportunité de m'initier au langage de programmation web, plus précisément axé sur le backend, domaine qui suscite particulièrement mon intérêt aujourd'hui. Dans l'ensemble, le projet a été une réussite, bien que certains bugs puissent survenir lors de son utilisation. Cependant, nous avons répondu à tous les critères du cahier des charges, ce qui me permet de considérer ce projet comme une réussite.