Skip to content

masterivanic/Bank-service

Repository files navigation

CI Tests Coverage

💰 Bank Account Kata 💰

🧩 Feature 1 : Le compte bancaire

Un compte bancaire doit permettre les opérations de base suivantes :

  • Posséder un numéro de compte unique (format libre)
  • Gérer un solde
  • Permettre le dépôt d’argent
  • Permettre le retrait d’argent

Règle métier : Un retrait ne peut pas être effectué s’il excède le solde disponible du compte.


💳 Feature 2 : Le découvert autorisé

Certains comptes bancaires peuvent bénéficier d’un découvert autorisé.

Règle métier :

  • Si un compte dispose d’une autorisation de découvert, un retrait supérieur au solde du compte est autorisé uniquement si le solde final ne dépasse pas le montant de découvert autorisé.

💰 Feature 3 : Le livret d’épargne

Un livret d’épargne est un type particulier de compte bancaire avec des contraintes spécifiques :

  • Il dispose d’un plafond de dépôt : on ne peut déposer d’argent que dans la limite de ce plafond (exemple : 22 950 € pour un livret A)
  • Il ne peut pas avoir de découvert autorisé

📄 Feature 4 : Le relevé de compte

Un relevé mensuel doit pouvoir être généré pour chaque compte. Ce relevé présente les informations suivantes :

  • Le type de compte (Compte Courant ou Livret)
  • Le solde du compte à la date d’émission du relevé
  • La liste des opérations effectuées sur le mois, triées par date décroissante

🧱 Architecture cible

L’application doit suivre les principes de l’architecture hexagonale :

  • Le domaine contient les règles métier pures
  • Les ports définissent les interfaces pour interagir avec le domaine
  • Les adapteurs implémentent ces interfaces (API REST, persistance, etc.)

Architecture hexagonale

About

Bank application with hexagonal architecture in python from scrach

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages