Introduction

Le projet repose sur deux installations principalement: PostgreSQL et Python. Le site a été conçu en utilisant django, un framework pour le développement web écrit en langage Python. Toute la partie front-end du projet a été conçue dès zéro, en définissant les styles CSS sans s’appuyer sur des frameworks tels que bootstrap. Le système de gestion de bases de données relationnelles choisi est PostgreSQL.

Toutes les explications et instructions trouvées dans ce document partent de l’hypothèse que Python3.8+ et psql (PostgreSQL) 12.7+ sont installés dans votre système. Si vous n’avez pas PostgreSQL, je vous recommande de suivre cette guide. Python est installé par défaut en la plupart de distributions GNU/Linux. Tout le développement de l’application a été fait en Ubuntu et Pop!_OS, toutes les deux basées sur Debian. Aucune garantie n’est donnée pour d’autres distributions.

Gestion des Dépendances

  • Poetry for Python dependencies management.
  • PostgreSQL for database management.

La gestion des dépendances du projet a été faite grâce à Poetry, un gestionnaire de paquets pour Python qui offre l’avantage d’être \(100\%\) reproductible, contrairement à d’autres plateformes de gestion d’environnements très populaires telles que conda. Le manque de reproductibilité de conda vient du fait que son channel principal n’est pas un miroir de l’index de paquets python (PyPI). Pour installer différents paquets, plusieurs channels doivent être ajoutés. Parfois on ne trouve pas le paquet et on finit par l’installer directement via pip. Or, les paquets installés via pip ne seront pas suivis par conda. Si l’on essaie de partager un fichier env.yml produit par conda, on n’a aucune garantie que tous les paquets seront inclus dans le fichier.

Par contre, poetry a un dependency-solver très robuste qui permet de trouver des possibles conflits de dépendances lors de l’ajout via la commande poetry add <dependency>. En étant stricte et informant l’utilisateur des conflits lors de l’ajout, en suggérant comment les résoudre (si possible), poetry garantit la Par défaut, poetry installe les paquets depuis le PyPI, ce qui veut dire qu’il peut trouver tout paquet de l’index officiel de python.

Pour installer poetry et configurer les variables d’environnement nécessaires afin de lancer le serveur, il est recommandé de suivre le guide README du projet.

Un script pour faciliter la configuration se trouve dans le livrable (pas dans le repo car l’inclure dans un répertoire publique représenterait une grande vulnerabilité).

Une fois que script bootstrap_installation.bash exécuté, une nouvelle session bash doit être démarrée afin d’avoir accès à la commande poetry.

À l’intérieur du répertoire où se trouvent pyproject.toml et poetry.lock, exécuter poetry install pour installer toutes les dépendances du projet. Puis, exécuter poetry shell pour activer l’environnement virtuel et lancer l’application.

Organisation du code serveur

 poetry.lock
 pyproject.toml
 prokaryote
  annotation # Application principale
  bootstrap_installation.bash # script d'aide à l'installation
  createdb.bash # idem mais pour la création des tables de la base de données
  dbsetup # Application django pour gestion de la base de données
  debug.py # Script pour analyser la sortie des error-logs 
  gene_importation_error_log.jsonl # logs d'erreur liés à problèmes de parsing
  home # Application qui gère la page d'accueil
  manage.py # Couteau Suisse de django. 
  prokaryote # app. de base qui fait le lien entre toutes les autres
  runall.bash # Script qui permet d'effacer et recréer la base et importer
               # toutes les données
  static # répertoire contenant le css de tout le site
  upload # Application pour importer des nouvelles séquences