Retour aux projets
Terminé

PayMyBuddy - Transfert d'argent

L'application repose sur une architecture en couches avec DB-first. L'objectif est de proposer une solution simple, fiable et accessible pour les échanges d'argent du quotidien.

PayMyBuddy - Transfert d'argent

Vue d'ensemble

Pay My Buddy est une application web de transfert d’argent entre utilisateurs, réalisée dans le cadre de ma formation Java. Ce projet m’a permis de concevoir une application complète, de la base de données à l’interface web, avec un focus sur la sécurité, la structuration du backend et la gestion des transactions.

Problématique

Les solutions de transfert d’argent entre particuliers peuvent être complexes et peu intuitives. L’objectif était de concevoir une application simple et sécurisée permettant de gérer un réseau de contacts et d’effectuer des transactions financières. Le projet m’a également confronté à des choix structurants, notamment l’approche DB-first, où la base de données est définie comme source de vérité, imposant une stricte cohérence avec les entités applicatives.

Architecture

L’application repose sur une architecture en couches clairement définie. La couche Web (MVC) gère les contrôleurs et les vues Thymeleaf. La couche Application implémente les cas d’usage et la logique métier. La couche Domain contient les entités. Enfin, la couche Infrastructure s’appuie sur Spring Data JPA pour l’accès aux données et Spring Security pour la gestion de la sécurité. La base de données MySQL est conçue en approche DB-first, avec validation du schéma via Hibernate (ddl-auto=validate).

Fonctionnalités

  • Gestion des utilisateurs et authentification sécurisée
  • Gestion d’un réseau de contacts via email
  • Réalisation de transactions financières entre utilisateurs
  • Gestion centralisée des erreurs (Global Exception Handler)
  • Interface web basée sur Thymeleaf
  • Validation des données et gestion des règles métier
  • Base de données MySQL conçue en DB-first avec scripts SQL
  • Pipeline CI minimal (build + tests)

Défis

  • Adopter une approche DB-first avec cohérence stricte entre schéma SQL et entités JPA
  • Structurer l’application selon une architecture en couches claire et maintenable
  • Mettre en place la sécurité avec Spring Security
  • Implémenter une gestion robuste des transactions financières
Retour aux projets