Apprentissages critiques ¶
- Implémenter des conceptions simples
- Élaborer des conceptions simples
- Faire des essais et évaluer leurs résultats en regard des spécifications
- Développer des interfaces utilisateurs
Introduction ¶
Le projet global s'articule autour d'une base de données que vous allez afficher sous forme d'une application Web de consultation. Dans un second temps, vous produirez les interfaces Web permettant de modifier le contenu de la base de données.
Après l'initialisation du projet Composer
en suivant les mêmes consignes et méthodes que dans le TP « CRUD Music », vous réaliserez les classes et programmes nécessaires pour obtenir les maquettes de pages fournies. Vous utiliserez vos connaissances CSS
et flex
pour les mettre en forme. Vous serez brièvement guidés sur l'ordre de réalisation, mais vous devrez reproduire par vous-même des choix de conception et de réalisation similaires à ceux effectués pour les TP.
Versionnage du projet ¶
Vous travaillerez en binôme. L'un des deux membres aura la charge de créer le dépôt GitLab qui sera nommé « php-crud-tvshow
». La collaboration entre les deux membres du binôme suivra les mêmes règles que celles présentées dans le TP « Collaboration avec Gitlab » :
- Un fichier «
README.md
» présentera le nom, prénom et login des membres du binôme - La branche principale sera protégée juste après la mise en place du projet, aucun
commit
direct n'est autorisé - Vos productions seront faites sous forme de branches qui seront soumises à la revue de code de votre partenaire et fusionnées lorsqu'elles sont considérées admissibles
- L'équilibre entre les contributions des deux membres du binôme sera considéré Remarque importante
La note de chacun des deux partenaires sera proportionnelle à la quantité et la qualité de ses contributions.
- Chaque
commit
sera le plus ciblé possibleRemarque importanteTout
commit
qui ne respecte pas les règles, car il apporte trop de fichiers et/ou trop de nouveautés en une seule fois, sera considéré comme du plagiat et sera purement et simplement ignoré.En dehors de la mise en place du projet et de l'ajout des classes fournies, un
commit
doit introduire en une fois un seul des éléments suivants :- Une classe avec ses propriétés, ses accesseurs et mutateurs
- Une méthode complexe
- Un programme
- Un fichier de ressource
L'interface de gestion de versions
PhpStorm
propose d'effectuer uncommit
sur une partie des fichiers modifiés. Utilisez cette fonctionnalité pour structurer voscommits
. - Chaque message de
commit
sera clair et explicite - Vous veillerez à ce que vos nom et prénom réels et mail universitaire soient configurés dans
git
de façon identique à l'IUT et sur votre ordinateur personnel - Puisque vous travaillerez en équipe, les fichiers de configuration de
PhpStorm
(répertoire «.idea
» dans le projet) seront exclus de l'indexGit
Mise en place du projet ¶
Tout comme en TP, vous utiliserez Composer
pour initialiser un projet dans lequel vous utiliserez l'auto-chargement.
Lors de l'initialisation du projet (« composer init
»), Composer
crée le fichier « composer.json
» qui contient les informations sur le projet et ses dépendances. Un seul des membres du binôme crée le projet. Le second devra cloner le dépôt git
et installer les dépendances du projet avec « composer install
».
L'ajout des classes indispensables comme « MyPdo
» ou « WebPage
» peut se faire dès la mise en place du projet.
Base de données ¶
Votre application va interagir avec une base de données MySQL
qui contient les épisodes et saisons de séries TV. Elle est composée comme suit :
Cette base est fournie sous forme de script à importer dans phpMyAdmin
. Chacun des membres du binôme doit configurer sa propre copie de la base puisque le fichier de configuration contenant le mot de passe ne doit pas se retrouver sur le dépôt git
.
Pour importer la base dans votre compte MySQL
au département informatique ou sur votre propre serveur MySQL
sur XAMPP
, vous devez créer une nouvelle base de données et télécharger le script de création de la base MySQL
afin de pouvoir l'importer.
N'oubliez pas de sélectionner la base de données avant d'importer le script.
Réalisations demandées et progression suggérée ¶
Vous devez réaliser une application équivalente au sujet de TP « CRUD Music » transposé à la base de données fournie.
Contraintes de réalisation ¶
Vous devrez impérativement respecter les contraintes de réalisation suivantes :
- Votre code
PHP
devra être conforme à la recommandation « PSR-12 » et vous utiliserez les outils nécessaires au respect de cette consigne - Votre code sera en anglais : noms de classes, noms de propriétés, noms de méthodes, noms de variables, noms des programmes.
- Le projet doit pouvoir fonctionner sur
Linux
comme surWindows
. - Vous documenterez systématiquement les fonctionnalités, programmes, scripts
Composer
ou autres fichiers de configuration dans le fichier «README.md
». - Vous utiliserez «
MyPDO
» et «WebPage
» (voire «AppWebPage
») pour vos développements - Votre code sera structuré en classes d'entités représentant les lignes des tables de base de données, de collections d'entités et de formulaires d'entités, exactement comme en TP
- Les mises en forme
CSS
devront obligatoirement utiliser «flexbox
», être pensées « mobile first » et faire usage des « media queries » pour proposer un affichage correct quelle que soit la largeur d'affichage - Vous validerez le contenu
HTML
etCSS
de vos pages Web, et leur performance sera vérifiée avecLighthouse
- Si des programmes nécessitent des paramètres de « query string »
GET
, des réponsesHTTP
avec des codes de statut appropriés seront données en cas de problème - Les tests, facultatifs, s'appuient sur une base de données
SQLite
au contenu réduit.
Réalisations demandées ¶
-
Liste de l'ensemble des séries
Information
Une affiche par défaut sera proposée à l'aide d'une redirection
HTTP
s'il n'y a pas de poster lors de l'affichage d'une série. -
Détails d'une série avec la liste de ses saisons
Information
Une image par défaut sera proposée à l'aide d'une redirection
HTTP
s'il n'y a pas de poster lors de l'affichage d'une série ou d'une saison. -
Détails d'une saison avec liste de ses épisodes
Information
Une image par défaut sera proposée à l'aide d'une redirection
HTTP
s'il n'y a pas de poster lors de l'affichage d'une saison. -
Création, édition, suppression d'une série TV
- un menu sera ajouté pour le retour à la page d'accueil
- l'édition d'une série doit préserver le poster existant
- le poster d'une série est facultatif lors de la création, et il n'est pas demandé de le gérer
- un menu sera ajouté pour proposer les fonctionnalités de création, d'édition et de suppression
- Filtrage des séries par genre
- Ajout des tests des méthodes des classes et des programmes (facultatif)
Évaluation ¶
La liste des réalisations demandées comporte un barème indicatif susceptible d'évoluer. Les points obtenus constituent les deux notes brutes de la SAÉ (barème note 1 et barème note 2).
Ces notes brutes peuvent subir un malus individuel allant jusqu'à 2 points si la qualité des messages de commit
n'est pas satisfaisante.
Pour finir d'individualiser la note, un coefficient multiplicateur de 0 à 1 sera appliqué pour refléter l'équilibre du travail entre les deux membres du binôme.
Pour vous évaluer, nous devons cloner votre dépôt GitLab
, installer les dépendances, créer la base de données, charger les « fixtures » puis lancer les tests et démarrer le serveur Web. Veillez donc à ce que votre dépôt soit accessible et que les instructions pour installer et lancer votre application soient claires et précises. De plus, nous devons savoir ce que propose votre application. Ainsi, sans un minimum d'instructions sur les fonctionnalités présentes, sur les jeux de données disponibles et les procédures à réaliser, nous ne pourrons pas évaluer votre travail. Toutes ces informations doivent figurer clairement dans le fichier « README.md
».
Testez la mise en route de votre application : clonez votre dépôt dans un répertoire vide, installez les dépendances, créez la base de données, chargez les « fixtures » puis lancez les tests et démarrez le serveur Web. Si tout fonctionne, vous avez de grandes chances d'être évalué dans de bonnes conditions.