Modifications entre les versions 8 et 9
Version 8 à la date du 2006-11-28 10:40:21
Taille: 7759
Éditeur: ThomasNoël
Commentaire:
Version 9 à la date du 2008-02-21 22:09:19
Taille: 7759
Éditeur: localhost
Commentaire: converted to 1.6 markup
Texte supprimé. Texte ajouté.
Ligne 5: Ligne 5:
[[TableOfContents]] <<TableOfContents>>
Ligne 23: Ligne 23:
  * on veut pouvoir générer une base d'authentification ["MySQL"] (avec `libnss-mysql-bg`)
  * on veut pouvoir générer une base d'authentification ["Samba"] (dans MySQL ou des fichiers, via `pdbedit`)
  * on veut pouvoir générer une base d'adéls pour ["postfix"] (dans MySQL ou des fichiers)
  * on veut pouvoir générer une base de boîtes aux lettres pour ["dovecot"] (dans MySQL ou des fichiers)
  * on veut pouvoir générer une base d'authentification [[MySQL]] (avec `libnss-mysql-bg`)
  * on veut pouvoir générer une base d'authentification [[Samba]] (dans MySQL ou des fichiers, via `pdbedit`)
  * on veut pouvoir générer une base d'adéls pour [[postfix]] (dans MySQL ou des fichiers)
  * on veut pouvoir générer une base de boîtes aux lettres pour [[dovecot]] (dans MySQL ou des fichiers)
Ligne 28: Ligne 28:
  * on souhaiterait pouvoir générer une base d'authentification ["NIS"] (dans `/etc/passwd`, `/etc/shadow` et `/etc/group`)
  * on souhaiterait pouvoir générer une base de boîtes aux lettres pour ["courier"] (dans MySQL ou des fichiers)
  * on souhaiterait pouvoir générer une base d'authentification [[NIS]] (dans `/etc/passwd`, `/etc/shadow` et `/etc/group`)
  * on souhaiterait pouvoir générer une base de boîtes aux lettres pour [[courier]] (dans MySQL ou des fichiers)
Ligne 34: Ligne 34:
  * on souhaiterait pouvoir générer une base d'authentification ["LDAP"] (mais... finalement non)   * on souhaiterait pouvoir générer une base d'authentification [[LDAP]] (mais... finalement non)

Cette page présente ma proposition de version 0. -- JeanChristopheAndré

Introduction

Ma vision des choses :

  • le logiciel doit comprendre un noyau dur et des extensions
  • le noyau dur doit consister en ce qui est indispensable, commun à toutes les situations

  • les extensions consistant alors en ce qui peut être utile d'ajouter, suivant le contexte

  • les extensions doivent donc être modulaires, configurables et pouvoir être (dés)activées, selon les besoins
  • toutes les informations doivent être dans une unique base de données, source pour tout le reste

Partant de là on peut détailler :

  • le noyau dur :
    • on veut gérer des usagers, il faut donc une base de données pour les enregistrer

    • on veut confier cette gestion à des non-techniciens, il faut donc une interface web

    • on veut pouvoir étendre les fonctionnalités, il faut donc définir une API

    • on veut pouvoir retrouver les traces des opérations, il faut donc une journalisation

  • les extensions indispensables :

    • on veut pouvoir générer une base d'authentification MySQL (avec libnss-mysql-bg)

    • on veut pouvoir générer une base d'authentification Samba (dans MySQL ou des fichiers, via pdbedit)

    • on veut pouvoir générer une base d'adéls pour postfix (dans MySQL ou des fichiers)

    • on veut pouvoir générer une base de boîtes aux lettres pour dovecot (dans MySQL ou des fichiers)

  • les extensions souhaitées :

    • on souhaiterait pouvoir générer une base d'authentification NIS (dans /etc/passwd, /etc/shadow et /etc/group)

    • on souhaiterait pouvoir générer une base de boîtes aux lettres pour courier (dans MySQL ou des fichiers)

    • on souhaiterait pouvoir intervenir depuis la ligne de commande (pas moi...)
    • on souhaiterait pouvoir gérer les quota d'impression (via CUPS)
    • on souhaiterait pouvoir gérer les paiements reçus (abonnement, commande de document, remboursement, état de caisse, bilan mensuel)
  • les extensions possibles :

    • on souhaiterait pouvoir générer une base d'authentification LDAP (mais... finalement non)

La base de données

L'objet « personne »

Il sert à identifier un utilisateur dans la « Vraie Vie »™. Les acteurs de ce système de gestion sont aussi des utilisateurs et doivent donc également s'y trouver enregistrés.

