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.
Fonctionnalités du site
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
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.
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
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.
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.
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 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.
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 (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.
Voir aussi
Vous avez un projet similaire ?
Discutons de votre projet et voyons comment je peux vous aider.
Voir mes services & tarifsDéveloppé par Baptiste Nuytten | Projet éducatif utilisant l'API TMDB