Jérôme Cutrona

Version statique de l'intranet de Jérôme Cutrona - Rejoindre la version dynamique 🔒

Les exemples et corrections sont potentiellement non fonctionnels.

B.U.T. Informatique - IUT de Reims - Université de Reims

SAÉ 2.01 - Développement d’une application

Navigation

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 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é possible
    Remarque importante

    Tout 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 un commit sur une partie des fichiers modifiés. Utilisez cette fonctionnalité pour structurer vos commits.

  • 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'index Git

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 films et les acteurs y ayant joué. Elle est composée comme suit : Le schéma de la base de données

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_movie » 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.

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 sur Windows.
  • 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
  • Si des programmes nécessitent des paramètres de « query string » GET, des réponses HTTP 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

  1. Liste de l'ensemble des films 11,5 points Maquette de la page d'accueil de l'application (liste des films)
    Information

    Une affiche par défaut sera proposée à l'aide d'une redirection HTTP s'il n'y a pas d'affiche lors de l'affichage d'un film.

  2. Détails d'un film avec la liste de ses acteurs 8.5 points Maquette de la page de détails d'un film avec la liste de ses acteurs
    Information

    Une affiche par défaut sera proposée à l'aide d'une redirection HTTP s'il n'y a pas d'affiche lors de l'affichage d'un film.

    Une photo par défaut sera proposée à l'aide d'une redirection HTTP s'il n'y a pas de photo pour un acteur.

  3. Détails d'un acteur avec la liste de ses films 4,75 points Maquette de la page de détails d'un acteur avec la liste de ses films
    Information

    Une photo par défaut sera proposée à l'aide d'une redirection HTTP s'il n'y a pas de photo pour un acteur.

    Une affiche par défaut sera proposée à l'aide d'une redirection HTTP s'il n'y a pas d'affiche lors de l'affichage d'un film.

  4. Création, édition, suppression d'un film 11,75 points
    • un menu sera ajouté pour le retour à la page d'accueil
    • l'édition d'un film doit préserver le poster existant
    • le poster d'un film 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
  5. Filtrage des films par genre 3,5 points
  6. Ajout des tests des méthodes des classes et des programmes (facultatif) 2 points bonus 2 points bonus

É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.

Information

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 ».