# Core banking pour les institutions de microfinance

> Développement et évolution d'OpenCBS, plateforme de core banking basée sur Apache Fineract, pour des institutions de microfinance et des banques de la zone UEMOA.

- **Kind:** case-study
- **Context:** BFT Group · Développeur Backend
- **Year:** 2024
- **Tech:** Java, Spring Boot, Apache Fineract, OpenERP, Microservices
- **URL:** https://wilfriedago.me/fr/works/opencbs-core-banking

**Flow:** Guichet → Opération de caisse → Modèle de domaine → Comptabilité SYSCOHADA

tout mouvement au guichet doit finir en écriture comptable conforme

OpenCBS est une plateforme de core banking basée sur Apache Fineract, utilisée
par des institutions de microfinance et des banques. Je contribue à son
développement et à son évolution : les modules qui déplacent l'argent, et la
comptabilité que le régulateur lira ensuite.

## Le métier avant le code

Opérations de caisse, gestion des guichets, flux de trésorerie, opérations
clients : chacun de ces besoins arrive formulé dans le langage de l'agence, pas
dans celui du système. L'essentiel du travail se fait avant la première ligne de
code — analyser ce que l'institution fait réellement, puis le traduire en
modèles de domaine qui tiennent face aux règles du métier, selon les principes
du **DDD** plutôt qu'en aplatissant tout en tables.

## Caisses, coupures et comptabilité

Je développe les modules de gestion des caissiers et des guichets, ainsi que le
suivi des coupures monétaires : combien de quelle coupure se trouve dans quelle
caisse, et ce qui a changé de main. En aval se trouve la comptabilité
financière conforme au **SYSCOHADA**, la norme applicable dans la zone UEMOA.
La conformité n'est pas une couche de reporting ajoutée à la fin : elle
contraint d'emblée ce que le modèle de domaine peut représenter.

## Interopérabilité avec OpenERP

La plateforme ne vit pas seule. Je personnalise et intègre **OpenERP** pour
assurer son interopérabilité avec le core banking, notamment pour les modules de
comptabilité, de gestion interne et de reporting financier — ce qui suppose de
s'accorder sur ce qu'_est_ une transaction dans deux systèmes conçus
séparément.

## Rester maintenable

Au-delà des fonctionnalités, je participe aux revues de code, à l'amélioration
continue de la base de code et à la structuration des services. La plateforme
est déployée chez chaque client sous forme de microservices : la modularité
n'est donc pas une préférence esthétique, elle détermine la part du système
qu'il faut comprendre avant de pouvoir changer quoi que ce soit sans risque.
