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é « sae2-01 ». 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
commitdirect 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
commitsera le plus ciblé possibleRemarque importanteTout
commitqui 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
commitdoit 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
PhpStormpropose d'effectuer uncommitsur une partie des fichiers modifiés. Utilisez cette fonctionnalité pour structurer voscommits. - Chaque message de
commitsera clair et explicite - Vous veillerez à ce que vos nom et prénom réels et mail universitaire soient configurés dans
gitde 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 des jeux vidéo. Elle est issue de l'API Steam qui a été traitée par Valentin Fortier, Elias Richarme, Oscar Neveux et Nathan Villette lors de leur SAÉ S4 du parcours Data en 2024-2025 « Développement avec une base de données et visualisation ». La structure de la base de données est la suivante :
Cette base de données est présente sur le serveur MySQL du département informatique, qui est accessible en intranet ou depuis le VPN. Vous pouvez copier cette base « cutron01_game » depuis 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.
Si vous souhaitez utiliser votre propre serveur MySQL, vous pouvez télécharger le script de création de la base MySQL inclus dans une archive ZIP.
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.
Les outils de génération de code à base d'IA sont formellement interdits.
Contraintes de réalisation ¶
Vous devrez impérativement respecter les contraintes de réalisation suivantes :
- Votre code
PHPdevra ê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
Linuxcomme surWindows. - Vous documenterez systématiquement les fonctionnalités, programmes, scripts
Composerou 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
CSSdevront 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 - Si des programmes nécessitent des paramètres de « query string »
GET, des réponsesHTTPavec 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
SQLiteau contenu réduit
Réalisations demandées ¶
-
Liste de l'ensemble des catégories et genres de jeux
Version mobile
Version desktop -
Détails d'une catégorie et d'un genre avec la liste de ses jeux
Jeux d'une catégorie
Jeux d'un genre InformationUn poster par défaut sera proposé à l'aide d'une redirection
HTTPs'il n'y a pas de poster pour un jeu. -
Détails d'un jeu avec la liste de ses catégories et genres
Version mobile
Version desktop InformationLes images des plateformes pour lesquelles les jeux sont proposés peuvent être trouvées sur Font Awesome et sont reprises ici sous forme de SVG :
-
Création, édition, suppression d'un jeu
- un menu sera ajouté pour le retour à la page d'accueil
- l'édition d'un jeu doit préserver le poster existant
- le poster d'un jeu 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
- Tri des listes de jeux par titre ou par année à l'aide d'un menu (bouton, radio ou autre)
- 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.