Skip to content

STEPHANIE3004/GAMESTORE-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Challenge technique - Pro du jeu

🎮 GameStore - Plateforme de Gestion de Jeux Vidéo

GameStore est une application console (CLI) robuste simulant une boutique de jeux vidéo en ligne. Elle permet aux utilisateurs de parcourir un catalogue, d'acheter des jeux, de gérer leur bibliothèque, de suivre leur progression et d'exporter leurs données.

Le projet met l'accent sur la programmation orientée objet, la gestion des erreurs personnalisées, la persistance des données (JSON) et la documentation technique.


🚀 Fonctionnalités Principales

🛒 Boutique & Achat

  • Catalogue Varié : Prise en charge de jeux Solo, Multijoueur, Indépendants et à Abonnement (MMO).
  • Système d'Achat Sécurisé : Vérification du solde, contrôle des doublons (interdiction de racheter un jeu possédé).
  • Politique de Prix : Architecture souple (Pattern Strategy) pour gérer les promotions et les prix dynamiques.

👤 Espace Utilisateur

  • Bibliothèque : Liste des jeux possédés avec temps de jeu et progression.
  • Historique : Trace complète des achats et activités.
  • Progression : Mise à jour du pourcentage d'avancement d'un jeu.
  • Remboursement : Système automatisé (refus si > 2h de jeu ou achat trop ancien).

💾 Technique & Persistance

  • Sauvegarde JSON : État complet (utilisateurs + catalogue) sauvegardé automatiquement à la fermeture (donnees.json).
  • Log & Monitoring : Système de logs configuré (AppLogger) pour le débogage.
  • Exceptions Métier : Gestion fine des erreurs (AchatInterditException, SoldeInsuffisantException, etc.).
  • Export HTML : Génération d'un récapitulatif visuel de la bibliothèque utilisateur.

🛠️ Architecture Technique

Le projet respecte une architecture en couches :

  • fr.esiea.gamestore.model : Les objets métiers (POJO). Utilisation de l'héritage (Jeu -> JeuSolo, JeuMulti) et des interfaces (IEnLigne).
  • fr.esiea.gamestore.service : La logique applicative (GamePlatformService). Utilisation du pattern Facade pour centraliser les actions.
  • fr.esiea.gamestore.storage : Gestion de la persistance avec la bibliothèque Jackson.
  • fr.esiea.gamestore.exception : Hiérarchie d'exceptions personnalisées héritant de ApplicationException.
  • fr.esiea.gamestore.main : Point d'entrée avec boucle REPL (Read-Eval-Print Loop) pour l'interaction console.

💻 Guide d'Utilisation (Commandes)

L'application se pilote via des arguments en ligne de commande. Une fois lancée, utilisez les commandes suivantes :

Commande Description Exemple
--c Créer un nouveau compte utilisateur --c (suivre les instructions)
--i Se connecter (Identification) --i
--g Afficher le catalogue des jeux (Games) --g
--b Acheter un jeu (Buy) via son UUID --b 123e4567-e89b...
--a Afficher ma bibliothèque (Assets) --a
--p Mettre à jour la progression d'un jeu --p 123e4567-e89b... 50 (50%)
--r Demander un remboursement --r "Titre du Jeu"
--trace Voir l'historique d'activité --trace
--export [Nouveau] Exporter ma bibliothèque en HTML --export
--exit Sauvegarder et quitter --exit

📦 Installation et Lancement

Prérequis

  • Java JDK 17 ou supérieur.
  • **gestion des dépendances via IntelliJ
  • Bibliothèque Jackson (déjà incluse dans les dépendances du projet).

Lancement via IntelliJ IDEA

  1. Ouvrir le projet.
  2. Lancer la classe fr.esiea.gamestore.main.MainLauncher.

Génération de la Documentation

La Javadoc complète est disponible : Ouvrir doc/index.html.


👥 Auteurs

Projet réalisé dans le cadre du Challenge Technique - Pro du Jeu.

  • Cléo SITAL
  • Stéphanie MANGOUA

About

Application Java (CLI) de gestion de boutique de jeux vidéo réalisée pour le Challenge Technique ESIEA. Inclut persistance JSON, patterns Strategy/Facade et logging.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages