Difference between revisions of "Conception - Gestionnaire de packages"

From air
Jump to navigation Jump to search
Line 20: Line 20:
 
* Création d'un package en traitant l'archive (tar, zip, ...) déposée par un utilisateur
 
* Création d'un package en traitant l'archive (tar, zip, ...) déposée par un utilisateur
 
* Ajouter/Supprimer des packages
 
* Ajouter/Supprimer des packages
  +
* Gérer les accès au repository :
* Ajouter/Supprimer des utilisateurs
 
  +
** étudiant : une clé par année
  +
** professeur : sur demande
 
* Rendre le repository disponible (permettre son ajout dans sources.list)
 
* Rendre le repository disponible (permettre son ajout dans sources.list)
  +
* Détecter les mises à jour de packages automatiquement
 
Technologies envisagées : Python (Gestion de CLI, API Rest), MySQL (Base de données/Repo), Shell (Build des packages)
 
Technologies envisagées : Python (Gestion de CLI, API Rest), MySQL (Base de données/Repo), Shell (Build des packages)
   

Revision as of 15:34, 2 February 2017

Voici le détail de la Conception du Projet 2017 : Gestionnaire de package.

Page d'accueil du projet

Équipe

  • Rémi Gattaz
  • Germain Lecorps (Chef de Projet)
  • Thibaut Nouguier
  • Régis Ramel (Scrum Master)

Conception

Schéma de la structure de l'application

Nous avons tout d'abord réalisé une première version du schéma de la structure de l'application. Cette représentation est abstraite, cela nous a permit de définir les principaux composants de l'application.

Nous avons ensuite précisé cette représentation en isolant la partie construction des packages (Builder) et en détaillant les fonctionnalités de chaque composants.

Structure de l'application

Ensemble des fonctionnalités BackEnd à implémenter :

  • Lister les packages présents sur le repository
  • Création d'un package en traitant l'archive (tar, zip, ...) déposée par un utilisateur
  • Ajouter/Supprimer des packages
  • Gérer les accès au repository :
    • étudiant : une clé par année
    • professeur : sur demande
  • Rendre le repository disponible (permettre son ajout dans sources.list)
  • Détecter les mises à jour de packages automatiquement

Technologies envisagées : Python (Gestion de CLI, API Rest), MySQL (Base de données/Repo), Shell (Build des packages)

Ensemble des fonctionnalités FrontEnd à implémenter :

  • Visualisation des packages disponibles
  • Filtrage sur la visualisation des packages (Mots-Clés, Filière, Matière)
  • Connexion utilisateur
  • Dépôt d'une archive pour la création d'un package par un utilisateur authentifié
  • Suppression d'un package existant par l'utilisateur qui a demandé sa création

Technologies envisagées : HTML5, Javascript, MySQL

Choix des langages :

Pour la gestion du dépôt des demandes de packages, nous avons choisi d'utiliser le Python car cela va permettre une gestion de CLI plus simple. De plus, ce langage va nous permettre de proposer une API Rest. Pour la construction du package Debian, nous avons choisi d'utiliser le langage Shell, car cette construction va consister en une succession de commandes Unix.

Choix des technologies pour le Repository :

Plusieurs solutions ont été considérées :

Finalement, notre choix s'est porté sur XXX.

Pour simplifier la phase de développement, un container docker contenant un repository sera créé. Pour le déploiement, l'utilisation d'un serveur sera toutefois préféré.