Projet commun aux modules Algorithmique et développement web (M2202), Intégration web (M2206) sur le développement d'un site web intéractif avec une mise en page soignée.
Ce projet consiste à faire un site web dynamique dans lequel les étudiants peuvent poster des messages sur les différentes séances de leur formation. On peut s'inscrire, ajouter des messages et réagir à d'autres messages.
Vous devrez donc utiliser HTML, CSS, JavaScript, PHP, jQuery et SQL (base de données).
Le but de ce projet est de réaliser une plateforme sur laquelle les étudiants peuvent poster des messages sur leurs cours. Par exemple, on peut choisir le TD de réseaux du lundi 8 février et demander quel est le lien Zoom, quelle est la salle, y a-t-il un devoir à rendre, qu'est-ce qu'une connexion STK chiffrée à tunnels convolués ?
Le fonctionnement du site web peut ressembler à un serveur Discord sur lequel il y aurait un salon pour chaque séance, avec une navigation facile entre les différents salons.
Dans la suite, nous présentons les différentes pages du site avec leurs fonctionnalités.
La page d'accueil doit afficher les différentes séances de cours triées par ordre chronologique. Il doit y avoir au moins 10 séances. Pour chaque séance, on voit le nom, la date, l'enseignant et le nombre de messages. La couleur du conteneur permet de reconnaître le module, comme sur votre emploi du temps.
Un menu permet de choisir un module (par exemple, M2201 Culture scientifique) pour voir uniquement les séances de ce module. Ces séances filtrées peuvent être affichées sur la même page d'accueil (index.php) ou sur une autre page (par exemple, module.php) qui affiche n'importe quel module.
Si l'utilisateur n'est pas connecté, il voit dans ce même menu un lien pour s'inscrire ou se connecter. S'il est connecté, alors il voit son avatar, son nom d'utilisateur et un lien pour se déconnecter.
Quand l'utilisateur clique sur une séance de cours il est renvoyé vers la page de la séance.
Cette page contient un formulaire pour enregistrer un nouvel utilisateur.
Dans le formulaire d'inscription, demandez le nom, l'adresse e-mail étudiante, un mot de passe et un avatar. L'avatar est à choisir parmi une liste d'images ajoutées par vous-mêmes.
Validez ces données avant d'inscrire l'utilisateur : le mot de passe doit avoir une longueur minimum, l'adresse email doit être unique, etc. Une fois l'utilisateur s'est inscrit, ne lui demandez pas de se connecter, mais faites-le automatiquement et renvoyez-le vers la page d'accueil.
Si les données dans le formulaire de connexion ne sont pas correctes, renvoyez l'utilisateur vers le formulaire et affichez un message expliquant le ou les erreurs.
Cette page contient un formulaire pour se connecter. Il suffit de renseigner son adresse email et son mot de passe.
Il faut valider que l'adresse email est enregistrée dans la base de données et que le mot de passe est correct. Si tout est bon, renvoyez l'utilisateur vers la page d'accueil. Sinon, renvoyez-le vers le formulaire avec un message d'erreur adapté.
La page d'une séance affiche les données de la séance, la liste de messages par ordre chronologique et, seulement si l'utilisateur est connecté, un formulaire pour poster un nouveau message. Les informations de la séance sont :
Sur chaque message il faut afficher :
Toutes ces pages doivent avoir une structure et un style cohérent, avec des entêtes et des pieds de page identiques.
Le projet est à réaliser en binôme.
Lors de la dernière séance de TP du module Intégration web, vous présenterez votre travail à Mme Hallabia. La date de rendu est ce même jour, le , donc vous aurez du temps pour faire de petites modifications pour tenir compte de ses remarques.
Chaque heure de retard vous enlèvera 5% de la note de ce projet.
Vous devez rendre votre projet par deux voies :
Vous devrez rendre une archive appelée m2202-projet.zip ou m2202-projet.rar. Vous déposerez cette archive sur la page AMeTICE du module Algorithmique et développement web S2.
L'archive doit contenir :
En même temps, vous déposerez aussi votre site web sur le serveur web de l'IUT, dans un répertoire appelé m2202/projet/. La page d'accueil doit donc être https://a-pedagoarles-mmi.aix.univ-amu.fr/identifiant/m2202/projet/index.php
On corrigera votre site web à partir de cette URL, donc il doit marcher correctement.
Coté serveur (PHP et bases de données), votre site web doit implémenter au moins les fonctionnalités suivantes :
include()
.
La note du projet sera calculée avec ce barème :
Partie | Barème |
---|---|
Qualité du code PHP. Évitez les répétitions dans le code, utilisez de fonctions et de tableaux pour simplifier le code, indentez proprement, utilisez des noms de variables pertinents, expliquez votre code avec de commentaires. | 6 |
Conception de la base de données. Liez correctement les différents éléments du site web : séances, utilisateurs et messages. | 2 |
Requêtes SQL. Bien préparées et formatées, comme vu en cours. | 2 |
Validation des formulaires. Tous les cas doivent être traités. | 4 |
Créativité. En plus des fonctionnalités de base, allez plus loin. Vous pouvez vous inspirer des idées dans la section Autres fonctionnalités de ce document. | 6 |
Coté client (HTML/CSS/JavaScript), votre site web devra avoir les fonctionnalités suivantes :
En plus des points accordés pour les éléments utilisés, il y aura des points supplémentaires pour la présentation générale du site (lisibilité et esthétique).
Partie | Barème |
---|---|
Qualité du code HTML (lisibilité du code, balises utilisés) | 3 |
Qualité du code CSS | 3 |
Événements avec JQuery/Javascript : interaction avec l'utilisateur (boutons, boîtes de dialogue, événements) | 3 |
Qualité de l'apparence visuelle, ergonomie, animations (diaporama, effets) | 3 |
Tableaux, listes, images | 2 |
Création et validation du formulaire | 2 |
Responsive | 4 |
Le rapport est un support essentiel de votre projet. C'est la base pour l'évaluer, et votre chance pour valoriser tout votre travail.
Sa longueur doit être de 5 à 15 pages et il doit se concentrer sur la partie PHP. Parmi les sections, on doit trouver une introduction, une conclusion avec les points forts et les points faibles et une bibliographie.
Expliquez bien les parties de votre code qui nécessitent des explications, en plus des commentaires dans le code. Vous pouvez accompagner ces explications par des captures d'écran, mais précisez toujours le nom du fichier et le numéro de ligne de chaque partie.
Si vous utilisez une ressource externe, précisez-le avec le plus de détails possible. Si par exemple vous faites la validation d'un formulaire en adaptant le code d'un forum ou d'une vidéo sur YouTube, donnez l'URL exacte et expliquez ce que vous avez apporté.
Les fonctionnalités demandées sont la base pour ce projet. Vous pouvez ajouter de nouvelles fonctionnalités, par exemple :
Les binômes pour les projets, et le liens vers leurs sites web, sont :