Grégory Bourguin
SysReIC - LISIC - ULCO
Projet Web : TV Shows

Sujet

L'idée générale est de créer/publier des informations à propos de séries ou "TV Shows".

Les séries auront un titre, un ou des tag(s) et une ou des saison(s). Les tags pourront par exemple être action, comédie, drame, etc. Chaque série peut avoir plusieurs tags.

Les saisons ont un numéro de saison, une liste d'épisodes et un casting, c'est-à-dire une liste d'acteurs.

Les épisodes auront un numéro, un titre, un réalisateur, un synopsis et une durée.

Chaque acteur aura un nom et une photo et pourra participer à plusieurs saisons de séries.

Chaque réalisateur aura un nom et une photo et pourra avoir réalisé plusieurs épisodes, y compris dans des séries différentes.

L'application devra permettre de lister/parcourir/rechercher les séries, les saisons, les acteurs, etc. Le but sera par exemple de rechercher toutes les séries "heroic fantasy" mettant en scène "Emilia Clarke" ET "Kit Harrington". On doit par exemple aussi pouvoir afficher des informations synthétiques, comme le nombre de saisons d'une série, son casting complet, sa durée totale (en heures/minutes), le nombre d'épisodes d'une saison, la durée de chaque saison, etc.

Un mode administrateur permettra d'éditer l'ensemble de ces entités, c.a.d. la base de données qui sera associée à l'application.

Vous pourrez trouver de nombreuses informations pour constituer une BD de tests sur Wikipedia, AlloCiné, etc.

Instructions

Le but de ce projet est de réaliser un site Web complet en mettant en oeuvre la plupart des connaissances que vous avez acquises dans les modules de Javascript et PHP.

VOUS DEVREZ METTRE EN OEUVRE EXCLUSIVEMENT LES BONNES PRATIQUES VUES EN COURS.

À moins d'un accord explicite de ma part, les techniques utilisées devront obligatoirement être tirées des exemples du cours et des corrections que j'ai fournis tout au long de l'année.

Sauf dérogation (au cas par cas), il vous est strictement interdit de copier/coller du code récupéré sur un/des site(s) tiers (github, tutoriels, etc.).

Organisation

Groupe

Ce projet sera réalisé en groupe de 3 personnes :

  • 1 Spécialiste Front-End
    HTML, CSS, JavaScript : interactions clientes.
  • 1 Spécialiste Back-End
    PHP Objet : structure du serveur, génération de pages.
  • 1 Spécialiste en Bases de Données
    PHP-PDO-MySQL : design de la BD, interface PHP-MySql, requêtes.

Il sera nécessaire de vous organiser autour de sous-objectifs à atteindre et en définissant des interfaces claires entre chaque partie.

Tous les spécialistes doivent pouvoir avancer en // sur le développement, et il ne doit que rarement y avoir 3 personnes sur la même machine.

Si chaque spécialiste focalisera sur "sa" partie, tous les membres du groupe doivent être capables d'expliquer l'ensemble du projet.

Evaluation en continu

L'évaluation du projet sera faite en continu pendant les séances.

Toute absence non justifiée pendant les séances de Projet sera sanctionnée par un 0.
Toute absence prolongée entraînera une exclusion du groupe.

La grille d'évaluation sera celle des Compétences suivantes :

Allure Générale

Le site doit présenter :

  • Une bannière avec le titre du site + menu de navigation (qui doit aussi permettre à l'administrateur de se connecter)
  • Une zone centrale qui affiche le contenu demandé par l'utilisateur.
  • Un footer indiquant la source des éléments que vous allez utiliser.

Le design est à votre convenance : faites quelque chose dont vous serez fiers.

Entités Manipulées (au minimum)

Série

Une série est défini par au moins :

  • Un titre
  • Des tags éventuels (ex. action, comédie, ...).
  • Une ou des saisons

Saison

Une saison est définie par au moins :

  • Un numéro
  • Une affiche
  • Un ou des épisodes
  • Un casting (liste des acteurs)

Épisode

Un épisode est défini par au moins :

  • Un titre
  • Un ou des réalisateurs
  • Un synopsis
  • Une durée

Réalisateur/trice | Acteur/trice

Les réalisateurs et acteurs sont définis par au moins :

  • Un nom
  • Une photo

Tag

Un tag est défini par au moins :

  • Un nom

Mode Public

Le mode public est accessible à tout utilisateur (sans authentification).

Affichage

L'utilisateur aura au minimum accès aux fonctionnalités de parcours/affichage/recherche des entités du site (séries, saisons, épisodes, acteurs, ...)

Mode Administrateur

Pour simplifier, on considérera que l'entrée dans le mode administrateur est réalisé grâce à une simple paire login/mot de passe (unique) qui pourra être écrit en dur dans votre code PHP : toute personne ayant donné ce login/mot de passe sera considérée administrateur pendant sa session.

Créations

L'interface d'administration doit permettre d'ajouter de nouvelles entités dans la base de données.

La création s'appuie sur les entités existantes dans la base de données. Néanmoins, si une entité requise pour en décrire une autre (ex. un tag pour décrire un film) n'est pas dans la base, cette entité doit pouvoir aussi être créée (si possible en contexte).

Edition

Le mode administrateur doit permettre d'éditer les entités existantes.

Destruction

Le mode administrateur doit permettre de supprimer les entités créées.

À propos des Validations

Les formulaires doivent être sujet à une double validation.
  • Une validation au niveau du client faite en Javascript avant la soumission du formulaire (pour ce qui peut l'être).
  • Une validation au niveau du serveur en PHP après soumission du formulaire
    (NB : l'utilisateur pourrait tenter de contourner la vérification Javascript).

Dans les 2 cas, les problèmes doivent être affichés dans le formulaire en demandant à l'utilisateur de bien vouloir vérifier les champs incriminés.

Planning des Présentations

-> LE PLANNING EST ICI <-