Mettre en place la base de données et modifier le projet de départ pour intégrer les requêtes SQL nécessaires au fonctionnement de l'application Monovox permettant de gérer le fonctionnement des cours dans un établissement d'enseignement:
Installer l'interpréteur PHP
su root -c "apt update && apt install -y php php-mysql zip unzip"
Récupérer le projet de départ
wget -O monovox.zip https://cshaw.jhoffman.ca/sessions/2023A/0Q7/documentation/assets/06.3-laboratoire-4/monovox.zip
unzip monovox.zip
Et finalement démarrer l'application, qui sera accessible via un navigateur web http://a.b.c.d:8080
selon l'IP de votre machine virtuelle
cd monovox
./run.sh
monovox
, accessible à l'interne pour l'utilisateur tux
avec le mot de passe freeandopensource
_INIT.sql
qui contient la structure initiale de la base de donnéesLAB.sql
LAB.sql
sera appliqué après _INIT.sql
lors de la correction
LAB.sql
, cet environnement existera lors de la correctiondatabase
du projet de départ. Implémenter la requête décrite dans chaque fichier selon le format demandé.
_
Les tables en gris sont fournies dans le projet de départ. Les données de ces tables sont fournies périodiquement par un autre système, Monovox ne les manipule qu'en lecture seulement. Les tables assignments
et grades
sont à implémenter et appartiennent à Monovox.
Les enseignants de l'établissement qui peuvent accéder au système via leur numéro d'employé et un mot de passe.
Les étudiants de l'établissement qui peuvent accéder au système via leur numéro d'étudiant et un mot de passe.
Les sujets pouvant être enseignés.
Un groupe identifie le sujet d'un enseignant pour une session. Chaque groupe possède un numéro unique pour la même combinaison de session et cours. Un enseignant ne peut pas enseigner le même sujet plusieurs fois au même groupe dans une session.
Une classe représente l'inscription d'un étudiant dans un groupe.
Un énoncé représente un travail demandé aux étudiants d'un groupe. Il est identifié par un nom, son poids dans la session(%), le nombre de points d'évaluation et la date d'échéance.
Une note est le résultat d'un étudiant pour un travail.
Pour chaque table ci-dessous, implémenter le mécanisme approprié permettant d'assurer l'intégrité des données.
20 décembre, 8h via LÉA
Suivis |
/ 5%
/ 5
|
Suivi 1, Vendredi 1er décembre
Mise en place du projet, création des tables, données de départ, PoC Requête 3 |
0122.5 |
Suivi 2, ANNULÉ: pondéré à la livraison
Requêtes 5, 9 |
0122.5 |
Remise |
/ 10%
/ 38.5
|
Respect des identifiants de la base de données et de l'utilisateur | OK-1-2 |
Création de la table assignments: colonnes, types, attributs, clés | 011.52 |
Création de la table grades: colonnes, types, attributs, clés | 011.52 |
Insertion de données de départ significatives: assignments et grades | 0122.5 |
Mécanisme d'intégrité des données | |
assignments: Aucunes valeurs vides | 00.51 |
assignments: Poids >= 0 et <= 100 | 00.51 |
assignments: Points > 0 | 00.51 |
assignments: Date >= aujourd'hui | 00.51 |
assignments: Somme des poids | 00.51 |
assignments: Création du travail crée les notes | 00.51 |
assignments: Suppression du travail supprime les notes | 00.51 |
grades: Points NULL OU >= 0 | 00.51 |
Respect de la relation avec l'enseignant | 0122.5 |
Requêtes SQL | |
03 : $groups, # students, tri code et number | 00.511.5 |
05 : $assignments, average, failed, filled, total, tri date | 00.511.522.5 |
06 : $assignments adjacents, average, tri date | 00.511.52 |
07 : $grades du travail, tri nom | 00.51 |
08 : $assignment, remaining_weight, gestion null si création | 00.51 |
09 : insert | 00.51 |
10 : update | 00.51 |
11 : delete | 00.51 |
13 :
$grades, infos adjacentes(note, travail, cours, enseignant), résultat percent, average, tri code et date via une View |
011.522.53
01 |
Qualité du code | |
Exécution répétée du fichier LAB.sql | OK-1 |
Nomenclature, Indentation, Organisation, Capitalisation | OK-0.5-1-2 |
Choix judicieux des fonctions, opérateurs et mécanismes SQL | OK-0.5-1-2 |