Matunda est une application d'investissement dans les actions africaines (cotées en Afrique, en Europe et ailleurs). C'est un projet que je développe seul, pour mon oncle, depuis février 2025. Il a grandi d'une simple application mobile à un véritable écosystème de plusieurs dépôts indépendants, qui partagent le même contrat d'API :
- L'API (NestJS 11) : le cœur du produit, avec Prisma 7, PostgreSQL et Redis
- L'application mobile (Expo / React Native) : iOS et Android, pour les utilisateurs
- Le back-office (Next.js 16) : réservé à l'équipe, avec rôles et permissions
- Le site vitrine (Next.js 16) : pages publiques, contact et liste de lancement, en dix langues dont l'arabe
- La supervision (Prometheus, Grafana, Alertmanager) : savoir si l'API va bien et être prévenu quand elle va mal
Plus de 1 300 commits au total, répartis sur ces dépôts.
L'API est versionnée, documentée avec Swagger et sert les trois clients. Elle couvre :
- Marché et actifs : cours, historiques, fondamentaux, screener et recherche d'actions, avec un cache Redis
- Bourses : horaires de séance, jours fériés par place de marché
- Trading simulé : ordres d'achat et de vente, portefeuille, wallet multi-devises, transactions, avec idempotence sur les ordres et les dépôts. L'argent est virtuel pour l'instant, et la conception prévoit déjà des comptes réels
- Actualités : ingestion, dédoublonnage, traduction automatique et analyse de sentiment par titre, avec modération
- Analyses IA : analyses d'actions générées par un agent
- Comptes et sécurité : inscription avec vérification par e-mail, connexion par code (OTP), jetons d'accès et de rafraîchissement, sessions par appareil, export et suppression du compte (RGPD), acceptation des CGU versionnée
- Notifications : alertes de prix, notifications push et campagnes ciblées depuis le back-office
Sur mobile, l'application permet de rechercher une action, consulter sa fiche (cours, historique, fondamentaux, analyses, actualités), suivre des listes, créer des alertes de prix et passer des ordres simulés. Elle est traduite en français, en anglais et en plusieurs langues africaines, gère la biométrie, et peut afficher un écran de maintenance ou imposer une mise à jour, pilotés par le backend.
Le back-office ne parle jamais directement à la base : il appelle l'API, qui applique les permissions. Chaque administrateur a un rôle (super admin, support, finance, contenu), peut activer une double authentification, et ses actions sont tracées dans un journal d'audit. On y trouve aussi des rapports métier (entonnoir, rétention, volumes) et la santé des tâches planifiées.
- Architecture : découper un produit en plusieurs dépôts autour d'un contrat d'API, et le faire évoluer sans rien casser
- Sécurité : authentification, rôles et permissions, double authentification, audit, conformité RGPD
- Performance et fiabilité : cache, tâches planifiées, idempotence, supervision et alertes
- Industrialisation : Docker, intégration continue, règles de qualité communes à tous les dépôts
- Produit : accompagner un vrai besoin, avec un vrai utilisateur