SRS - Gestionnaire de packages

From air
Jump to navigation Jump to search

Voici la fiche SRS 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)

Description générale

Le but du projet

Le but de ce site est de fournir une plateforme de rencontre et de mise en relation des particuliers ou des professionnels qui souhaitent proposer des produits à la vente d'occasion, ou chercher des articles hors des magasins ou sites de vente traditionnels. Ce site a pour but d'être accessible et facile d'utilisation pour les personnes qui n'ont pas une grande expérience dans l'utilisation de sites webs.

Fonctionnalités

  • 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
  • Création d'un package en traitant l'archive (tar, zip, ...) déposée par un utilisateur
  • Ajouter/Supprimer des packages
  • Ajouter/Supprimer des utilisateurs
  • Mise à jour / maintenance automatique des packages

Utilisateurs potentiels

  • 1 Étudiant

Personne souhaitant téléchargé des packages spécifiques à sa formation

  • 2 Enseignant

Personne souhaitant créer un package pour sa matière.

  • 3 Administrateur

Il peut également ajouter des packages ou en supprimer. Il peut aussi accéder à la maintenance des packages en cas d'erreur pendant l'automatisation.

Cas d'utilisations

//TODO

//Nécessite de mettre au point l'IHM

Contraintes générales

Pour déposer un package :

  • Avoir un compte enseignant pour s'authentifier sur la plate-forme
  • Avoir un minimum de connaissances sur les outils qui doivent être déposé pour constituer l'archive

Environnement de l'application :

  • Les composants builder et coordinateur sont sur des machines de types Debian (64 bits).
  • Le Repository doit également être un Debian (64 bits)
  • Le traitement des archives doit s'effectuer avec un langage de script (shell, ruby, perl).

Fonctionnement des composants

Schéma de l'application

Interface Web

Liste des packages

Cette page sert aux utilisateurs à consulter la liste des packages disponibles sur le repository.

En haut de la page, un tutoriel explique aux utilisateurs comment utiliser le repository sur linux, c'est à dire à le rajouter dans les sources de packages, puis à installer les packages avec les commandes "sudo apt-get install ...".

Le reste de la page correspond à la liste des packages disponibles sur le repository, ainsi que des options de filtre pour restreindre la liste à certaines filières, matières, etc.

Dépôt d'une contribution

Cette page consiste en un formulaire à remplir pour proposer une contribution.

En haut de la page, un tutoriel explique aux utilisateurs ce qu'ils doivent saisir dans chacun des champs du formulaire, ainsi que les différents types de dépôts gérés par le système.

L'utilisateur doit d'abord se logguer avec ses identifiants AGALAN, puis effectuer le dépôt de l'outil. Il y a pour cela plusieurs solutions :

  • L'utilisateur dépose un lien Git contenant déjà tout ce dont le système a besoin pour générer un package.
  • L'utilisateur dépose un lien Git ne contenant pas tous les fichiers nécessaires à la création du package.
  • L'utilisateur dépose un lien vers une archive (tarball) sur le site de téléchargement de l'outil.
  • L'utilisateur dépose directement la tarball en mode dépôt de fichier.
  • L'utilisateur n'a pas su trouver un lien pour télécharger l'outil. Il peut alors déposer un lien vers le site de l'outil, pour laisser au gérant du système le soin de trouver les fichiers dont le système a besoin.

De plus, l'utilisateur doit renseigner le nom du package, le numéro de version, l'architecture (32/64 bits), le maintainer (responsable), la filière pour laquelle cet outil est requis (ex : RICM5), la matière pour laquelle cet outil est requis (ex : TMA). Il est possible de laisser une description expliquant l'utilité de l'outil, ainsi que de spécifier des dépendances.

La contribution doit ensuite être soumise pour être envoyé à l'administrateur pour la validation.

Administration

Cette page propose des outils d'administration du repository, tels que :

  • La liste des packages disponibles
  • La page de validation/refus des contributions
  • Une interface de monitoring (logs)

Structure du BackEnd

Controller

Builder

Le Builder est le composant qui va gérer la création du package. Il utilise les lien Git envoyé par le Controller pour obtenir les fichiers sources de l'outil à packager.

Le Builder est basé sur un composant Docker de génération de Package (choix à définir). La construction consiste en une suite de commande Unix, c'est pourquoi nous avons choisi le Shell.

Nous avons décidé qu'une fois le package crée, le Builder le renvoi au Controller au lieu de directement le copier sur le Repository. Nous avons fait ce choix pour ce soit le Controller qui effectue les copies sur le Repository.

Repository

Le Repository contient les fichiers nécessaires aux stockages des packages :

  • Les packages (fichiers .deb)
  • Les clés GPG (Voir si l'on peut générer plusieurs clés publiques à partir d'une clé privée)
  • Les hash des clés

Le Repository est mis à disposition du public grâe à une url. L'accès se fait grâce à une clé GPG et les ports 80/443 (HTTP/HTTPS).

Appendices

Structure du SRS

The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.

References :