Aller au contenu

Backend — Vue d'ensemble

Le SIM Backend est l’API REST NestJS 11 / TypeScript de GLOBAL SIM GROUP. Il dessert tous les modules métier — Résidence, Market, Pressing, Restaurant, Salle de fête, Facturation, Finances et RH — sur une seule base PostgreSQL via Kysely et des types générés.

  • Le contrat d’architecture et la frontière d’accès PostgreSQL typée
  • Le lancement de l’API en local
  • L’accès aux données avec Kysely, les types générés et la frontière de transaction d’audit
  • L’authentification, la rotation des refresh tokens JWT et le RBAC
  • Les conventions API : contrôleurs, DTO, validation et gestion d’erreurs
  • Les modules métier et leurs routes
  • Les intégrations : Redis, S3/MinIO, PDF, Prometheus, BullMQ
  • L’exploitation, Docker, le déploiement et l’invariant db:verify
  • Les tests avec Jest et les tranches sur base réelle
  • Les recettes du cookbook pour les tâches courantes du contributeur
Fenêtre de terminal
cd sim-backend
pnpm install
pnpm db:verify # migre la base voisine, régénère generated.ts, compile, teste
pnpm start:dev # rechargement à chaud sur http://localhost:3000
# Swagger sur http://localhost:3000/docs
Principe Mise en œuvre
Frontière de types générés src/db/generated.ts est produit par dbgen/dbgen.mjs depuis PostgreSQL.
Pas d’ORM Query builder Kysely ; repositories explicites sans classe de base.
Propagation de l’audit Chaque écriture s’exécute dans scope.audit(user.id, async (a) => …) qui positionne sim.id_utilisateur.
Réseau en chaînes bigint, numeric et les dates circulent en chaînes ; les services castent vers les types DB brandés.
Surface CRUD figée DbAccess expose égalité + order/limit/offset ; les requêtes complexes sont des méthodes de repository explicites.
Le schéma appartient à sim-database Les migrations sont Flyway, pas Nest ; pnpm db:verify garantit la fraîcheur de generated.ts.
Module Rôle
core Paramètres globaux
client Référentiel client unique, pièces d’identité, contacts d’urgence
residence Bâtiments, chambres, contrats, loyers, dépôts, courts séjours, portail
market Produits, stock, ventes, codes-barres
pressing Cycle de vie des commandes de pressing
restaurant Plats, catégories, commandes
salle_fete Réservations de salle d’événements
facturation Services, factures, règlement
finances Paiements, dépenses, caisses, consolidation
rh Employés, présences, paie
dashboard Tuiles agrégées
rapports Rapports globaux, financiers, d’activité, RH
audit Journal d’audit en lecture seule et masquage
auth / admin JWT, RBAC, utilisateurs, rôles, permissions