id

Identifiant unique d'une personne

nom

Son(ses) nom(s) tel(s) qu'indiqué(s) sur une pièce d'identité

prenom

Son(ses) prénom(s) tel(s) qu'indiqué(s) sur une pièce d'identité

nom_affichage

Le nom d'affichage souhaité

genre

Son genre

date_naissance

Sa date de naissance

nom_utilisateur

Nom d'utilisateur des systèmes

mot_de_passe

Mot de passe de l'utilisateur

adel

Son adél de contact préférée

adel_alternative

Son adél de contact alternative (en cas d'injoignabilité sur la précédente)

adresse_personnelle

Son adresse personnelle

adresse_professionnelle

Son adresse professionnelle

telephone_personnel

Son numéro de téléphone personnel

telephone_professionnel

Son numéro de téléphone professionnel

telephone_mobile

Son numéro de téléphone mobile

telephone_fax

Son numéro de fax

commentaire

Un commentaire éventuel

L'objet « groupe »

Il sert à créer des groupes de personnes.

id

Identifiant unique d'un groupe

nom

Nom du groupe

description

Description du groupe

La relation « personne_groupe »

Elle sert à indiquer quelle personne appartient à quel groupe.

id

Identifiant unique d'une appartenance

id_personne

Identifiant de la personne

id_groupe

Identifiant du groupe

L'objet « abonnement »

Il sert à enregistrer une période d'activité d'un utilisateur.

id

Identifiant unique d'un abonnement

id_personne

Identifiant de l'utilisateur concerné

id_groupe

Identifiant du groupe de l'utilisateur pendant cette période

id_implantation

Identifiant de l'implantation où se situe l'activité

date_debut

Date de début d'activité

date_fin

Date de fin d'activité

commentaire

Un commentaire éventuel sur l'activité

L'objet « journal »

Il sert à retrouver une opération faite dans le système. J'imagine un besoin simple au départ : qui fait quoi et quand.

id

Identifiant unique d'une entrée de journal

id_personne

Identifiant de l'utilisateur ayant opéré

date_entree

Date de cette entrée de journal

description

La description textuelle de l'opération

Extension de gestion de commandes de documents

L'objet « commande_document »

Il sert à enregistrer une commande de document primaire par un utilisateur.

id

Identifiant unique d'une commande

id_personne

Identifiant de l'utilisateur concerné

id_implantation

Identifiant de l'implantation où est faite la commande

date_saisie

Date de saisie de la commande

date_commande

Date de lancement de la commande

date_reception

Date de réception de la commande

reference

Référence de la commande (numéro INIST ou autre)

commentaire

Un commentaire éventuel sur la commande

id_langue

Identifiant de la langue de la commande

nb_pages

Nombre de pages dans la commande

Extension de gestion financière

<!> voir le problème de la monnaie ! <!>

L'objet « recu »

Il sert à enregistrer le reçu d'un paiement, que ce soit en crédit ou en débit.

id

Identifiant unique d'un reçu

id_recu_origine

Lien vers le reçu d'origine en cas de remboursement après clôture

id_personne

Identifiant de l'utilisateur recevant le reçu

id_implantation

Identifiant de l'implantation où est émis le reçu

date_saisie

Date de saisie du reçu

date_valeur

Date de valeur du reçu

credit

Valeur du reçu (perçue)

debit

Valeur du reçu (remboursée)

Note : credit et debit indiquent des sommes dans le même mois ; les remboursements d'un mois sur l'autre devant faire l'objet d'un nouveau reçu pour des raisons de clôture financière mensuelle. Cela permet ensuite de générer un « état de caisse » mensuel qui correspond effectivement au contenu de la caisse à la fin de chaque mois.

L'objet « recu_abonnement »

Il sert à enregistrer le paiement d'un abonnement.

id

Identifiant unique d'un paiement d'abonnement

id_recu

Identifiant du reçu pour le paiement

id_abonnement

Identifiant de l'abonnement concerné

L'objet « recu_commande »

Il sert à enregistrer le paiement d'une commande.

id

Identifiant unique d'un paiement de commande

id_recu

Identifiant du reçu pour le paiement

id_commande_document

Identifiant de la commande concernée


<!> Ce qui suit ne doit pas être pris en compte : ce sont des notes temporaires ! <!>

Nous aurons à manipuler :

  • des objets groupe

  • des objets compte

  • des objets commande

Projet/GUIA/SchemaBase/HistoriquePropositionJC (dernière édition le 2008-02-21 22:09:19 par localhost)