Aller au contenu

Documentation backend ikloze

ikloze est un CRM SaaS WhatsApp-first conçu pour les closers et les équipes de vente en Afrique. Il permet à un entrepreneur de capter des leads via des formulaires partageables, de les distribuer à ses closers, de piloter un pipeline de vente, et d'encaisser des paiements par Mobile Money ou carte bancaire — avec répartition automatique des commissions et un système d'escrow.

Ce site documente le backend : son architecture, ses modules métier, son API HTTP et les conventions de développement.


Par où commencer

  • Démarrage Installer, configurer l'environnement, lancer le serveur et la suite de tests.

  • Architecture Les cinq couches, le multi-tenant, les permissions, l'accès aux données et la gestion d'erreurs.

  • Modules Les domaines métier regroupés : Cœur, CRM & ventes, Finance, Transverses.

  • API HTTP Authentification, gardes, formats d'erreur et accès au Swagger.


Concept fondamental : le workspace

Tout dans ikloze est scopé à un workspace (espace de travail). Un entrepreneur crée un workspace, y invite des membres, et toutes les données (formulaires, leads, paiements) appartiennent à ce workspace. C'est la frontière multi-tenant fondamentale — voir Multi-tenant.


Stack technique

Préoccupation Technologie
Framework NestJS 11
ORM Sequelize 6 (SQLite en dev/test, PostgreSQL en prod)
Validation Zod
Authentification JWT (access + refresh) via jsonwebtoken
Identifiants ULID (26 caractères, triables)
Mots de passe bcrypt
Téléphone libphonenumber-js
Suivi d'erreurs Sentry
Rate limiting @nestjs/throttler
Runtime Node.js 24, gestionnaire de paquets pnpm

Organisation du dépôt

Le projet n'a pas de dossier src/. La structure est à plat, par couche :

ikloze-backend/
├── domain/            # Entités métier (données pures + fromRecord) et erreurs
├── app/<module>/      # Services use-case (TypeScript sans framework) + schémas Zod
├── web/<module>/      # Couche HTTP : contrôleurs NestJS, modules, gardes, filtres
├── adapters/          # Intégrations externes (email, paiement, stockage, IA…)
├── database/sequelize/# Modèles, migrations, accesseurs typés, associations
├── tests/             # Tests d'intégration et e2e, factories
└── docs/              # Cette documentation (MkDocs)

Voir Architecture › Vue d'ensemble pour le rôle de chaque couche.

Source de vérité

Les spécifications de fonctionnalités proviennent des issues GitHub du projet #3. Le fichier CLAUDE.md à la racine reste le guide canonique des conventions ; cette documentation l'étend et l'illustre.