Modifications entre les versions 3 et 47 (s'étendant sur 44 versions)
Version 3 à la date du 2006-10-13 20:53:34
Taille: 6749
Commentaire:
Version 47 à la date du 2006-12-06 15:59:32
Taille: 4007
Éditeur: ThomasNoël
Commentaire: liens
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
Ce projet a pour but d'écrire un système gestion des utilisateurs d'une implantations AUF (CNF, CAI, bureau, antenne... ou toute autre implantation où il y a des utilisateurs).

 * Responsable : ThomasNoël
 * Développeur principal : OusmaneWilane
 * Participants : JeanChristopheAndré, JérômeSantini, SebastienLanteigne... ''et tout le monde intéressé !''
Ligne 3: Ligne 9:
Projet de Système Gestion des abonnés d'une implantations AUF (CNF/CAI)
Ligne 5: Ligne 10:
 * Responsable : SébastienLanteigne
 * Participants : SebastienDornano, CédricProtière, JeanChristopheAndré, ThomasNoël, JérômeSantini... ''et tout le monde intéressé !''
= Objectifs du projet =
Ligne 8: Ligne 12:
= Historique du projet =  . '''Objectifs du projet''' : unifier nos systèmes d'authentification et nos outils de suivi des utilisateurs des implantations AUF ;
 . '''Résultats attendus''' :
  . faciliter le travail des gestionnaires en automatisant le plus grand nombre de tâches répétitives, longues ou complexes, '''progressivement''' (via l'ajout de nouveaux modules) ;
  . simplifier le travail de tous en factorisant les soucis : les problèmes ne seront plus locaux, ils seront plus simples à résoudre si tout le monde fonctionne un peu de la même façon au départ ;
 . '''Contraintes''' : l'existant est très varié (NIS, passwd, LDAP, Samba, ...) et il faut donc prévoir toutes sortes de particularités locales (services purement locaux, campus intégré, etc.), d'où l'importance de la modularité.
Ligne 10: Ligne 18:
 * Discussions à Rabat lors de la réunion DRI. Ebauche du cadre du projet : AncienWiki:ReunionDri2005CompteRenduSIGCampus (ancien wiki)
 * Entre temps, aucun temps libre dans les équipes respectives pour commencer le projet.
 * Discussions sur la liste tech sur la nécessité de pas laisser tomber ce projet...
 * La fin de mission de SébastienLanteigne comme responsable technique de l'antenne de Port-Vila (et du CNF associé), son intérêt pour le projet, nous a permis de le conserver "à contrat" pour réaliser le projet.
Lire aussi la sous-page sur l'[:/Besoins: expression des besoins] qui présente quelques autres aspects. Ajoutez-y vos demandes.
Ligne 15: Ligne 20:
= Calendrier Prévisionnel = = Le quotidien du projet =
Ligne 17: Ligne 22:
== Phase 1 ==
 * 23 août – 6 Septembre : Sébastien rentre de Port-Vila à Montréal en passant par le CAI de Sofia, le CNF de Tunis et le CNF de Dakar, histoire de compléter les besoins fonctionnels et l'expression des besoins avec la réalité de terrrain de Campus très différents du sien et différents les uns des autres. Voir : AncienWiki:SebastienLMissionSystemGestion (ancien wiki) pour le suivi.
 * 11 septembre : SebastienLanteigne s'installe à Montréal dans l'équipe informatique pour la réalisation du projet
 * 11 septembre – 15 septembre : Vidéconférences et compilation des données
 * Le développement du code de l'application se passe sur un Trac/Subversion ici : http://trac.sn.auf.org/guia (serveur hébergé à Dakar avec parfois quelques soucis de routage ou d'électricité en ce moment).
 * Les discussions ont lieu sur la sous-page ["/Discussion"]
Ligne 22: Ligne 25:
== Phase 2 : Développement ==
 * 18 septembre – 6 octobre : Nettoyage du code existant
 * 9 octobre – 27 octobre : Adaptation et création de nouveaux modules
 * 30 octobre – 10 novembre : Déploiement de serveurs de tests
= Vue générale =
Ligne 27: Ligne 27:
== Phase 3 : Test, déboguage et documentation ==
 * 13 novembre - 15 décembre : déboguage et transfert du développement ver les ressources internes
Le système se décompose en trois parties :
Ligne 30: Ligne 29:
== Phase 4 : Déploiement ==
 * À définir
 Le noyau:: il s'agit d'une base de donnée et un ensemble de fonctions permettant d'y accéder.
  * la base de données décrit l'ensemble des utilisateurs et des abonnements associés. Elle a un schéma de base simple, correspondant au noyau dur du système. Elle autorise une intégration simple de modules d'extension (greffons) via des champs ''extra'' sur ses objets. Voir /SchemaBase.
  * l'accès à la base est écrit en Python/Django. Chaque objet de la base est donc visible sous la forme d'un objet Python disposant de méthodes permettant de le gérer. L'appel à ces méthodes effectue les actions nécessaires sur la base de données. Là encore, chaque méthode peut être surchargée par des greffons.
 
 Des interfaces::
  * dans un premier temps une interface Web, rapide et ergonomique, permettant d'effectuer des actions sur la base. Django fourni une interface d'administration calculée automatiquement à partir de la définition des objets. Il faut la faire un peu évoluer pour la rendre plus ergonomique.
  * le noyau, écrit en Django, est donc accessible directement en Python. D'autres interfaces sont donc programmables, telle qu'une interface en ligne de commande.
Ligne 33: Ligne 37:
= Mise à jou =  Des greffons (modules d'extension, ''plug-ins''):: ils sont chargés, à partir d'informations fournies par le noyau, de gérer les aspects «métier», par exemple :
  * vers une base de données MySQL d'authentification (NSS-MySQL)
  * vers une base MySQL pour la messagerie (Postfix-MySQL)
  * pour la gestion de fonctionnalités additionnelles : saisie, suivi et statistiques sur les commandes de documents primaires ; gestion de la caisse, via une gestion de reçus et un état de caisse mensuel
  * attachement d'informations diverses et variées autour des utilisateurs : leurs commandes, leurs emprunts, leurs dates d'anniversaire, leurs passions, ...
Ligne 36: Ligne 44:
== Première proposition de base ==
=== Table user : ===
Contient toute l'information qui nous sert à identifer une personne. (Ajouter un champ photo?)
{{{
+-------------+--------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+------------+----------------+
| u_id | int(11) | | PRI | NULL | auto_increment |
| nom | varchar(200) | | | | |
| prenom | varchar(200) | | | | |
| employeur | varchar(200) | | | | |
| profession | varchar(200) | | | | |
| adresse | varchar(200) | | | | |
| rue | varchar(200) | | | | |
| ville | varchar(200) | | | | |
| pays | varchar(200) | | | | |
| code_postal | varchar(200) | | | | |
| tel | varchar(200) | | | | |
| tel_tr | varchar(200) | | | | |
| cell | varchar(200) | | | | |
| email | varchar(75) | | | | |
| email_tr | varchar(75) | | | | |
| email_2 | varchar(75) | | | | |
| naissance | date | | | 0000-00-00 | |
+-------------+--------------+------+-----+------------+----------------+
}}}
 Parfois avec un schéma on voit mieux:: attachment:gestion-utilisateurs-campus.png
Ligne 63: Ligne 46:
=== Table user : ===
Elle contient les groupes ou catégories d'abonnements.
{{{
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| nom | varchar(100) | | UNI | | |
+-------+--------------+------+-----+---------+----------------+
}}}
(source de ce schéma : attachment:gestion-utilisateurs-campus.dia)
Ligne 74: Ligne 48:
=== Table user : ===
Contient l'information du compte de l'utilisateur. Ce sont les information normalement présentent dans les fichiers /etc/passwd et /etc/shadow. De plus elle contient également le domaine et l'alias de l'utilisateur.
{{{
+--------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+-------+
| user_id | int(11) | | PRI | 0 | |
| login | varchar(200) | | UNI | | |
| passwd | varchar(200) | | | | |
| uid | int(10) unsigned | | | 0 | |
| gid | int(10) unsigned | | | 0 | |
| gecos | varchar(200) | | | | |
| homedir | varchar(200) | | UNI | | |
| minimum | varchar(200) | | | | |
| maximum | varchar(200) | | | | |
| warn | varchar(200) | | | | |
| inact | varchar(200) | | | | |
| expire | varchar(200) | | | | |
| lastchg | varchar(200) | | | | |
| shell | varchar(200) | | | | |
| flag | smallint(6) | | | 0 | |
| email_domain | varchar(200) | | | | |
| email_user | varchar(200) | | | | |
| active | tinyint(1) | | | 0 | |
+--------------+------------------+------+-----+---------+-------
}}}
= Documentations =
Ligne 101: Ligne 50:
=== Table user : ===
Contient les données d'abonements (la transaction). (Peut être ajouter un champ création pour la création d'abonnement avant la date de début de celui-ci)
{{{
+-----------+---------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+------------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| user_id | int(11) | | | 0 | |
| debut | date | | | 0000-00-00 | |
| fin | date | | | 0000-00-00 | |
| groupe_id | int(11) | | | 0 | |
+-----------+---------+------+-----+------------+----------------+
}}}
 * La documentation détaillée du code est ici : ["/Code"]
 * La documentation d'installation et d'intégration... reste à écrire : ["/MiseEnPlace"]

= Calendrier =

Voir la sous-page ["/Calendrier"]

Ce projet a pour but d'écrire un système gestion des utilisateurs d'une implantations AUF (CNF, CAI, bureau, antenne... ou toute autre implantation où il y a des utilisateurs).

TableOfContents

Objectifs du projet

  • Objectifs du projet : unifier nos systèmes d'authentification et nos outils de suivi des utilisateurs des implantations AUF ;

  • Résultats attendus :

    • faciliter le travail des gestionnaires en automatisant le plus grand nombre de tâches répétitives, longues ou complexes, progressivement (via l'ajout de nouveaux modules) ;

    • simplifier le travail de tous en factorisant les soucis : les problèmes ne seront plus locaux, ils seront plus simples à résoudre si tout le monde fonctionne un peu de la même façon au départ ;
  • Contraintes : l'existant est très varié (NIS, passwd, LDAP, Samba, ...) et il faut donc prévoir toutes sortes de particularités locales (services purement locaux, campus intégré, etc.), d'où l'importance de la modularité.

Lire aussi la sous-page sur l'[:/Besoins: expression des besoins] qui présente quelques autres aspects. Ajoutez-y vos demandes.

Le quotidien du projet

  • Le développement du code de l'application se passe sur un Trac/Subversion ici : http://trac.sn.auf.org/guia (serveur hébergé à Dakar avec parfois quelques soucis de routage ou d'électricité en ce moment).

  • Les discussions ont lieu sur la sous-page ["/Discussion"]

Vue générale

Le système se décompose en trois parties :

Le noyau
il s'agit d'une base de donnée et un ensemble de fonctions permettant d'y accéder.
  • la base de données décrit l'ensemble des utilisateurs et des abonnements associés. Elle a un schéma de base simple, correspondant au noyau dur du système. Elle autorise une intégration simple de modules d'extension (greffons) via des champs extra sur ses objets. Voir /SchemaBase.

  • l'accès à la base est écrit en Python/Django. Chaque objet de la base est donc visible sous la forme d'un objet Python disposant de méthodes permettant de le gérer. L'appel à ces méthodes effectue les actions nécessaires sur la base de données. Là encore, chaque méthode peut être surchargée par des greffons.
Des interfaces
  • dans un premier temps une interface Web, rapide et ergonomique, permettant d'effectuer des actions sur la base. Django fourni une interface d'administration calculée automatiquement à partir de la définition des objets. Il faut la faire un peu évoluer pour la rendre plus ergonomique.
  • le noyau, écrit en Django, est donc accessible directement en Python. D'autres interfaces sont donc programmables, telle qu'une interface en ligne de commande.
Des greffons (modules d'extension, ''plug-ins'')
ils sont chargés, à partir d'informations fournies par le noyau, de gérer les aspects «métier», par exemple :
  • vers une base de données MySQL d'authentification (NSS-MySQL)
  • vers une base MySQL pour la messagerie (Postfix-MySQL)
  • pour la gestion de fonctionnalités additionnelles : saisie, suivi et statistiques sur les commandes de documents primaires ; gestion de la caisse, via une gestion de reçus et un état de caisse mensuel
  • attachement d'informations diverses et variées autour des utilisateurs : leurs commandes, leurs emprunts, leurs dates d'anniversaire, leurs passions, ...
Parfois avec un schéma on voit mieux
attachment:gestion-utilisateurs-campus.png

(source de ce schéma : attachment:gestion-utilisateurs-campus.dia)

Documentations

  • La documentation détaillée du code est ici : ["/Code"]
  • La documentation d'installation et d'intégration... reste à écrire : ["/MiseEnPlace"]

Calendrier

Voir la sous-page ["/Calendrier"]

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