Skip to content
This repository was archived by the owner on Feb 3, 2026. It is now read-only.
/ back Public archive

Système backend intelligent de gestion de l'application

Notifications You must be signed in to change notification settings

ERP-CNAM/back

Repository files navigation

ERP CNAM - BACK

API de gestion des joueurs abonnés pour l'application ERP CNAM.

Choix d'architecture : Design First avec génération automatique du code depuis OpenAPI


Démarrage rapide

# Cloner et installer
git clone https://github.com/ERP-CNAM/back.git
cd back
npm install

# Définisser les variables d'environnement
cp .env.example .env

# Lancer en mode développement
npm run dev

L'API sera accessible sur http://localhost:3000 et la documentation de l'API sur http://localhost:3000/swagger.


Workflow Design to Code API

Ce projet suit une approche Design First : vous définissez d'abord le contrat API dans OpenAPI, puis le code est généré automatiquement.

1. Design - Définir l'API

Modifiez api/spec/openapi.yaml pour ajouter ou modifier un endpoint.

2. Generate - Générer les interfaces, routes, et types

npm run generate

Cette commande génère automatiquement dans api/ :

  • Types TypeScript (GetUser, GetUserResponder)
  • Schémas de validation Zod v4 (dans schemas.ts)
  • Interface Implementation pour assembler les handlers

3. Implement - Implémenter la logique métier

Créez votre handler dans le sous-répertoire approprié de src/handler/ (public, authenticated, admin) en utilisant les types générés.

Enregistrez ensuite le handler dans src/handler/index.ts.

4. Secure - Configurer la sécurité

Toute nouvelle route doit être déclarée dans src/middleware/routes.config.ts pour définir son niveau d'accès (public, authenticated, admin).


Structure du projet

back/
├── api/
│   ├── spec/
│   │   └── openapi.yaml    # Source de vérité - Contrat API
│   ├── generated.ts        # Routeur Express généré
│   ├── models.ts           # Types TypeScript générés
│   └── schemas.ts          # Validations Zod générées
├── src/
│   ├── handler/            # Logique métier par niveau d'accès
│   │   ├── public/         # Routes publiques (login, reg)
│   │   ├── authenticated/  # Routes utilisateurs connectés
│   │   └── admin/          # Routes administrateurs
│   ├── repository/         # Accès aux données (In-memory & Postgres)
│   ├── database/           # Schémas et migrations (Drizzle)
│   ├── middleware/         # Auth et sécurité des routes
│   └── index.ts            # Point d'entrée Express
├── docs/                   # Documentation et ADRs
└── test/                   # Tests unitaires et intégration

Technologies utilisées


Support

Pour toute question ou problème, ouvrez une issue sur GitHub.

Documentation

Une documentation complète incluant l'architecture (ADR) et les détails des logiques implémentées est disponible et consultable en ligne sur : https://erp-cnam.github.io/back/

About

Système backend intelligent de gestion de l'application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors