Contexte
Ce projet a été réalisé dans le cadre du BUT Informatique. Il s’agissait d’un projet tutoré dont l’objectif était de développer une application web dynamique permettant de gérer une collection de jeux vidéo. Le projet s’est déroulé sur plusieurs semaines, avec un travail en autonomie, encadré par un enseignant. L'application, nommée Vapeur, s’inspire des fonctionnalités de plateformes comme Steam, en simplifiant leur logique.
Missions réalisées
- Conception de la base de données avec Prisma ORM
- Développement backend avec Node.js et Express.js
- Création des vues avec Handlebars (HBS)
- Ajout des fonctionnalités CRUD pour les jeux, genres et éditeurs
- Gestion des jeux mis en avant sur la page d’accueil
- Intégration d’une logique d'initialisation automatique des genres
Déroulement du projet
- Création du modèle de données et configuration de Prisma
- Mise en place du routage Express et des vues dynamiques
- Développement des opérations CRUD complètes
- Ajout des filtres par genre et éditeur
- Tests, débogage et documentation GitHub
Compétences mobilisées
- Développement full-stack (Express.js, Handlebars)
- Modélisation de base de données relationnelle
- Utilisation de Prisma (ORM) avec SQLite
- Utilisation de Git et GitHub (versionnage, branches, issues)
- Autonomie, rigueur, documentation technique
Illustrations du projet
Voici quelques aperçus de l’application web Vapeur, développée avec Express.js, Handlebars et Prisma. Chaque interface correspond à une fonctionnalité clé de la gestion de collection de jeux vidéo.
Page d’accueil
Affichage des jeux mis en avant avec un design sobre. Les jeux sont triés par ordre alphabétique.
Création d’un jeu
Formulaire permettant d’ajouter un nouveau jeu avec son titre, sa description, sa date de sortie, son genre et son éditeur.
Ajout d’un éditeur
Formulaire simple pour créer un éditeur associé à un ou plusieurs jeux. Interface claire et rapide à utiliser.
Extrait de code
Exemple de logique serveur utilisant Express.js et Prisma pour gérer les routes de création et la validation des champs.
Conclusion réflexive
Ce projet m’a permis de consolider mes compétences en développement web côté serveur, ainsi qu’en gestion de données avec un ORM. J’ai appris à concevoir une architecture MVC simple, à structurer proprement un projet Express et à écrire du code réutilisable. Ce travail m’a également sensibilisée à l’importance de la clarté de l’interface et de la cohérence des données, surtout dans un contexte multi-entités comme ici (jeu, genre, éditeur).
Numérique responsable : j’ai veillé à optimiser la taille des requêtes, à limiter les redondances et à rendre l’application accessible, rapide à charger et modulaire.