MicroCRM est une application de démonstration utilisée pour le projet OpenClassrooms P6.
L'application MicroCRM est une implémentation simplifiée d'un "CRM" (Customer Relationship Management). Les fonctionnalités sont limitées à la création, édition et la visualisations des individus liés à des organisations.
Ce monorepo contient les 2 composantes du projet "MicroCRM":
- La partie serveur (ou "backend"), en Java SpringBoot 3;
- La partie cliente (ou "frontend"), en Angular 17.
La CI/CD GitLab organise les contrôles et les
releases. Terraform provisionne le POC AWS, Ansible configure le cluster K3s,
puis Helm déploie l'application dans les namespaces staging et production du
même cluster. La configuration CI se trouve dans .gitlab-ci.yml
et .gitlab/ci/.
-
Se positionner dans le répertoire
backavec une invite de commande:cd back -
Construire le JAR:
# Sur Linux ./gradlew build # Sur Windows gradlew.bat build
-
Démarrer le service:
java -jar build/libs/microcrm-0.0.1-SNAPSHOT.jar
Puis ouvrir l'URL http://localhost:8080 dans votre navigateur.
-
Se positionner dans le répertoire
frontavec une invite de commande:cd front -
(La première fois seulement) Installer les dépendances NodeJS:
npm install
-
Démarrer le service de développement:
npx @angular/cli serve
Puis ouvrir l'URL http://localhost:4200 dans votre navigateur.
Dépendances
- Google Chrome ou Chromium
Dans votre terminal:
cd front
CHROME_BIN=</path/to/google/chrome> npm testDans votre terminal:
cd back
./gradlew testLa CI construit deux images distinctes. Les builds applicatifs doivent être produits avant les images :
bash scripts/ci/build.sh --component all
docker build --file misc/docker/frontend.Dockerfile --tag microcrm-frontend:local .
docker build --file misc/docker/backend.Dockerfile --tag microcrm-backend:local .Le frontend appelle l’API avec la route relative /api. Caddy transmet cette
route au conteneur backend par son nom de service ; aucune adresse IP n’est
intégrée au code.
Le smoke test local démarre les images avec PostgreSQL, vérifie les healthchecks et exécute un parcours de création et de lecture :
sh scripts/ci/smoke.sh \
--frontend-image microcrm-frontend:local \
--backend-image microcrm-backend:local \
--database-image postgres:17.10-alpine3.23Pour reprendre le projet depuis un clone et effectuer un premier déploiement
sur AWS, consulter docs/GET-STARTED.md.
La documentation peut être adaptée aux besoins de l'équipe : information jamais transmise par la couleur seule et diagrammes légendés, titres Markdown cohérents et textes alternatifs pour les lecteurs d'écran, procédures utilisables au clavier avec des commandes copiables.
- Stack et architecture.
- Terraform, Ansible et Helm.
- Pipeline et stratégie.
- Backup, rollback et supervision.
- Tests, sécurité et DORA.
scripts/bootstrap/bootstrap.md— Initialisation AWS et GitLab.scripts/ci/scripts.md— Scripts utilisés par la pipeline.

