Activité Shopping Backend

Consigne

Prendre connaissance de l’activité et réaliser les tâches demandées.

Vous devez mettre en oeuvre les principes de programmation que vous avez étudiés durant les modules de programmation en portant une attention particulière aux points suivants:

  • Les principes SOLID
  • Les tests unitaires en utilisant le TDD (Tests Driven Development)
  • La JavaDoc

Mise en situation

Dans le cadre du développement d’un système de commerce en ligne, vous êtes chargé de la conception et de l’implémentation du modèle d’objet du backend (le back end est la partie serveur de l’application, par opposition au frontend, la partie client).

Résultats attendus

Le résultat attendu est un projet maven qui comprend l’implémentation de vos et classes et les tests unitaires prouvant que les fonctionnalités demandées sont bien implémentées.

Votre projet devra être accompagné d’un diagramme de classes.

Objectifs

Le but de cet exercice est d’appliquer ce que l’on a vu dans les différents modules de programmation.

Cahier des charges

La version que l’on vous propose de réaliser est une vue très simplifiée de ce que serait un véritable backend de commerce en ligne. En termes de fonctionnalités, les exigences sont les suivantes :

  • Créer, supprimer et modifier des utilisateurs.
  • Créer, supprimer et modifier des articles.
  • Créer des commandes.
  • Une commande à un état. La commande est ouverte, en traitement, envoyée ou terminée.
  • Afficher un utilisateur, un article ou une commande par son identifiant.
  • Lister les commandes selon leur état.
  • Lister les commandes entre deux dates.
  • La manière de stocker les données (fichiers, base de données SQL, etc.) sera définie ultérieurement.

Vous n’avez pas à vous préoccuper de la sécurité, de la gestion de stock, du processus du paiement, etc.

Tâches

Les étapes recommandées pour réaliser au mieux ce projet sont :

  • Réaliser un diagramme de classe en UML.
  • Réaliser le squelette des classes et les documenter avec des commentaires JavaDoc.
  • Pour chaque méthode de chaque classe, réaliser au moins un test unitaire pour la méthode avant de l’implémenter (il n’est pas nécessaire de faire des tests unitaires pour les constructeurs, les getters et les setters)
  • Améliorer le code en faisant du refactoring.

Astuces

Inspirez-vous des activités du module 226 pour réaliser ce projet.