Le projet Atelier But : Développer un logiciel permettant de gérer une association. Origine : L'association Linux-Nantes est hébergée dans les locaux de Bellamy 17 ; il lui a été demandé lors de son installation d'écrire un applicatif permettant d'aider l'association "Atelier" dans sa gestion. Destination : Par esprit d'ouverture, l'équipe de développement a décidé de créer un logiciel gérant tout type d'association. Il doit être écrit dans l'esprit du logiciel libre; ce qui oblige : - l'utilisation d'outils libres pour le développement, - l'ouverture du code ( étude, adaptation, amélioration ), - la possibilité pour n'importe qui d'utiliser le logiciel; Choix techniques : Après de longues réflexions, l'environnement technique est défini par l'utilisation des outils suivants : - serveur Apache 1.3, - framework Horde, - langage de développement : PHP 4.3, - utilisation du module Pear pour accéder à la base de données, - base de données : PostgreSQL 7.0, - génération, mise à jour, sauvegarde, restauration, historique de la base de données : xml - CVS pour gérer les versions de développement Ce logiciel doit pouvoir fonctionner sur tout navigateur respectant les règles du W3C. Vue d'ensemble : Le logiciel gère les modules standards d'une association : - les membres, leurs contacts et leurs compétences - l'adhésion des membres et leurs règlements - la tarification des adhésions - les activités - les (beny:?) d'objets propres aux membres - le bureau et les fonctions de ses membres - les commissions et leur membres Toute association pourra utiliser cet applicatif. Son implémentation comprend donc une première partie correspondant au paramétrage relatif à l'association. Cela concerne plus particulèrement la partie "Tarification des adhésions" et l'ajout de champs spécifiques dans les tables standards. Ce paramétrage est définitif. Un module permet de donner les droits aux utilisateurs désignés pour gérer la base. Un module permet la sauvegarde de la base, sa restauration et son historisation. Un module permet la création de statistiques préformattées. Développement : La base de données est générée à partir de fichiers XML et XSL. Le paramétrage modifie la base de la même façon. La sauvegarde, restauration et historisation aussi. Le framework Horde permet de gérer les problèmes de sécurité. L'utilisation de la base de données PostgreSQL a été choisie car elle permet de gérer au mieux les vues et lestriggers, ce qui n'est pas le cas avec une base de données MySQL. Le langage PHP a été choisi car il est aujourd'hui un langage connu par beaucoup de personnes et permet de faire intervenir des développeurs rapidement. L'accès à la base de données se fait par l'intermédiaire du module mdb de Pear. Pear est écrit en PHP. Gestion des droits : Selon les associations, tous les membres peuvent avoir accès à l'application. Dans ce cas, il n'y a aucun contrôle à effectuer lors de l'accès aux pages. Selon d'autres, seul des utilisateurs identifiés ont accès aux pages. Certains peuvent avoir accès à toutes les pages d'autres à des pages particulières. Un module permet de donner les droits aux utilisateurs désignés pour gérer la base. Ces utilisateurs peuvent ne pas être des membres, un membre peut ne pas être un utilisateur. Cette partie reste à définir CAR IL Y A PLUSIEURS POSSIBILITES. Gestion des adhésions : De la même façon, les adhésions peuvent être traitées de façon différente. J'en vois trois : pour toute la durée de l'exercice et pour un membre : - une adhésion générale à l'association - une adhésion générale à l'association plus une pour chaque activité où il est inscrit - une adhésion pour chaque activité où il est inscrit Il faut donc le paramétrer. Gestion des tarifs : La gestion des tarifs peut répondre à des règles particulières. Ces règles sont paramétrées dans le logiciel. Gestion des membres : Une table standard "membre" existe. Il est possible de rajouter des champs rattachés à cette table par la création d'enregistrements dans la table AttributMembre. cette partie est à revoir. Cela fonctionne un peu de la même façon que pour la création des "contacts" du membre ainsi que de ces compétences.