ChatERP est un mini ERP open-source développé avec React, .NET 8 et FastAPI, selon une architecture en couches rigoureuse conforme au SWEBOK V4.0 (2024).
Ce projet est né d’une collaboration entre humain et intelligence artificielle : il est conçu avec l’assistance de ChatGPT (d'où le nom ChatERP).
Il sert à démontrer mes compétences professionnelles acquises lors de ma formation en Génie Logiciel à l’ÉTS, incluant :
- L'application rigoureuse de patrons de conception logiciels tels que MVC et Adaptateur
- L’organisation modulaire avec architecture orientée qualité, testabilité et maintenabilité
- L’intégration complète de tests unitaires et d’intégration pour chaque couche du système
- L’utilisation de Git, GitHub Projects et d’un workflow professionnel de développement
Accéder à l’application en ligne ➜ ChatERP – www.chaterp.app
- 🎯 Objectif
- 🔧 Mise en route
- ✅ Statut du projet
- 🧭 Processus de développement
- 🧾 Analyse des besoins
- 🏗 Architecture logicielle
- 🧠 Conception
- 🧱 Construction
- ✅ Tests et validation
- 🚀 Déploiement
- 🔧 Maintenance
- ⚖ Licence
- 📚 À propos
Ce projet a pour but :
- De servir de portfolio technique professionnel pour des employeurs ou recruteurs techniques
- De reproduire, à petite échelle, un ERP modulaire comme Odoo, basé sur une architecture multi-systèmes
- D’expérimenter, formaliser et documenter les bonnes pratiques du génie logiciel en développement réel
- Cloner le projet
- Ouvrir le fichier
ChatERP.slndans Visual Studio - Restaurer les dépendances NuGet (clic droit sur la solution > Restaurer)
- Assurez-vous que .NET 8, Node.js 18+, Python 3.11+ et Docker sont bien installés pour le bon fonctionnement du projet
- Lancer les systèmes
chaterp-web,chaterp-serveretchaterp-persistenceviachaterp-compose(voir section 🚀 Déploiement)
- ✅ Documentation complète, incluant analyse, conception et traçabilité
- ✅ Structure multi-systèmes stable (frontend / backend / database)
- ✅ Pipeline de tests automatisés et rapports de couverture par système
- ✅ Module Employés terminé (CRUD complet + tests + validation)
- ⬜ Module Clients à venir
- ⬜ Module Produits à venir
- ⬜ Module Utilisateurs à venir
- ⬜ Module Authentification à venir
Le projet ChatERP repose sur une démarche rigoureuse, séquentielle et itérative, inspirée des bonnes pratiques professionnelles définies par le Software Engineering Body of Knowledge (SWEBOK).
Chaque étape du développement est documentée de manière traçable et structurée, couvrant l’ensemble du cycle de vie logiciel : de l’analyse des besoins à la maintenance.
📚 Référence : SWEBOK Guide V4.0 – IEEE Computer Society
Le développement suit une logique de progression interdocumentaire cohérente.
| Étape | Objectif principal |
|---|---|
| Analyse des besoins | Identifier ce que le système doit accomplir selon les attentes fonctionnelles et non fonctionnelles. |
| Architecture logicielle | Définir la structure technique globale satisfaisant les exigences clés. |
| Conception | Détailler l’architecture en modules, interfaces et modèles de données concrets. |
| Construction | Implémenter le système de manière modulaire, testable et conforme aux standards de qualité. |
| Tests & Validation | Vérifier que le système fonctionne correctement et satisfait les exigences. |
| Déploiement | Mettre en production le système dans un environnement cible contrôlé. |
| Maintenance | Assurer l’évolution, la correction et la stabilité du système à long terme. |
📘 Pour plus de détails, consulter les documents : 0.1-process-overview.md, 0.2-process-traceability.md
ChatERP est un système ERP modulaire destiné à la gestion simplifiée des ressources d’une organisation (employés, clients, produits).
L’application s’adresse à des utilisateurs professionnels ayant besoin d’un outil clair, rapide et extensible pour les opérations courantes.
- Gestion des employés
- Créer, modifier, supprimer et consulter les fiches employé.
- Champs personnalisés : rôle, téléphone, adresse, statut, date d’embauche, photo, etc.
- Gestion des clients (à venir)
- Gestion des produits (à venir)
- Simplicité d’usage : UI épurée, responsive, accessible.
- Transparence des données : tous les traitements sont visibles dans le réseau, via API documentée.
- Modularité technique : architecture découplée, chaque brique peut évoluer indépendamment.
| ID | Titre | Priorité | Statut |
|---|---|---|---|
| UCS-UC-01a | Créer un employé | Critique | ✅ Terminé |
| UCS-UC-01b | Téléverser une photo d’employé | Haute | ✅ Terminé |
| UCS-UC-02a | Consulter la liste d’employés | Critique | ✅ Terminé |
| UCS-UC-02b | Consulter un employé | Critique | ✅ Terminé |
| UCS-UC-03 | Modifier un employé | Critique | ✅ Terminé |
| UCS-UC-04 | Supprimer un employé | Critique | ✅ Terminé |
📘 Pour plus de détails, consulter les documents : 1.1-vision.md, 1.2-requirements.md, 1.3-use-cases.md
ChatERP adopte une architecture en couches, structurée autour de trois systèmes indépendants, chacun responsable d’une fonction claire du système.
| Couche | Système | Technologies principales | Rôle |
|---|---|---|---|
| 🟦 Présentation | Frontend | React (TypeScript), React Query, Axios |
Interface utilisateur interactive et typée |
| 🟩 Métier | Backend | ASP.NET Core (C#), HttpClient, JSON |
Exécution des cas d’utilisation et logique applicative |
| 🟨 Données | Database | FastAPI (Python), SQLite, Pydantic |
API REST pour la persistance et validation stricte des données |
🔗 Communication inter-systèmes via HTTP REST (ex. : Frontend → Backend → Database)
⚙️ Cette architecture favorise :
- la modularité (chaque composant est indépendant),
- la testabilité (tests par service ou bout en bout),
- la scalabilité (changement d’implémentation ou déploiement indépendant),
- et la clarté de responsabilité entre présentation, métier et données.
📘 Pour plus de détails, consulter le document : 2.1-architecture.md
L’application ChatERP adopte une architecture modulaire et découplée conforme aux principes du SWEBOK V4.0 (2024), répartie en trois systèmes indépendants :
| Système | Organisation principale | Objectif principal |
|---|---|---|
| Frontend | components, handlers, adapters |
Isolation UI, validation et communication API |
| Backend | Controllers, Services, Clients |
Séparation réception, logique métier, accès aux données |
| Database | routers, managers, repositories |
Découpage points d’entrée, logique métier et persistance |
- Modularité et séparation nette des responsabilités
- Découplage via interfaces claires et adaptateurs dédiés
- Maintenabilité assurée par une structuration fonctionnelle cohérente
- Testabilité facilitée grâce à des composants autonomes et isolés
- Interopérabilité garantie par des standards ouverts (HTTP REST, JSON)
📘 Pour plus de détails, consulter le document : 3.1-design.md
L’application ChatERP applique une construction logicielle rigoureuse conforme aux principes du SWEBOK V4.0 (2024), assurant qualité, testabilité et maintenabilité par une organisation claire et modulaire des trois systèmes indépendants.
| Système | Organisation principale | Objectif principal |
|---|---|---|
| Frontend | EmployeeComponent.tsx, employeeHandler.ts, httpEmployeeApiAdapter.ts |
Interface utilisateur React, gestion de la logique métier client, validation, orchestration des appels API vers le Backend |
| Backend | EmployeeController.cs, EmployeeService.cs, HttpEmployeeApiClient.cs |
Réception et validation des requêtes API, traitement métier centralisé, communication HTTP avec la Database |
| Database | employee_router.py, employee_manager.py, employee_repository.py |
Exposition des endpoints CRUD via FastAPI, gestion métier locale, accès persistance SQLite |
- Modularité stricte entre systèmes et composants.
- Cohésion forte / couplage faible.
- Interopérabilité totale entre langages et environnements (React, .NET, Python).
- Testabilité native (TDD encouragé, structure miroir code/tests).
- CI/CD automatisé via scripts Docker, GitHub Actions et outils de couverture.
| Couche | Dossier racine | Rôle principal |
|---|---|---|
| Docker | docker/ |
Conteneurisation et orchestration |
| Documentation | docs/ |
Conception, processus, traçabilité |
| Scripts | scripts/ |
Automatisation tests, build, déploiement |
| Backend | systems/backend/ChatERP.Server/ |
Logique métier, API, services |
| Database | systems/database/ChatERP.Persistence/ |
API REST CRUD, validation, persistance |
| Frontend | systems/frontend/ChatERP.Web/ |
Interface utilisateur et appels HTTP |
| Tests | tests/ChatERP.Tests/ |
Tests unitaires et intégration |
ChatERP utilise un tableau Kanban GitHub pour organiser, prioriser et suivre les tâches, garantissant une gestion rigoureuse même en développement solo, avec un lien systématique entre tickets, commits et pull requests.
🔍 Lien pour accéder au Kanban : ChatERP - Tableau Kanban
- Conventions claires : nommage idiomatique, validation rigoureuse, aucune donnée sensible publiée.
- Outils de qualité : eslint, StyleCop, flake8, SonarQube, vitest, xUnit, pytest.
- Documentation intégrée : chaque composant technique est documenté et traçable dans le code.
📘 Pour plus de détails, consulter les documents : 4.1-construction.md, 4.2-projet-structure.md, 4.3-coding-practices.md
Le projet ChatERP intègre une stratégie de tests complète couvrant trois niveaux :
| Niveau | Objectif principal |
|---|---|
| Unitaire | Vérifier chaque composant de manière isolée |
| Intégration | Tester les échanges entre Frontend, Backend, Database |
| Système | Valider les cas d’utilisation de bout en bout |
| Couche | Outils | Répertoire de tests |
|---|---|---|
| Backend | .NET 8 + xUnit | systems/backend/chaterp-server-tests |
| Database | Python + FastAPI + Pytest | systems/database/chaterp-persistence-tests |
| Frontend | React + Vitest | systems/frontend/chaterp-web-tests |
Tous les tests peuvent être lancés en une seule commande :
powershell -ExecutionPolicy Bypass -File .\scripts\tests\run-all-tests.ps1Ou séparément : dotnet test, make test, npm run test — avec ou sans couverture.
📄 Pour les rapports de couverture, consulter : ChatERP – Couverture
L’outil chaterp-compose exécute automatiquement tous les tests avant de construire et déployer les images Docker.
Les tests qui ont échoués bloquent le déploiement, assurant une haute stabilité du système.
Chaque exigence fonctionnelle est validée par des tests associés à des cas d’utilisation mesurables.
Tous les cas critiques (Créer, Consulter, Modifier, Supprimer un employé) sont déjà validés.
📄 Pour plus de détails, consulter les documents : 5.1-tests.md, 5.2-validation.md
Le déploiement de ChatERP est conçu pour être simple, reproductible et sécurisé par des tests automatisés.
| Mode | Commande principale | Utilisation principale |
|---|---|---|
| 🔧 Manuel (sans Docker) | Lancer chaque service depuis le terminal | Développement local rapide |
| 🐳 Automatique (avec Docker) | docker-compose up --build |
Déploiement local unifié et isolé |
✅ Validé (chaterp-compose) |
dotnet run --project docker/chaterp-compose |
Pipeline local complet (tests + build + run) |
| ☁️ Cloud (Render.com) | Docker Hub + Git via render.yaml |
Déploiement continu en développement et production |
Avant chaque déploiement via chaterp-compose, les tests unitaires et d’intégration sont automatiquement exécutés.
Tout échec bloque le lancement, garantissant une stabilité élevée du système.
Les environnements cloud suivants permettent d’interagir avec l’application ChatERP directement via le navigateur :
-
Développement (systèmes séparés) :
-
Production (application complète) :
📄 Pour plus de détails, consulter le document : 6.1-deployment.md
| Type | Description |
|---|---|
| Corrective | Correction d’anomalies |
| Adaptative | Adaptation aux évolutions |
| Perfective | Amélioration continue |
| Préventive | Renforcement et tests |
- Créer un ticket formel
ISSUE-aaaa-mm-DOM-xxx - Classer par type et priorité (P1, P2, P3)
- Travailler sur une branche dédiée (
fix/...ouimprove/...) - Lancer les tests (
xUnit,Vitest,pytest) et mettre à jour la couverture - Soumettre une Pull Request avec CI/CD via
chaterp-compose - Valider et déployer avec traçabilité
| ID | Type | Statut | Description |
|---|---|---|---|
| ISSUE-2025-08-CLI-001 | Perfective | 🕒 À venir | Ajout d'un tri par nom de clients |
📄 Pour plus de détails, consulter le document : 7.1-maintenance.md
Ce projet est distribué sous la licence Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Vous pouvez le partager et le modifier avec attribution, à condition de ne pas en faire un usage commercial.
📄 Pour plus de détails, consulter le document : LICENSE
ChatERP est un projet fictif, conçu dans le cadre d’une démonstration de compétences professionnelles en génie logiciel. Il est destiné à des employeurs ou recruteurs techniques.
Le projet est rigoureusement documenté et n’a aucune visée commerciale, ne collecte aucune donnée, et n’est affilié à aucune entreprise réelle portant un nom similaire.
Développé par Étienne Paquet, diplômé en Génie Logiciel de l’ÉTS – Montréal.
© 2025 ChatERP – Projet fictif – Portfolio. Tous droits réservés.