Skip to content

Organisation du projet

Diagho Project

Les différentes applications du projet

Architecture

L'architecture du projet se structure en 3 niveaux

  • Organisation Microservice
  • Applications Django
    • Application primaire
    • Application factory
    • Application analyse

Organisation Microservice

Les différents mircroservices sont conteneurisés avec Docker

  • reverse-proxy (Nginx)
  • core (Application Django)
  • Volume: static, media et biodb
  • core-db (Base de données PostgreSQL)
  • Volume: core-db-data
  • broker (RabbitMQ)
  • Worker: worker-gateway, worker-computation, scheduler
  • Volume: broker-data
  • cache (Redis)
  • Volume: cache-data
  • front (Node.js / Webpack)
  • Volume: static

Lancer un projet

  • Makefile --> Les différents raccourcis pour lancer les commandes python
  • docker-compose.yml --> Gestion des containers prod
  • docker_compose.dev.yml --> Gestion des containers dev
  • /services/backend --> Les différentes applications du back
  • /services/frontend --> Les différentes application du front
  • /services/reverse-proxy --> Paramètrage des serveux web

Les différents services sont

Services Diagho core Diagho Hugo Prod
core django ❌ ✔
core_db postgres ✔ ❌
reverse-proxy Nginx ✔ ✔
frontend Nodejs ✔ ❌
worker-gateway - ❌ ✔
worker-computation - ❌ ✔
scheduler - ❌ ✔
vep - ❌ ✔
RabbitMQ - ❌ ✔
Redis - ❌ ✔

Variables d'environnement

  • /.env --> La liste des variables d'environnement pour le projet

Pour modifier un port avant de faire le make dev, il faut le spécifier avant la commande

1
 CORE_PORT=18080 make dev

Back-end

Dans le conteneur diagho-core /services/backend, pour initialiser l'environnement

1
2
3
4
5
6
7
8
9
$ make requirements
$ make install-dev
$ make migrations
$ make migrate
$ make createsuperuser
$ make collectstatic
$ make populate-db
$ make load-catalog
$ make runserver # Check that all is working

Workflow GitHub

  • main --> Branche équivalente à la prod
  • staging --> Environment stable. N'accepte que les pull requests de la branche dev
  • dev --> Environnement de développement. Les commits directs sont à éviter.
  • feature --> Branche qui va être créée pour chaque nouvelle feature et on merge sur dev

1- Créer une nouvelle branche 'feature' avec un nom descriptif

2- Toujours ouvrir une pull request vers dev lorsque l'on créé une nouvelle branche 'feature' (Sur l'interface github)

3- Faire un rebase sur la branche 'feature' lorsqu'il y a eu des modifications sur dev, et faire un push (CLI)

4- Lorsque le code est terminé on fait une demande de review (Sur l'interface github)

5- Faire un Squash and merge de la branche feature sur staging et supprimer la branche 'feature' (Sur l'interface github)

Coding Style

  • Black --> Reformate le code

Biodb

Pour créer le volume biodb-data-dev :

1
docker volume create --name biodb-data-dev --opt type=none --opt device=media/data/diagho-prod/biodb --opt o=bind

En remplaçant /media/data/diagho-prod/biodb par le chemin qui vous arrange.

Pour télécharger le fichier biodb:

Link

Communication


Last update: October 4, 2023