Travail Synthèse – Hiver 2022
Cahier des charges
Date de publication Web le 17 18 avril 2022 avant 23h59
(sauf indication contraire)
Contexte
Vous êtes récemment gradué de Polytechnique et vous êtes engagé dans une startup pour accroitre une nouvelle compagnie en développement. Pour rendre l’image de ce dernier plus visible sur le marché du travail, vous êtes responsable de concevoir un site web permettant de prendre faire des réservations ou de rendez-vous avec vos clients (dans ce contexte, participants de Polytechnique). Le thème choisit sera entièrement à votre discrétion tant et aussi longtemps qu’il ne contient pas de propos choquants/controversants. De plus, on exige que toutes vos pages soient valides XHTML 1.0 stricte et feuille de style en cascade (CSS) de niveau 2. Finalement, toutes les pages web doivent être générées dynamiquement en PHP en interaction avec une base de données permettant la gestion des réservations en fonction de votre thème par des usagers inscrits avec leur adresse courriel se terminant par
« @polymtl.ca ». Cette base de données appelée « TS2_20221 » est déjà conçue et fonctionnelle sur cogito.meca.polymtl.ca
1. Votre site Web
Une fois votre équipe enregistrée auprès du site Moodle, vous obtenez un compte tsXXX dans lequel vous allez mettre en ligne sur cogito.meca.polymtl.ca votre site Web. Vous devez également déposer un fichier .zip des fichiers de votre TS2 dans la boîte de dépôt du site Moodle du cours (section 13), ceci permettra de vous attribuer une note lors de l’évaluation. Il est inutile d’envoyer par courriel vos fichiers à votre enseignant si vous n’arrivez pas à mettre en ligne vos fichiers.
Votre URL officiel : http://cogito.meca.polymtl.ca/~tsXXX
Page Accueil
Cette page doit présenter votre site Web aux visiteurs en indiquant : le nom du site; un logo original; les noms et prénoms des auteurs du site; l’adresse électronique des auteurs, ainsi que toutes autres informations pertinentes. Il est recommandé de NE PAS indiquer vos numéros de matricule. Finalement, cette page doit inclure un avertissement voulant que ce site soit un projet dans un cours qui renvoie vers le site Moodle du MEC1315.
Page Règlements
Cette page doit présenter tous les règlements d’enregistrement et de réservation de votre système de gestion des réservations. Des informations pertinentes telles que des captures d’écran, des tableaux, des listes devraient être présentes sur cette page, afin d’illustrer votre maîtrise du langage XHTML 1.0 et du CSS2.
Page Disponibilités/Activités
Cette page doit permettre d’afficher à un visiteur de consulter les séances de réservations des activités (l’usager ne doit pas se logger). À vous de concevoir une interaction fluide et facile pour le visiteur, ainsi que la présentation des informations. Par exemple, un tableau résumant les périodes réservées et son usager pour une semaine particulière, ou afficher les réservations effectuées par les individus. Plus cette page est flexible/fluide, plus vous aurez de points. Un exemple de code est fournit au départ pour vous donner une inspiration. Se contenter uniquement du squelette ne fournira pas beaucoup de pointages.
Page S’enregistrer (page fournit modification mineure requise)
Cette page doit permettre à un nouvel usager de s’enregistrer en utilisant son adresse courriel comme login. Votre page doit valider que cette adresse se termine bien par « @polymtl.ca », sinon on refuse l’enregistrement. Un mot de passe doit être choisi par l’usager, ainsi que d’autres informations tels votre nom et prenom. Votre site doit refuser l’enregistrement si le login existe déjà dans la base de données par équipe de projet (i.e : L’équipe 101 peut avoir [email protected] d’enregistré et l’équipe 102 peut avoir [email protected] et lors de l’affichage de l’équipe seul la personne enregistré via votre site est affiché, on ne verra pas deux fois personneA pour le même filtre champs tsxxx). Finalement, votre site doit envoyer un courriel de bienvenue à chaque nouvel usager, lors de son enregistrement dans la base de données. Un lien doit permettre un retour vers la page d’accueil.
Page Réservation
Cette page doit tout d’abord demander le login et mot de passe au visiteur, valider que ces informations soient les mêmes que celles enregistrées dans la base de données, sinon on doit les redemander (en fonction de votre équipe, i.e. L’équipe 101 ne doit pas permettre à un enregistré de l’équipe 102 d’accéder par l’intermédiaire du champs tsxxx). Une fois la validation effectuée avec succès, il faut demander les informations sur la réservation, par exemple le choix de l’intituler à réserver. À vous de concevoir un site fluide pour l’utilisateur et facile à utiliser.
Une fois la validation de l’authentification de l’usager, il faut demander les informations sur la réservation, la semaine, et tout autre information pertinentes.
2. La base de données relationnelle – TS2_20221
Le système de gestion des réservations est basé sur la base de données MariaDB appelée TS2_20221 pour
« Travail Synthèse 2 Session 2022 Trimestre 1(Hiver) ». Le diagramme relationnel de TS2_20221 est présenté à la figure 1. Cette base de données est composée de trois tables, soient la table des Personnes, la table des Choix et la table des Reservations.
TS2_20221 est accessible sur cogito.meca.polymtl.ca avec le compte MariaDB « H2022 » et son mot de passe « MEC1315 ». Toutes les équipes utiliseront la même base de données TS2_20221 avec le même compte MariaDB et le même mot de passe(si vous utilisez TSXXX, votre site ne sera plus fonctionnelle à la remise et vous aurez 0 dans la partie correspondant). Ce compte MariaDB ne peut effectuer que des requêtes SELECT ou INSERT. Les commandes Update/DELETE des enregistrements sont disponible temporairement jusqu’à quelques jours de la remise. Les champs des différentes tables sont décrits ci- dessous.
Figure 1: Diagramme relationnel de TS2_20221
Personnes
La table Personnes permettra d’enregistrer tous les nouveaux usagers de votre site web. Pour chaque nouveau utilisateur, une identification (idPersonnes), lui sera assigné automatiquement. Son nom, prenom, mot de passe (mdp) et courriel devra être insérer dans la base de données. Le champ tsxxx agira comme filtre pour que seul les utilisateurs ayant passez sur votre site s’affichent. I.E. « Timothée Duruisseau » s’enregistrant sur le ts776, ne doit pas apparaître sur un ts777.
Il est possible d’ajouter un enregistrement à cette table avec la requête suivante :
Choix
La table choix est vide par défault, et vous avez la responsabilité de peupler cette table. Le champ intitule offrent des options aux usagers du site web pour qu’ils puissent faire des réservations. Vous devez peupler au moins 10 intitule aux minimums, utilisez votre créativité. Le champ ref_Tsxxx agira comme filtre pour que seul votre site web affichera vos intitules uniquements. Afin d’éviter des conflits, chaque équipe tsxxx doit utiliser le numéro de l’équipe qui lui est assigné (ex. ts201 va utiliser 201, ts305 -> 305). Le champs valeur est mis à votre disposition, vous pouvez l’utilisez à votre guise. Le champs Description, extraChoix1 et extraChoix2 sont des champs facultatifs, vous pouvez les utilisez à votre imagination.
Il est possible d’ajouter un enregistrement à cette table avec la requête suivante :
Reservations
La table Reservation décrit les réservations déjà enregistrée. Cette table contient l’identifiant (idReservation), une référence à son usager (refPersonne). Le numéro de la semaine de 1 à 15 (noSemaine) et le numéro des périodes de 10 à 59 (noperiode). I.E. Lundi 8 :30AM => 10, lundi 9 :30AM
=> 11, mardi 8 :30 AM =>20. Vous devez obligatoirement remplir les champs noperiode et noSemaine pour votre travail de session. Les champs dateTransaction, dateReservation, extraReservation1 et extraReservation2 vous seront mise à disposition et vous pouvez l’utilisez à votre discrétion. Sachez que des points bonus pourra vous être attribué, si vous incorporez des champs de façon fluide à votre site web, aucune pénalité sera enlevé si vous ne les utiliser pas.
Il est possible d’ajouter un enregistrement à cette table avec la requête suivante :
Dans cet exemple, ref_Personne réfère à l’usager 1 (Richard Nguyen), son choix 1 (Consultation TS1), la quantité 1 (fixé arbitrairement), a choisi la période 10 et 11 (8h30 et 9h30) comme réservatio n. Les dateTransaction, dateReservation, extraReservation1 et extraReservation2 sont nulles dans cet exemple.
3. Site Web initial
Afin de faciliter le démarrage du travail synthèse, l’équipe d’enseignement a préparé pour vous un site Web initial (voir la page couverture de ce document). Ce site est accessible à l’URL :
http://cogito.meca.polymtl.ca/~TS2_20221
Vous pouvez évidemment copier les fichiers de ce site avec un client SSH/SFTP du répertoire /home/TS2_20221/public_html/ vers le répertoire du site web de votre compte tsXXX. Ensuite, il suffit de personnaliser votre site et ajouter les éléments manquants. La page Disponibilités permet déjà d’envoyer une requête SQL à TS2_20221, afin d’obtenir la liste des noms des usagés enregistrées dans la base de données. Cette page utilise ce résultat pour construire une liste déroulante dans un formulaire HTML.
Il est fortement suggéré que vous investissez du temps pour analyser le squelette de base avant de vous lancer inutilement dans le travail sans trop comprendre. Une bonne analyse va rendre ce travail agréable à faire. Le contenu du squelette et ainsi que les laboratoire H1 et H2 sont entièrement suffisantes pour votre travail du site web.
4. Enregistrement des équipes
L’enregistrement des équipes se fait directement dans Moodle. Il faut que vous valider à nouveau les membres de l’équipes dans les délais, voir l’activité :
5. Contribution
Sur votre répertoire /home/tsxxx/public_html, vous devez créer un fichier contribution.txt, dans lequel vous mettez les contributions de chacun des membres et s’il mérite la note de l’équipe. À moins d’une paresse exceptionnelle, la personne inactive sera exclus et aura 0 ou recevra une pénalité.
Ne pas avoir participez à un travail en équipe et avoir son nom sur la remise est considéré comme de la fraude. Vous aurez été prévenu! Motivez vos équipiers à participez!
6. Directives
Dans la réalisation de ce travail, on n’utilisera que les balises de la norme XHTML 1.0 strict et un seul fichier de style de niveau 2 (CSS2), telles qu’utilisées au laboratoire et définie sur le site du World Wide Web Consortium :
http://www.w3.org
Il est conseillé de valider les fichiers XHTML et CSS avec les moteurs de validation au fur et à mesure du développement. Il est formellement interdit d’utiliser un logiciel d’édition de page HTML (tel que FrontPage, DreamWeaver, wix). Afin d’éviter la course aux armements, il est également interdit d’utiliser le Javascript, les Applets JAVA, les animations et autres plug-ins(cela ne vous donnera aucun points supplémentaire). Finalement, il est conseillé de regarder les guides tutoriels professionnels tant et aussi longtemps qu’il respecte les règlements de ce travail de synthèse.
Afin d’éviter que le fruit de votre travail de création soit tout simplement plagié par un étudiant paresseux durant le développement, il est recommandé de ne pas laisser ouverte en permanence les permissions d’accès à votre compte Unix tsXXX. Vous devez plutôt ouvrir les permissions du compte tsXXX à 755, afin de valider le bon fonctionnement, puis remettre les permissions à 700, af in que les autres équipes ne puissent plus avoir accès à vos sources PHP. Il est également déconseillé d’utiliser les permissions 000 à votre compte tsXXX, puisque celà aura pour effet de bloquer complètement votre compte. Évidement, les bonnes permissions doivent être remise au moment de la remise.
Afin d’être clair sur les pénalités :
• Un site non accessible se voit d’une pénalité de 30% (permission restraint au moment de la remise).
• Une équipe individuelle sans autorisation se voit d’une pénalité de 30%.
• Une équipe de deux individus sans autorisation se voit d’une pénalité de 15%.
• Une équipe est sujet à d’autre pénalité voir barème de correction suggéré (ex : thème quasi similaire à une autre équipe).
• Aucun travail différé même avec motivation d’absence ne sera accepté (c’est un travail en équipe de 3.5 semaines)
6. Consultation
L’équipe de l’enseignement fera de son possible pour répondre à vos questions, et pour maintenir une activité agréable voici les éléments à respecter de votre mieux :
• Vous posez vos questions en équipe, nous ne répondrons pas aux questions individuelles surtout vers la dernière semaine de remise.
• Dès qu’il y a un conflit avec vos coéquipiers, nous l’avertir le plus tôt possible. Ce n’est pas à quelques jours de la remise que vous nous faites signe qu’un de vos collègues a été paresseux.
• Nous vous suggérons de faire 2-3 rencontres même si ce n’est pas pour poser des questions, pour faire un suivis sur l’état de votre travail et d’éviter « Je croyais avoir bien compris ce qu’il fallait faire»
Nous réservons le droit de refuser toutes demande de questions si nous apercevons que vous ne travaillez pas en équipe (Par exemple, si vous ne savez pas ce que votre collègue est en train de faire…)
Bon travail à tous!
L’équipe d’enseignement Hiver 2022