Telechargé par testiuthack

TP2-3-4

publicité
TP2-3-4 :
Modélisation et implémentation d’une base de données pour un site internet
Les développeurs de l’entreprise « CodeAMoitié » doivent concevoir et mettre en ligne le site internet
de leur nouveau client. Ce site est un forum qui réunit différentes communautés (professionnels,
chercheurs, autodidactes, développeurs web, mobile, logiciel, etc.) autour d’un thème : les bases de
données SQL, de leur conception jusqu’à leur usage. Pour se faire, l’entreprise a déjà entièrement
conçu la vue du site et les actions que l’on peut réaliser dessus.
Comme vous devez certainement le savoir, l’affichage d’un site dépend également de la manière dont
il a été pensé et des données qu’il va y avoir. Cependant, n’ayant aucune connaissance dans ce
domaine, l’entreprise a décidé de sous-traiter cette partie en faisant appel à des développeurs dévoués
et dynamiques. L’objectif est donc de concevoir et développer la couche « modèle » du site web en
suivant les recommandations de l’entreprise.
Pour bien comprendre, le forum gère des membres qui peuvent rédiger des sujets (avec un titre, une
description et une image) en lien avec le thème du site. Ils peuvent réagir sur les sujets proposés en
répondant par messages directement. Si un utilisateur souhaite garder un sujet en mémoire, il a la
possibilité de l’ajouter dans ses favoris.
Afin de retrouver les sujets plus facilement, ils sont rangés par mots-clés, appelés des tags. Bien
évidemment, les tags peuvent être réutilisés pour d’autres sujets qui traitent de la même chose.
Lorsqu’un membre s’inscrit, il précise son login, son mot de passe, sa date de naissance, son niveau en
SQL (débutant, intermédiaire, expert…), ses compétences (web, mobile, serveur…) et un message de
description qui servira de présentation pour les autres.
En parallèle de tout ce qui a été présenté, il peut également créer son propre groupe ou en intégrer
d’autres. Le principe des groupes est de représenter les différentes communautés afin de favoriser les
échanges entre les membres. Dans le cas où il souhaite faire partie d’un groupe, il ne peut que faire
une demande via l’envoi d’une invitation et attendre la réponse. Dans l’autre cas, c’est lui qui gère le
groupe et donc décide des membres qui rentrent en validant leur invitation.
Ah oui ! Le client a précisé une chose importante pour lui à la fin de la réunion, c’est qu’à chaque fois
que l’utilisateur effectue une action sur le site, il est récompensé (ou non) par des points. Le client
souhaite implémenter plus tard un système de récompenses qui valorisent les membres impliqués.
Etape 1 : Récupérer le projet
Le serveur que nous utiliserons dans ce projet se trouve à cette adresse : os-vps418.infomaniak.ch.
Pour se connecter en FTP (pour modifier les fichiers), référez-vous à l’encadrant qui vous donnera votre
login et votre mot de passe. Gardez précieusement ces informations car elles pourraient bien vous
servir lors des prochaines séances… Vous pouvez soit utiliser l’explorateur Windows, en ajoutant un
emplacement réseau au niveau des disques C, D, E, etc., soit lancer un client FTP directement sur votre
machine (ex : FileZilla, WinSCP…). N’oubliez pas que si vous devez préciser un port lors de la connexion
FTP : c’est le port 1182.
Votre site est maintenant accessible à cette url : os-vps418.infomaniak.ch:1180/<login>/.
Si, complètement par hasard, vous avez besoin d’accéder à une base de données, vous la trouverez
ici : os-vps418.infomaniak.ch:1180/phpmyadmin/, avec les mêmes login et mot de passe donnés par
votre encadrant.
Etape 2 : Modélisation & Compte rendu
Le modèle relationnel du site et son compte rendu font partis des livrables du projet. Comme vous
êtes habitués à travailler dans le domaine des bases de données, il est inutile de vous rappeler l’intérêt
du compte rendu.
Etape 3 : Développement du site
Appuyez-vous sur la documentation du code pour développer le site. La découverte des fonctions
attendues peut vous amener à revoir votre modèle relationnel. N’hésitez pas à le modifier !
Rappel :
•
•
•
Exclusivement en "PHP", vous coderez.
La bibliothèque "mysqli", vous utiliserez (cf. « Cours 6 – Application Web »).
Quelques astuces,
- Créer un tableau,
$tab = array(1, 2);
-
Ajouter une case dans un tableau,
$tab[] = 3; // $tab vaut [1, 2, 3]
-
Créer un objet,
$obj = array("cle1" => "valeur1", "cle2" => "valeur2");
-
Pour l’utiliser,
echo $obj["cle2"]; // écrit « valeur2 »
-
Pour afficher un tableau ou un objet (pour debugger),
var_dump(array(1, 2)); // écrit « array(2){[0]=>int(1)[1]=>int(2)} »
-
Pour stopper l’exécution au milieu du code (pour debugger),
exit;
Vous trouverez un fichier .zip à la suite de l’énoncé de TP. Il contient les sources à compléter.
Téléchargement