FilmShop

Plateforme de streaming avec système d'achat, API TMDB et base de données MySQL

Présentation du projet

FilmShop est une plateforme de streaming complète qui permet aux utilisateurs de parcourir un catalogue de films, d'acheter ceux qui les intéressent et de les visionner directement en ligne. Le projet intègre l'API TMDB (The Movie Database) pour récupérer les informations des films (titres, descriptions, affiches, etc.) et les stocke dans une base de données MySQL.

PHP
MySQL
HTML
CSS
JavaScript
API TMDB
Docker
Git
PHP
MySQL
HTML
CSS
JavaScript
API TMDB
Docker
Git

Fonctionnalités du site

Page d'accueil FilmShop

Catalogue de films

La page d'accueil présente un catalogue des films populaires disponibles à l'achat. Chaque film affiche son titre, son affiche et son prix. Les utilisateurs peuvent filtrer les films par catégorie et utiliser la barre de recherche pour trouver des films spécifiques par titre ou réalisateur.

Création de compte

Création de compte

Interface d'inscription permettant aux nouveaux utilisateurs de créer un compte en fournissant un nom d'utilisateur, une adresse e-mail et un mot de passe sécurisé. Le système vérifie l'unicité des identifiants et la conformité des mots de passe.

Page de connexion

Système d'authentification

Les utilisateurs peuvent se connecter à leur compte existant. L'authentification sécurisée permet d'accéder à la bibliothèque personnelle de films achetés et aux fonctionnalités de gestion du profil.

Panier d'achat

Panier d'achat

Interface du panier permettant de gérer les films sélectionnés avant l'achat. Les utilisateurs peuvent ajuster les quantités, supprimer des articles ou continuer leurs achats avant de passer à la caisse pour finaliser leur commande.

Page de paiement

Système de paiement

Interface de paiement pour finaliser l'achat des films sélectionnés. Le système calcule automatiquement le total avec TVA et accepte différents moyens de paiement (cartes de crédit, PayPal). Cette simulation de paiement permet d'ajouter les films achetés à la bibliothèque de l'utilisateur.

Historique des commandes

Gestion des commandes

Les utilisateurs peuvent consulter l'historique de leurs commandes avec les détails de chaque achat : date, nombre d'articles, montant total. Le système inclut un programme de fidélité qui offre des avantages comme l'accès à des offres spéciales et des notifications personnalisées de nouveautés.

Bibliothèque de films

Bibliothèque personnelle

Après l'achat, les films sont ajoutés à la bibliothèque personnelle de l'utilisateur. La bibliothèque affiche tous les films achetés avec des options pour les regarder directement en ligne ou accéder aux détails complets. Les films peuvent être filtrés par genre ou triés par titre.

Lecteur vidéo

Lecture de films

Lecteur vidéo intégré permettant de visionner les films achetés directement dans le navigateur. L'interface de lecture affiche une bande-annonce ou un extrait du film avec des sous-titres. Dans une version complète, le lecteur inclurait des fonctionnalités de lecture en streaming avec différentes qualités vidéo.

Importation de films depuis TMDB

Importation de films (Admin)

Interface d'administration permettant d'importer automatiquement les films récents depuis l'API TMDB. Le système récupère le titre, la date de sortie, le synopsis, l'affiche, le réalisateur et les acteurs principaux. L'importation se fait en arrière-plan, permettant à l'administrateur de continuer à utiliser le site pendant ce temps.

Fonctionnalités principales

Catalogue de films

Exploration et recherche dans une vaste collection de films avec filtrage par genre.

Comptes utilisateurs

Système d'inscription et de connexion sécurisé pour gérer les achats et accéder à la bibliothèque personnelle.

Panier d'achat

Sélection et gestion des films avant l'achat avec calcul automatique du total.

Système de paiement

Simulation de paiement sécurisé avec différentes méthodes acceptées et calcul de TVA.

Bibliothèque personnelle

Accès aux films achetés avec options de visionnage direct et informations détaillées.

Intégration TMDB

Importation automatique des derniers films avec toutes leurs métadonnées depuis l'API TMDB.

Panneau d'administration

Interface dédiée aux administrateurs pour gérer le catalogue et importer de nouveaux films.

Programme de fidélité

Système de récompenses pour les clients réguliers avec avantages progressifs.

Aspects techniques

Ce projet a été développé en utilisant plusieurs technologies et concepts avancés :

  • Base de données relationnelle - Stockage des films, utilisateurs et commandes dans MySQL avec schéma optimisé
  • API REST - Intégration de l'API TMDB pour récupérer les données des films les plus récents
  • Authentification sécurisée - Protection des mots de passe et gestion des sessions utilisateurs
  • Interface responsive - Design adaptatif pour une expérience utilisateur optimale sur tous les appareils
  • Traitement asynchrone - Importation des films en arrière-plan sans bloquer l'interface utilisateur
  • Conteneurisation - Utilisation de Docker pour faciliter le déploiement et la portabilité

Défis et solutions

Lors du développement de ce projet, plusieurs défis techniques ont été relevés :

Intégration de l'API TMDB

L'API TMDB retourne des données complexes qui ont nécessité un traitement spécifique pour les adapter à notre structure de base de données. J'ai développé un système de mapping qui transforme les réponses JSON en objets compatibles avec notre schéma.

Gestion des utilisateurs et sécurité

La sécurisation des comptes utilisateurs a été une priorité. J'ai implémenté un système d'authentification robuste avec hachage des mots de passe, protection contre les injections SQL et gestion sécurisée des sessions.

Développé par Baptiste Nuytten | Projet éducatif utilisant l'API TMDB