travaux:specifications_si

Ce document consiste à faire le tour des réflexions fonctionnelles et techniques d'un SI de FAI(libre ;)) associatif.

Fonctionnalités

Le périmètre fonctionnel de cet outil peut être découpé en plusieurs “espaces” :

L'espace public contient toutes les informations directement accessibles par tous concernant l'association.

  • Une “vitrine” de l'association avec présentation, liens vers les documents de l'association statuts, actualites, contacts. (?) Cette partie peut être déléguée à un cms, plus apte à faire le boulot (?)
  • Une fonctionnalité de test d'elligibilite de ligne à partir d'un numéro (peut être découpler cette feature du processus de demande d'abonnement en tant que tel)
  • L'accès à un formulaire d'adhesion à l'association. Ce formulaire doit créer un adhérent “inactif” dans le SI le temps du passage dans le workflow 'adhésion'
  • L'accès à un formulaire d'abonnement (l'adhésion nécessaire pour aller au bout du formulaire)

Une fois le processus d'adhésion terminé, le nouvel adhérent peut accéder aux fonctions suivantes via une URL (ou bien via une adresse unique )

  • Gérer les informations de son profil (modifier les données du profil : données du profil à définir)
  • Accéder au bout de compta le concernant
  • Consulter sa consommation de bande passante : pour cette fonction, prendre exemple sur celles présentes chez FDN
  • Signaler un problème : dans ce cas, dans le souci de ne pas réinventer la roue, envisager un interfaçage avec un outil de gestion de demandes / anomalies (voir ce qu'il est possible de faire avec flyspray côté FDN)
  • Consulter les logs détenus par l'association (?) (logs de connexion / déconnexion ? autres ? questions juridiques associées ?)
  • la gestion du suivi des adhesion : suivi du workflow de l'adhésion (avec état en cours de l'adhésion), production des documents papiers à renvoyer (PDF). Le workflow des adhésion comprend des actions “automatisées” (inscription du futur adhérent, production des papiers) et des actions “manuelles” (validation du dossier avec pièces justificatives)
  • la gestion du suivi des abonnements Internet : suivi du workflow de l'abonnement (test d'elligibité → production des documents papiers à renvoyer → construction de la ligne –

    > création du compte radius). De la même manière que les adhésions, ce workflow comprend des actions automatisées et manuelles. La demande de construction de ligne au fai "parent" doit pouvoir être interchangeable si nécessaire (interface / norme à définir peut être sur le modèle JSON existant de l'interface FDN). (?) L'allocation des adresses IP se fait de manière automatisée (?).

    • la gestion des prelevements automatiques. Ici se pose le premier point techniquement moins simple : trouver un outil qui sait causer la norme EBICS (protocole remplaçant à terme l'ancien “Etebac”). Les spécifications sont disponibles sur le site officiel (http://www.ebics.org/).
    • la gestion des comptes bancaires des adherents : CRUD (D==désactivation) des comptes, avec pour chaque ajout une autorisation effective de l'adhérent envers sont établissement bancaire

    I

    l faudrait complètement séparer la partie facturation et gestion des tarifs du SI de gestion des lignes et adhérents. Problème: Cas des mois incomplets.

Il ne paraît pas idiot de segmenter les différentes fonctions par thème (administratif / adminsys, support, par exemple), à priori, un framework type django sait assez bien faire ce type de dispatch de droits fonctionnels.

Architecture technique

Ressortent assez clairement de cette architecture :

  • une base de données type (My|Postgre)Sql
  • des libs “métier” implémentant les fonctions
    • une application web donnant accès à la plupart des fonctionnalités décrites ci-dessous, avec des accès plus ou moins séparés en fonction des rôles fonctionnels (bureau / adminsys / support)
    • des libs discutant avec des entités externes (radius, serveur mail, banques)
    • des tâches automatisées récurrentes cron-ées, les prélèvements automatique (si possible), et création des enregistrements qui vont bien dans le logiciel de compta (y compris gestion de différents plans de facturation) ;
    • l'interfaçage avec
      • le(s) fournisseur(s) pour les demandes de création de création de ligne et leur suivi ;
      • le(s) fai “enfants” pour (pareil) demandes de création de création de ligne et leur suivi, lesquelles sont exécutées à la demande (une techno de type web semble bien coller à ce besoin)

    Définitions des données

Adhérent est défini par :

  • id (num. adhérent)
  • nom complet (raison sociale pour ass. entreprise)
  • login (définir un pattern)
  • password (md5, sha1 + salt ou autre ? non réversible ?)
  • date d'adhésion
  • type (individu, association, entreprise)
  • date de demande d'adhésion
  • date d'adhésion effective
  • role adherent et/ou adminsys et/ou bureau et/ou support (le role d'un adhérent “multiple” type association ou entreprise ne peut être plus “haut” qu'adhérent simple)
  • adresse
  • code postal
  • ville
  • adresse email 1
  • adresse email 2
  • tel 1 (?)
  • tel 2 (?)
  • siren (pour association / entreprise)
  • positionnement géographique (pour établissement de la cartographie…pas sûr peut être déduit via apis type OpenStreetMap ?)
  • coordonnées bancaires.

Adresses IP

  • 1 ↔ 0…n Adherent
  • adresse ip assignés v4 / v6 (sous reseau)


Abonnement

  • 1 ↔ 0…n Adresses IPs
  • 1 ↔ 1 Données bancaires
  • numéro de tel
  • date de demande
  • date de constuction de la ligne
  • dernière connexion (?)


Facturations (?)

  • 1 ↔ 0…n Abonnement
  • date
  • état
  • objet
  • montant
  • travaux/specifications_si.txt
  • Dernière modification: 2012/09/17 08:15
  • (modification externe)