Skip to content

Repository files navigation

MicroCRM (P5 - Expert DevOps - Gérez le cycle de vie de développement logiciel)

MicroCRM est une application de démonstration basique ayant pour être objectif de servir de socle pour le module "P5 - Expert DevOps".

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.

Page d'accueil Édition de la fiche d'un individu

Code source

Organisation

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.

Une intégration basique avec Gitlab CI est définie via le fichier .gitlab-ci.yml.

Démarrer avec les sources

Serveur

Dépendances
Procédure
  1. Se positionner dans le répertoire back avec une invite de commande:

    cd back
  2. Construire le JAR:

    # Sur Linux
    ./gradlew build
    
    # Sur Windows
    gradlew.bat build
  3. Démarrer le service:

    java -jar build/libs/microcrm-0.0.1-SNAPSHOT.jar

Puis ouvrir l'URL http://localhost:8080 dans votre navigateur.

Client

Dépendances
Procédure
  1. Se positionner dans le répertoire front avec une invite de commande:

    cd front
  2. (La première fois seulement) Installer les dépendances NodeJS:

    npm install
  3. Démarrer le service de développement:

    npx @angular/cli serve

Puis ouvrir l'URL http://localhost:4200 dans votre navigateur.

Exécution des tests

Client

Dépendances

  • Google Chrome ou Chromium

Dans votre terminal:

cd front
CHROME_BIN=</path/to/google/chrome> npm test

Serveur

Dans votre terminal:

cd back
./gradlew test

Images Docker

La 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.23

Documentation

Pour reprendre le projet depuis un clone et effectuer un premier déploiement sur AWS, consulter DOCS/GET-STARTED.md.

Architecture et infrastructure

CI/CD et maintenance

Qualité et scripts

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages