Grégory Bourguin
SysReIC - LISIC - ULCO
Projet Web : My Movies

Sujet

L'idée générale est de créer/publier un livret "personnel" de films.

Les films auront un titre, une affiche, un synopsis, une année de sortie, un réalisateur, une liste d'acteurs, des tags, et un champ indiquant si on l'a vu / non vu. Les tags pourront par exemple être action, comédie, drame, etc. Chaque film peut avoir plusieurs tags.

Chaque réalisateur et/ou acteur aura un nom et une image et pourra participer à plusieurs films.

L'application devra permettre de lister/parcourir/rechercher les films (vus ou non vus), les réalisateurs, les acteurs, etc. Le but sera par exemple de rechercher tous les films vus avec Arnold Swcharzenegger ET Carl Weathers sortis avant 1988.

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.

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)

Film

Un film est défini par au moins :

  • Un titre
  • Une date de sortie
  • Une affiche
  • Un synopsis
  • Un réalisateur
  • Une liste d'acteurs
  • Un champ vu / non vu
  • Des tags éventuels (ex. action, comédie, ...).

Réalisateur/trice | Acteur/trice

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

  • Un nom
  • Une photo
  • Une liste de films réalisés
  • Une liste de films dans lesquels il/elle a joué

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 (films, réalisateurs, 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 <-