gestion d'une association

82
UNIVERSITE MOHAMMED V AGDAL FACULTE DES SCIENCES DEPARTEMENT D’INFORMATIQUE FILIERE LICENCE PROFESSIONNELLE ADMINISTRATION DE SYSTEMES INFORMATIQUES MEMOIRE DE FIN D’ETUDES Intitulé Réalisation d’une application de gestion d’une association Présenté par : Azziz Daser & Mohamed Benaich Soutenu le 31/07/2014 Devant le jury : - - -

Upload: med-benaich

Post on 24-Dec-2015

47 views

Category:

Documents


4 download

DESCRIPTION

rapport pour la gestion d'une association en ligne avec symfony2

TRANSCRIPT

Page 1: Gestion d'une association

UNIVERSITE MOHAMMED V AGDAL FACULTE DES SCIENCES

DEPARTEMENT D’INFORMATIQUE

FILIERE

LICENCE PROFESSIONNELLE

ADMINISTRATION DE SYSTEMES INFORMATIQUES

MEMOIRE DE FIN D’ETUDES

Intitulé

Réalisation d’une application de gestion d’une association

Présenté par :

Azziz Daser & Mohamed Benaich

Soutenu le 31/07/2014

Devant le jury :

-

-

-

Page 2: Gestion d'une association

1

Résumé

Nos travaux ont consisté dans le développement d'application d'arrière-plan pour la gestion des

membres, nous appelons Curiospress. Le but de Curiospress est de fournir aux gens une base pour

construire des applications de l'utilisateur, sans tous les tracas. Curiospress est proprement écrit,

bien commenté, formaté et documenté, ai-je oublié de mentionner son objet orienté pour la

personnalisation facile et développé en utilisant Symfony2, Si ce logiciel de composition vous

offre tout ce dont vous avez besoin pour alimenter facilement une adhésion ou de souscription

web businesscand automatise complètement l'enregistrement de compte et les événements

invitation, gestion des abonnements, facturation automatique, la facturation récurrente, la gestion

des comptes, des rapports, des bulletins d'information, et bien plus encore. Curiospress des thèmes

illimités et langues (arabe, français et English). Prise en charge de plus de 40 processeurs de

paiement pour toute commande et automatisation des factures.

Mots-clés: l'adhésion, la gestion, l'application Symfony2

Summary

Our work consisted in the development of backend application for membership management we

call it Curiospress. The goal of Curiospress is to provide people with a foundation to build user

applications without all the hassle. Curiospress is cleanly written, well commented, formatted and

documented, did I forget to mention its object oriented for easy customisation and developed

using symfony2 ? so this membership software provides you with everything you need to easily

power a membership or subscription web businesscand completely automates account registration

and events invitation, subscription management, automated invoicing, recurring billing, account

management, reporting, newsletters, and much more. Curiospress supports unlimited themes and

languages (arabic, englisj and french). Supports over 40 payment processors for full order and

invoice automation.

Keywords : membership, management, application, symfony2

Page 3: Gestion d'une association

2

Dédicaces

Je dédie ce modeste travail à :

Mes parents et grands-parents qui sont la source de ma réussite.

Ma sœur et mon frère que j'adore.

Ma famille à laquelle je dois tout mon bonheur et ma réussite.

Mes enseignants qui sont la source de mon savoir.

Mes Ami(e)s qui n'ont jamais manqué de témoigner leur estimes à mon

égard.

Et enfin à tous ceux qui m'ont soutenu de près ou de loin à

l'achèvement de ce travail dans les meilleures conditions.

Mohammed

Page 4: Gestion d'une association

3

Dédicaces

Je dédie ce travail en premier lieu à mes parents, qui n’ont jamais

cessé de m’apporter leur soutien, leur affection et leurs sacrifices.

Qu’ils trouvent ici le témoignage de mon entière gratitude et que

dieu les protège.

Je dédie ensuite ce mémoire …

A mon cher frère Anass, Vous m’avez toujours soutenu durant

toutes mes études, je vous souhaite, vous et votre famille, beaucoup

debonheur et de réussite.

A ma sœur Hajar.

A toute ma famille.

Aux membres du comité mosquée, qui ont fait preuve de dynamisme

et de responsabilité.

A tous mes amis et amies.

A toutes les personnes qui m’aiment.

Je vous aime tous …

Aziz

Page 5: Gestion d'une association

4

Remerciements

Nous tenons à présenter nos reconnaissances et nos remerciements à

notre professeur encadrant Mr. SOUIDI, pour le temps consacré à la lecture et aux

réunions qui ont rythmées les différentes étapes de notre mémoire. Les discussions que

nous avons partagées ont permis d’orienter notre travail d’une manière pertinente.

Nous le remercions aussi pour sa disponibilité à encadrer ce travail à travers ses

critiques et ses propositions d’amélioration.

Enfin nous exprimons nos remerciements les plus dévoués aux membres de

jury qui nous ont honorés en acceptant d'évaluer ce travail.

Enfin je remercie toutes les personnes qui ont contribué de près ou de

loin à la réalisation de ce mémoire, ainsi qu’au bon déroulement du projet, et dont

les noms ne figurent pas dans ce document

Mohammed&Aziz

Page 6: Gestion d'une association

5

INTRODUCTION GENERALE

Comme nous vivons dans un monde où le marché informatique se développe très rapidement

et les technologies se perfectionnent, le besoin d’informatiser les tâches internes dans les

Entreprises ne cesse d’accroître. Et ce, pour faciliter les manipulations et gagner du temps.

Les Services de gestion des membres des entreprises se trouvent au cœur même de cette

évolution. Dans cette perspective, et dans le cadre de notre projet de fin d’études, nous allons nous

intéresser au développement d’une solution des services de la gestion des adhérents d’une

société afin de l’intégrer dans le portail d’une société.

Et dans ce contexte, nous allons procéder comme suit :

- Chapitre1 : Description générale

Dans ce chapitre, nous présentons la problématique à résoudre et quelques concepts liés au

gestion des adhérents d’une société.

- Chapitre 2 : Analyse des besoins et spécifications

Ce chapitre détaille la spécification générale de notre futur Projet avec Identification

des différentes fonctionnalités de l’application. Il présente notamment différents cas

d’utilisation du projet de point de vue utilisateur.

- Chapitre 3 : Conception

Ce chapitre présente la conception générale et détaillée de notre future application.

- Chapitre 4 : Etude de l’art

Dans ce chapitre on met l’accent sur les différentes technologies existantes utilisées pour

L’élaboration du projet (pendant la réalisation).

- Chapitre 5 : Réalisation et Interface de l’application

Ce chapitre présente les principaux choix ergonomiques adoptés en présentant quelques

Interfaces graphiques de l’application.

Page 7: Gestion d'une association

6

Table des matières

INTRODUCTION GENERALE .............................................................................................................................. 5

TABLE DES MATIERES ....................................................................................................................................... 6

TABLE DES FIGURES .......................................................................................................................................... 4

CHAPITRE1 : DESCRIPTION GENERALE DU PROJET ...................................................................................................... 4

I. INTRODUCTION ............................................................................................................................................. 5 II. DESCRIPTION DU PROJET ................................................................................................................................. 5 III. DEFINITION DE GESTION D’ASSOCIATION EN LIGNE ................................................................................................ 7 IV. POURQUOI LA GESTION DES ADHERENTS D’ASSOCIATION EN LIGNE? ......................................................................... 7 V. LES AVANTAGES DE LA GESTION DES ADHERENT D’ASSOCIATION EN LIGNE .................................................................. 7

Pour les adhérents : ....................................................................................................................................... 8 VI. LES FONCTIONNALITES DE LA GESTION DES ADHERENT D’ASSOCIATION EN LIGNE .......................................................... 8

Pour l’administrateur ..................................................................................................................................... 8 Pour l’éditeur ............................................................................................................................................... 10 Pour Simple utilisateur ................................................................................................................................. 11

VII. CONCLUSION .......................................................................................................................................... 12

CHAPITRE 2 : ANALYSE DES BESOINS ET SPECIFICATIONS ............................................................................................ 13

I. INTRODUCTION ............................................................................................................................................. 4 II. OBJECTIFS .................................................................................................................................................... 4 III. SPECIFICATION DES EXIGENCES .......................................................................................................................... 4

1. Exigences fonctionnelles ...................................................................................................................... 4 2. Exigences non fonctionnelles ............................................................................................................... 4

IV. ANALYSE DES BESOINS .................................................................................................................................... 5 V. DICTIONNAIRE DES DONNEES ............................................................................................................................ 5 VI. CONCLUSION ................................................................................................................................................ 7

CHAPITRE 3 : CONCEPTION ................................................................................................................................... 8

I. INTRODUCTION ............................................................................................................................................. 9 II. CONCEPTION ................................................................................................................................................ 9 III. CONCEPTION DU SYSTEME ............................................................................................................................... 9

1. Décomposition du système .................................................................................................................. 9 2. Stockage des données ........................................................................................................................ 10 3. Diagramme de Classes ......................................................................................................................... 4 4. Diagramme de cas d’utilisation ........................................................................................................... 5 5. Cas d’utilisations .................................................................................................................................. 9 6. Diagramme de Séquence ................................................................................................................... 15 7. Diagramme d’activité ......................................................................................................................... 16

IV. CONCLUSION .............................................................................................................................................. 19

CHAPITRE 4 : ETUDE DE L’ART ET GESTION DE PROJET ............................................................................................... 20

I. INTRODUCTION ........................................................................................................................................... 21 II. OUTILS DE REALISATION ET DE MODELISATION .................................................................................................. 22

2.1 PowerAMC ......................................................................................................................................... 22 2.2 WAMPSERVER .................................................................................................................................... 22

III. LANGAGES DE REALISATION ET DE MODELISATION .............................................................................................. 23 3.1 UML .................................................................................................................................................... 23 3.2 PHP ..................................................................................................................................................... 23 3.3 Le Framework Symfony ...................................................................................................................... 24 3.4 MySQL ................................................................................................................................................ 24 3.5 Autres technologies ............................................................................................................................ 25

IV. GESTION DE PROJET ..................................................................................................................................... 25

Page 8: Gestion d'une association

7

4.1 Microsoft Project ................................................................................................................................ 25 4.2 planification du projet ........................................................................................................................ 26 4.3 Définition du diagramme de GANTT .................................................................................................. 26 4.4 Structure de découpage du projet (WBS) ........................................................................................... 28

V. CONCLUSION .............................................................................................................................................. 29

CHAPITRE 5 : REALISATION ET INTERFACE DE L’APPLICATION ..................................................................................... 30

I. INTRODUCTION ........................................................................................................................................... 31 II. CHOIX DE LA TECHNOLOGIE DE SECURITE ........................................................................................................... 32

2.1 Introduction........................................................................................................................................ 32 2.2 La sécurité de notre application ......................................................................................................... 32

III. ARCHITECTURE GLOBALE DU SITE WEB ............................................................................................................. 33 IV. INTERFACE DE L’APPLICATION ......................................................................................................................... 35

4.1 Introduction........................................................................................................................................ 35 4.2 Présentation de l’application ............................................................................................................. 35

V. CONCLUSION .............................................................................................................................................. 46

CONCLUSION GENERALE: ............................................................................................................................... 47

ANNEXE .......................................................................................................................................................... 49

I. ANNEXE I : INSTALLATION SOUS LINUX ............................................................................................................. 50 1.1 Vérifier et préparer le serveur de production ..................................................................................... 50 1.2 Pré-requis au bon fonctionnement de Symfony2 ............................................................................... 50 1.3 Installer wkhtmltopdf ......................................................................................................................... 50 1.4 Envoyer les fichiers sur le serveur ....................................................................................................... 51 1.5 Régler les droits sur les dossiers app/cache et app/logs .................................................................... 51 1.6 Mettre en place la base de données .................................................................................................. 51

II. ANNEXE II : INSTALLATION SOUS WINDOWS ..................................................................................................... 53 2.1 Installation de WAMP ........................................................................................................................ 53 2.2 Déploiement des différents modules Apache et PHP ......................................................................... 53 2.3 Installer wkhtmltopdf ......................................................................................................................... 53 2.4 Test de Symfony2 ............................................................................................................................... 54

Page 9: Gestion d'une association

4

Table des figures

FIGURE 1: L'ARCHITECTURE CLIENT-SERVEUR ........................................................................................... 10

FIGURE 2: MODELE CONCEPTUEL DE DONNEES .............................................................................................. 11

FIGURE 3: MODELE LOGIQUE DE DONNEES .................................................................................................... 12

FIGURE 4: LA BASE DE DONNEES .................................................................................................................... 4

FIGURE 5: DIAGRAMME DE CLASSES ................................................................................................................ 5

FIGURE 6: DIAGRAMME DES CAS D’UTILISATIONS GLOBALE ............................................................................ 6

FIGURE 7: DIAGRAMME DU PACKAGE GESTION DES ADHERENTS .................................................................. 10

FIGURE 8: DIAGRAMME DU PACKAGE GESTION DES COTISATIONS ................................................................ 11

FIGURE 9: DIAGRAMME DU PACKAGE GESTION DES GROUPES ...................................................................... 12

FIGURE 10: DIAGRAMME DU PACKAGE GESTION DES EVENEMENTS .............................................................. 13

FIGURE 11: DIAGRAMME DU PACKAGE PROFILE ............................................................................................ 14

FIGURE 12: DIAGRAMME DU PACKAGE PREFERENCES ................................................................................... 15

FIGURE 13: DIAGRAMME DE SEQUENCE ......................................................................................................... 16

FIGURE 14: DIAGRAMME D’ACTIVITE RELATIF AU CAS D’UTILISATION «AUTHENTIFICATION» ....................... 17

FIGURE 15: DIAGRAMME D’ACTIVITE RELATIF AU CAS D’UTILISATION «MODIFICATION DE PROFIL» ............. 18

FIGURE 16: PLANIFICATION DU PROJET .......................................................................................................... 26

FIGURE 17: DIAGRAMME DE GANT RELATIF AU DEROULEMENT DES ACTIVITES DURANT LA PERIODE DU PROJET ........................................................................................................................................................... 27

FIGURE 18: MECANISME DE SECURITE DE L’APPLICATION .............................................................................. 33

FIGURE 19: ARCHITECTURE GLOBALE DU SITE WEB ........................................................................................ 33

FIGURE 20: STRUCTURE D’UN BUNDLE ........................................................................................................... 35

FIGURE 21: PAGE D'AUTHENTIFICATION ..................................................................................................... 36

FIGURE 22: TABLEAU DE BORD DE L'APPLICATION ..................................................................................... 37

FIGURE 23: PAGE DE GESTION DES ADHERENTS ......................................................................................... 38

FIGURE 24: GESTION DES ADHERANT - ACTIONS DIPONIBLES ................................................................... 39

FIGURE 25: PAGE DE GESTION DES GROUPES ............................................................................................. 39

FIGURE 26: PAGE DE GESTION DES STATUTS .............................................................................................. 40

FIGURE 27: PAGE DE GESTION DES COTISATIONS ....................................................................................... 40

FIGURE 28: PAGE DE GESTION DES EVENEMENTS ....................................................................................... 41

FIGURE 29: PREFERENCES ........................................................................................................................... 42

FIGURE 30: MESSAGERIE .............................................................................................................................. 43

FIGURE 31: CALENDRIER DES EVENEMENTS................................................................................................ 44

FIGURE 32: PROFILE ..................................................................................................................................... 45

Page 10: Gestion d'une association

4

Chapitre1 :

Description Générale

DU PROJET

Page 11: Gestion d'une association

5

I. Introduction

Une association est un organisme à but non lucratif qui peut bénéficier d'exonérations

fiscales s'il remplit trois conditions :

o la gestion et l'administration conservent un caractère bénévole

o aucun bénéfice n'est distribué o Les administrateurs n'ont aucun intérêt, direct ou indirect, aux résultats (attention :

percevoir un salaire de l'association, parallèlement à une fonction de membre des instances délibérantes, peut suffire à caractériser un intérêt direct).

Il y a des obligations communes leur incombent comme déclarations des honoraires,

commissions, courtages, etc.

Les commissions, honoraires, vacations versées à des tiers doivent être déclarées comme

la déclaration annuelle des salaires

Les associations qui emploient du personnel salarié doivent déclarer le montant des

rémunérations versées au cours de l’année.

Et pour faciliter la gestion d’association on utilise des moyennes informatiques et des

nouvelles technologies.

Dans ce chapitre, nous présentons les motivations qui sont derrières l’idée de ce projet.

Nous détaillons la liste exhaustive des fonctionnalités attendues par l’application à

réaliser et les objectifs visés par ce projet

II. Description du projet

Notre sujet de projet de fin d’étude consiste à étendre une application Web basée sur la

Plateforme Apache en utilisant des langages coté serveur et coté client en ajoutant des

modules : Espace gestion des adhérents, gestion des groups, gestion des statuts, gestion

des cotisations, gestion des évènements, préférences, messagerie, profile.

Le premier est un module d’espace gestion des adhérents qui va afficher la liste

des adhérents et nous donne accès à de nombreuses fonctions :

o Filtrage et tri des adhérents.

Page 12: Gestion d'une association

6

o Affichage des fiches des adhérents.

o Suppression.

o Contact (par email, SMS, appel,…)

o Génération Ticket de repas (PDF).

o Génération de cartes de membres (PDF). o Export CSV.

o Export XML.

o Ajouter un adhèrent.

o Recherche. o Activer ou désactiver un adhèrent ou le rende administrateur ou éditeur ou

utilisateur.

o Etc…

Le deuxième, Espace gestion des groups qui va afficher la liste des groups et nous

donne la possibilité d’ajouter des groups, les supprimer, les modifier, les afficher …

Le troisième, Espace gestion des statuts qui va afficher la liste des statuts et nous

donne la possibilité d’ajouter, supprimer et modifier d’un statut.

Le quatrième, Espace gestion des cotisations qui va afficher la liste des cotisations

et nous donne la possibilité d’ajouter, supprimer et modifier d’une cotisation.

Le cinquième, Espace gestion des évènements qui va afficher la liste des

évènements et nous donne la possibilité d’ajouter, supprimer et modifier d’un

évènement.

Le sixième, Espace préférences qui va nous donne la possibilité de configuration et

gère l’interface de notre application web et permettant de visualiser et modifier

des paramètres d'utilisation:

o Ajouter ou de supprimer ou modifier les composants d’application(les

noms, les titres, les rubriques, les fonctionnalités).

o Changer les paramètres de visualisation (résolution en pixels, fond d'écran,

tailles des polices d'affichage...).

Le septième, Espace messagerie qui va afficher la liste des messages reçus et nous

donne la possibilité d’envoyer et supprimer d’un message.

Et le dernier, Espace profile, va permettre au adhèrent d’afficher la liste leur profile

et donne la possibilité de régler le compte (changer le mot de passe, email,…).

Page 13: Gestion d'une association

7

III. Définition de gestion d’association en ligne

Une gestion d’association en ligne est l'accès aux services association depuis une interface

interactive, par exemple un Navigateur web. Sa disponibilité permet : l'accès aux comptes,

pouvoir effectuer la gestion des adhérents, gestion des groups, gestion des statuts, gestion

des cotisations, gestion des évènements, préférences, messageries, profiles, ou obtenir

des informations des adhérents récentes (historique, calendrier…). Son accès peut

s'effectuer depuis un Guichet automatique par téléphone, via un ordinateur ou grâce à un

assistant personnel (PDA) ayant l'Internet. La connexion se fait généralement par accès

sécurisé.

IV. Pourquoi la gestion des adhérents d’association en

ligne?

Le besoin de mobilité grandissant, un accès des utilisateurs au réseau financier mondial

par la technologie sans-fil : téléphone cellulaire, ordinateurs portables, etc. est devenu

nécessaire.

Les informations publiés sont soit publiques, soit privées.

L’application de la gestion des adhèrent d’association en ligne permit de facilité la gestion

les adhérents d’association a la direction de d’association (Automatisation et réduit le

traitement Manuel) et elles peuvent aussi licencier du personnel, car ils sont devenus

inutiles car tout se joue sur internet.

Et pour l’adhérent peut suivre les activités et ordre du jour de l’association, c’est toujours

mieux et plus rapide (ben oui on ne doit pas se déplacer et aussi par exemple, on reçoit un

rappel ou notification, on peut directement et rapidement voir leur services.)

V. les avantages de la gestion des adhèrent

d’association en ligne

Page 14: Gestion d'une association

8

Pour les adhérents :

Le adhérent peut gérer ses services, domiciliations... à domicile, c'est toujours mieux et

plus rapide (ben oui on ne doit pas se déplacer et aussi par exemple, on reçoit un rappel

de facture, on peut directement et rapidement voir leur services.).

Pour l’association:

Ca diminue leur frais. Surtout pour l’association qui gère leurs adhérents en ligne qui n'a

pas dû investir dans des agences ou les gens qui font la gestion. Les adhérents peuvent

aussi imprimer leur information de profile ou des évènements qui s’intéresse en ligne, ça

veut dire que c'est l’adhérent qui paie le papier et l'encre.

VI. les fonctionnalités de la gestion des adhèrent

d’association en ligne

Pour l’administrateur

Module Espace profile

Le Module espace profile gère tous les aspects du compte propre au administrateur:

- mise à jour de compte

-changement de mot de passe

-Voir profile.

Module Espace gestion des adhérents

Le Module espace gestion des adhérents gère tous les aspects concernant la gestion

d'adhérent:

-Insérer un adhérent.

-Modifier un adhérent.

-Supprimer un adhérent.

-Recherche un adhérent.

Page 15: Gestion d'une association

9

-Contact un adhérent (par email, SMS, appel,…)

Module Espace gestion des cotisations

Le Module espace gestion des cotisations gère tous les cotisations des adhérents :

-Ajouter une cotisation.

-Modifier une cotisation.

-Supprimer une cotisation.

Module Espace gestion des évènements

Le Module espace gestion des évènements gère tous les évènements :

Espace gestion des évènements qui va

-afficher la liste des évènements.

-Ajouter un évènement.

-Supprimer un évènement.

-Modifier un évènement.

- Notification

Module Espace référence

Le Module espace configuration gère l’interface de notre application web Congrès et

permettant de visualiser et modifier des paramètres d'utilisation:

-Ajouter ou de supprimer ou modifier les composants de Congrès(les noms, les titres, les

rubriques, les fonctionnalités)

- Changer les paramètres de visualisation (résolution en pixels, fond d'écran, tailles des

polices d'affichage...).

Module Espace gestion des groups

Le Module espace gestion des groups gère les groups des adhèrent :

-Ajouter un group.

-Modifier un group.

-Supprimer un group.

Module Espace gestion des statuts

Page 16: Gestion d'une association

10

Le Module espace gestion des statuts gère les statuts des adhérents:

-Ajouter un statut.

-Modifier un statut.

-Supprimer un statut.

Module Espace messagerie

Le Module espace messagerie gère les services concernant les messages:

-Afficher les messages.

-Envoyer un message.

-Supprimer un message.

Pour l’éditeur

Module Espace profile

Le Module espace profile gère tous les aspects du compte propre au administrateur:

-Gestion du compte (mise à jour de compte, changement de mot de passe voir leur profile).

Module Espace gestion des adhérents

Le Module espace gestion des adhérents gère tous les aspects concernant la gestion

d'adhérent:

-Insérer un adhérent.

-Modifier un adhérent.

-Supprimer un adhérent.

-Recherche un adhérent.

-Contact un adhérent (par email, SMS, appel,…)

Module Espace gestion des cotisations

Le Module espace gestion des cotisations gère tous les cotisations des adhérents :

-Ajouter une cotisation.

-Modifier une cotisation.

Page 17: Gestion d'une association

11

-Supprimer une cotisation.

Module Espace gestion des évènements

Le Module espace gestion des évènements gère tous les évènements :

Espace gestion des évènements qui va

-afficher la liste des évènements.

-Ajouter un évènement.

-Supprimer un évènement.

-Modifier un évènement.

- Notification

Module Espace gestion des groups

Le Module espace gestion des groups gère les groups des adhèrent :

-Ajouter un group.

-Modifier un group.

-Supprimer un group.

Module Espace gestion des statuts

Le Module espace gestion des statuts gère les statuts des adhérents:

-Ajouter un statut.

-Modifier un statut.

-Supprimer un statut.

Module Espace messagerie

Le Module espace messagerie gère les services concernant les messages:

-Afficher les messages.

-Envoyer un message.

-Supprimer un message.

Pour Simple utilisateur

Module Espace profile

Page 18: Gestion d'une association

12

Le Module espace profile gère tous les aspects du compte propre au administrateur:

-Gestion du compte (mise à jour de compte, changement de mot de passe voir leur profile).

Module Espace messagerie

Le Module espace messagerie gère les services concernant les messages:

-Afficher les messages.

-Envoyer un message.

-Supprimer un message.

Module Espace Calendrier

Le Module espace calendrier permit l’utilisateur voir leur évènements.

VII. Conclusion

Dans ce chapitre nous avons présenté les différentes activités de notre application et nous

avons également présenté le sujet de notre projet. Notre sujet sera expliqué plus en

Détaille dans le chapitre suivant, en exposant les besoins et les objectifs à atteindre.

Page 19: Gestion d'une association

13

Chapitre 2 :

Analyse des besoins

Et spécifications

Page 20: Gestion d'une association

4

I. Introduction

Dans ce chapitre, nous présentons les motivations qui sont derrières l’idée de ce

projet. Nous détaillons la liste exhaustive des fonctionnalités attendues par l’application

à réaliser et les objectifs visés par ce projet.

II. Objectifs

Notre tâche est sous thème ‘Gestion des adhérents d’association en ligne’, cette

application web destiné à la direction de l’association qui veut gérer les adhérents, notre

application consiste à offrir une solution de gestion des associations, ainsi elle donne la

main aux administrateurs afin de personnaliser et configurer l’application a leurs besoin.

III. Spécification des exigences

1. Exigences fonctionnelles

-Notification de l’adhérent à domicile soit par mail ou par poste.

-Gestion des comptes utilisateurs.

-L’éditeur peut voir la situation administrative des adhérents.

-L’administrateur a sa propre panneau de configuration qui permet par exemple de faire la

gestion des adhérents.

2. Exigences non fonctionnelles

-Garder ses adhérents et les fidéliser en les satisfaisant au mieux.

-Élargir sa gamme des adhérents en offrant des services rapides et faciles à manipuler.

-Gagner du temps pour le client.

-La disponibilité de 24h/24h et 7j/7j.

-Accès fiable et sécurisé : accès personnalisés, connexions sécurisées.

-Portabilité : Utilisable avec plusieurs systèmes d’exploitation.

-Pas de nécessité de se déplacer.

Page 21: Gestion d'une association

5

IV. Analyse des besoins

1. A qui l’application est-elle destinée ?

L’application est destinée à la direction de l’association.

2. Quels problèmes l’application résoudra-t-elle ?

L’application a pour but de facilité la gestion les adhèrent s d’association a la direction

d’association:

Administration :

- Automatisation et réduit le traitement Manuel.

- Elles peuvent aussi licencié du personnel, car ils sont devenus inutiles car tout se joue sur

internet.

Adhérent :

- l’adhérent peut suivre les activités et ordre du jour de l’association, c’est toujours mieux et

plus rapide (ben oui on ne doit pas se déplacer et aussi par exemple, on reçoit un rappel ou

notification, on peut directement et rapidement voir leurs services.)

- l’application est disponible 24h/24h et 7j/7j.

- ils doivent plus se déplacer à la direction et on sait à quel point, c’est dur pour eux de se

déplacer

3. Où l’application sera-t-elle utilisée ?

L’application sera utilisée surement sur net.

4. Pourquoi l’application est-elle attendue ?

Pour de nombreuses raisons, l’application va bénéficier de services en ligne, car le besoin de

mobilité grandissant, et l’accès des utilisateurs par la technologie sans-fil : téléphone

cellulaire, ordinateurs portables, etc. est devenu nécessaire.

V. Dictionnaire des données

Page 22: Gestion d'une association

6

Administrateur : C’est l’Administrateur et le responsable de l’application, il a la

possibilité de faire tout ce qu'un utilisateur normal ne pourrait pas faire.

Editeur : compte avec droit d’accès moins qu’administrateur par exemple il ne peut rien

supprimer dans l’application.

Simple utilisateur : Compte avec droit d’accès moins qu’éditeur il peut juste consulter

son profile, voir le calendrier des événements.

Préférence : La préférence est l'expression d'un choix, en raison de critères soit

subjectifs plus ou moins conscients, soit objectifs, basés sur des critères clairement

énoncés et conscients.

Cotisation : Somme que versent les adhérents d’une association ou les personnes

affiliées à un organisme.

Association : Une association est un organisme à but non lucratif pour le but solidarité,

coopération, conscience …

Adhérent : membre d'une association.

Page 23: Gestion d'une association

7

VI. Conclusion

Nous avons étudié l’environnement de notre projet et analysé e système et les besoins du

client tout au long de ce deuxième chapitre d’analyse des besoins et spécification. Dans

le chapitre suivant, nous allons présenter la conception de notre application, en

présentant quelques diagrammes illustrant les différentes fonctionnalités de notre

application.

Page 24: Gestion d'une association

8

Chapitre 3 :

Conception

Page 25: Gestion d'une association

9

I. Introduction

La phase de conception est considérée parmi les phases les plus importantes dans le cycle

de vie d'un logiciel. Il s'agit en premier lieu de présenter une modélisation par étape de

Conception de notre application et décrire finalement l'architecture de la base de

données.

II. Conception

Les diagrammes UML de modélisation dynamique nous montrent l'évolution du système

Et les interactions entre objets. Nous allons présenter comme exemple de cette

modélisation un ensemble de diagrammes d’activité et diagramme de séquence ensuite

on va décrire L’architecture de la base de données. Le diagramme d’activités n’est autre

que la transcription dans UML de la représentation du processus telle qu’elle a été

élaborée lors du travail qui a préparé la modélisation : il montre L’enchaînement des

activités qui concourent au processus.

Le diagramme de séquence représente les interactions entre objets au cours du temps par

des messages (synchrone et asynchrone).

III. Conception du Système

1. Décomposition du système

La figure suivante représente l’architecture de l’application, il y a deux principaux sous-

systèmes : les navigateurs (côté client) et les serveurs (Base de données).

Cette architecture est appelée généralement par l’architecture Client-serveur.

Page 26: Gestion d'une association

10

Figure 1: L'architecture Client-serveur

2. Stockage des données

L’application utilise un SGBD relationnel (MySQL), il est rapide, facilement disponible, et

son rapport cout-efficacité correspond bien à cet type d’applications bancaires.

La base de données garantit la cohérence des données et leur disponibilité aux accès

concurrents, chaque transaction est traitée en une seule opération.

Les règles de gestion expriment des contraintes qu’il faut le respecter sur le Modèle

conceptuel de données suivant:

MCD :

Page 27: Gestion d'une association

11

Figure 2: modèle conceptuel de données

Comme montre le diagramme ci-dessus :

o Un adhérant peut avoir une photo de profile, une photo de profile consterne un et un seule

adhérant

o Un adhérant peut avoir un ou plusieurs statuts, un statu consterne plusieurs adhérant

o Un adhérant paye des cotisations

o Un adhérant appartient à un ou plusieurs groupes, un groupe peut contenir plusieurs

adhérant

o Un événement consterne plusieurs groupes

o Un adhérant (utilisateur) peut enregistrer des logs sur un autre adhérant (accusé de

réception des appels, SMS et mail)

o La table config est utilisée pour personnaliser et configurer le comportement de l'application

au besoin de l'utilisateur

MLD :

Page 28: Gestion d'une association

12

Figure 3: Modèle logique de données

Dans le modèle logique de données présenté ci-dessus nous avons ajouté les clés étrangères pour les

une table association de la relation avancement

Page 29: Gestion d'une association

4

Figure 4: la base de données

Page 30: Gestion d'une association

4

3. Diagramme de Classes

Le diagramme de classes est considéré comme le plus important de la modélisation

orientée objet, il est le seul obligatoire lors d’une telle modélisation. Le diagramme de

classes montre la structure interne du système.

Il permet de fournir une représentation abstraite des objets du système qui vont interagir

ensemble pour réaliser les cas d’utilisation. Il s’agit d’une vue statique car on ne tient pas

compte du facteur temporel dans le comportement du système.

Les principaux éléments de cette vue statique sont les classes et leurs relations :

association, généralisation et plusieurs types de dépendances, telles que la réalisation et

l’utilisation.

o Une classe de conception est composée par :

o Attribut : chaque attribut d’une classe est le même pour chaque instance de cette

classe.

Méthodes : elle définit le comportement d’une classe elle-même, et non le comportement

de ses instances qui peut être différent.

La figure ci-dessous montre le diagramme de classes que nous avons réalisées, en

illustrant toutes les classes, relations entre ces classes et leurs cardinalités.

Page 31: Gestion d'une association

5

Figure 5: Diagramme de classes

4. Diagramme de cas d’utilisation

Les diagrammes de cas d'utilisation sont des diagrammes UML utilisés pour donner une

vision globale du comportement fonctionnel d'un système logiciel.

Un cas d'utilisation représente une unité discrète d'interaction entre un utilisateur

(humain ou machine) et un système. Il est une unité significative de travail. Dans un

diagramme de cas d'utilisation, les utilisateurs sont appelés acteurs (actors), ils

interagissent avec les cas d'utilisation (use cases).

UML définit une notation graphique pour représenter les cas d'utilisation, cette notation

est appelée diagramme de cas d'utilisation. UML ne définit pas de standard pour la forme

écrite de ces cas d'utilisation, et en conséquence il est aisé de croire que cette notation

graphique suffit à elle seule pour décrire la nature d'un cas d'utilisation. Dans les faits, une

notation graphique ne peut donner qu'une vue générale simplifiée d'un cas ou d'un

ensemble de cas d'utilisation.

Les diagrammes de cas d'utilisation sont souvent confondus avec les cas d'utilisation.

Bien que ces deux concepts soient reliés, les cas d'utilisation sont bien plus détaillés que

les diagrammes de cas d'utilisation.

Page 32: Gestion d'une association

6

La figure ci-dessous décrit les différents cas d'utilisations de chaque acteur. Elle

permet de distinguer les rôles et les acteurs du projet.

NB :Le diagramme qui suit représente un cas d’utilisation globale de l’application.

Figure 6: Diagramme des Cas d’Utilisations globale

Pour Administrateur :

authentification par un login et mot de passe avec possibilité de choisir la langue

entre (AR, FR, EN)

gestion des adhérents:

o ajouter, modifier et supprimer un adhérant

o recherche multicritères par cin, sexe, date de naissance, ville, coda bar, statuts,

groupe, cotisation, nombre de ligne par page

o activer ou désactiver un adhérant (accès à son profile)

o changer le rôle de l'utilisateur (simple utilisateur, éditeur ou administrateur)

o associer un ou plusieurs utilisateurs à un groupe

o créer un groupe de filtre

o exporter la liste des adhérents vers diffèrent type de données (csv, XML, PDF ou

Excel)

o imprimer les cartes des adhérents

o imprimer les tickets de repas

o naviguer sur les profils des adhérant avec les touches de claviers

o ajouter un statut pour un adhérant

gestion des adherants Gestion des Groupes

Gestion des StatusGestion des cotisations

PréférencesGestion des évenement

MessagerieProfile

Page 33: Gestion d'une association

7

o ajouter une cotisation

o consulter le profile complet d'un adhérant

o information générale

o Informations de L'association

o Informations de contact

o Historique des Grades (statuts)

o Historique des Cotisations

o Historique des appels, sms ou mail reçus

o imprimer la fiche d'un adhérant

Gestion des Groupes:

o Ajouter, modifier et supprimer un groupe

o consulter la liste des membres dans un groupe

o chercher un adhérant dans un groupe

o appeler un adhérant et laisser un feedback sur l'appel émis

o Envoyer un SMS

o Enlever un adhérant d'un groupe

Gestion des Statuts:

o consulter la liste des statuts disponible et le nombre d'adhérents pour chaque

statut

o Ajouter, modifier et supprimer un statut

Gestion des cotisations:

o consulter la liste des cotisationseffectuées

o recherche multicritères

o Modifier et supprimer une cotisation

o Afficher une cotisation et imprimer les reçus

Gestion des évènements:

• consulter la liste des événements

• recherche multicritères

• consulter le calendrier des évènements

• ajouter un évènement en utilisant l'interface ergonomique du calendrier

• changer la date d'un évènement avec un simple drag & drop

• afficher, mettre à jour et supprimer un évènement

• publier un événement par mail

• imprimer les lettres d'invitations

Préférences:

Page 34: Gestion d'une association

8

• modifier l’information relative à l'association

• logo de l'application, titre, description, ville ...

• configurer les paramètres de Google maps afin d'afficher l'adresse exacte de

l'association dans la carte (Latitude, Longitude)

• changer le thème de l'application

• mettre à jour le nombre de ligne à afficher par page

• Permettre ou non aux membres d'imprimer leurs carte

• modifier la mise en forme des badges

• modifier le modèle des lettres envoyées

• configuration des champs:

• préciser quel information à afficher pour les tables adhérant et cotisations

Messagerie:

• Boîte de réception, Boîte d'envoi, messages supprimés

• envoyer un nouveau message

Profile:

• Modifier la photo de profile et les autres informations

• imprimer la carte si c'est autorisé par l'administrateur

• Changer le mot de passe (nécessite le mot de passe actuel)

• Changer l'adresse email (nécessite le mot de passe actuel)

Déconnexion

Pour Editeur :

Fonctionnalité de l'administrateur avec des exceptions

authentification

gestion des adhérents:

o ajouter, modifier un adhérant

o un éditeur n'a pas le droit de modifier l’information d'un administrateur

pour des raisons de sécurité

o recherche multicritères

o cin, sexe, date de naissance, ville, codabar, statuts, groupe, cotisation,

nombre de ligne par page

o exporter la liste des adhérents vers diffèrent type de données (csv, xml, pdf

ou excel)

o imprimer les cartes des adhérents

o imprimer les tickets de repas

o naviguer sur les profils des adhérents avec les touches de claviers

Page 35: Gestion d'une association

9

o ajouter un statut pour un adhérant

o ajouter une cotisation

o consulter le profile complet d'un adhérant

o imprimer la fiche d'un adhérant

Gestion des Groupes: fonctionnalité de l'administrateur sauf la suppression d'un

groupe

Gestion des Statut: fonctionnalité de l'administrateur sauf la suppression d'un

Statuts

Gestion des cotisations: fonctionnalité de l'administrateur sauf la suppression des

cotisations

Gestion des évènements: un éditeur peut juste voir dans le calendrier les

événements auxquels il est invité

Messagerie:

o Boîte de réception, Boîte d'envoi, messages supprimés

o envoyer un nouveau message

Profile:

o Modifier la photo de profile et les autres informations

o imprimer la carte si c'est autorisé par l'administrateur

o Changer le mot de passe (nécessite le mot de passe actuel)

o Changer l'adresse email (nécessite le mot de passe actuel)

Déconnexion

Pour Simple utilisateur :

authentification

Calendrier: un utilisateur peut juste voir dans le calendrier les événements

auxquels il est invité

Messagerie:

o Boîte de réception, Boîte d'envoi, messages supprimés

o envoyer un nouveau message

Profile:

o Modifier la photo de profile et les autres informations

o imprimer la carte si c'est autorisé par l'administrateur

o Changer le mot de passe (nécessite le mot de passe actuel)

o Changer l'adresse email (nécessite le mot de passe actuel)

Déconnexion

5. Cas d’utilisations

Page 36: Gestion d'une association

10

5.1. Cas d’utilisation (Module Espace gestion des adhérents)

Spécification : L’objectif de ce cas d’utilisation est faire la gestion de des adhérents.

Figure 7: Diagramme du Package gestion des adhérents

5.2. Cas d’utilisation (Module Espace gestion des cotisations)

Spécification : L’objectif de ce cas d’utilisation est faire la gestion des cotisations.

Editeur

Administrateur

ajouter, modifier un adherant

suppression

recherche multi -critéres

activation

changer le role de l 'uti l isateur

associer à un groupe

créer un groupe de fi ltre

exporter (csv, xml, pdf, excel)

imprimer les badges

Page 37: Gestion d'une association

11

Figure 8: Diagramme du Package Gestion des cotisations

5.3. Cas d’utilisation (Module Espace gestion des Groupes)

Spécification : L’objectif de ce cas d’utilisation est faire la gestion des Groupes.

Editeur

Administrateur

consulter la l iste des cotisation

suppression une cotisation

Ajouter une cotisation

Mettre à jour une cotisation

recherche multi -critéres

imprimer le reçus

Page 38: Gestion d'une association

12

Figure 9: Diagramme du Package Gestion des Groupes

5.4. Cas d’utilisation (Module Espace gestion des évènements)

Spécification : L’objectif de ce cas d’utilisation est faire la gestion des évènements.

Editeur

Administrateur

ajouter, modifier un groupe

suppression

chercher un adhérant

consulter la l iste des membres dans un groupe

Envoyer un SMS

appeler un adherant

Enlever un adhérant d'un groupe

Page 39: Gestion d'une association

13

Figure 10: Diagramme du Package Gestion des évènements

5.5. Cas d’utilisation (Module Espace Profile)

Spécification : L’objectif de ce cas d’utilisation est faire la gestion Profile.

Editeur

Administrateur

consulter la l iste des événements

voir calendrier personel

Util isateur

recherche multi-critéres

consulter le calendrier des évenements

ajouter un evenement

Mettre à jour un evenemntsupprimer un evenement

publier un événement par mail

imprimmer les lettres

Page 40: Gestion d'une association

14

Figure 11: Diagramme du Package Profile

5.6. Cas d’utilisation (Module Espace Préférences)

Spécification : L’objectif de ce cas d’utilisation est faire la configuration de l’application.

Utilisateur

Administrateur

Changer le mot de passe

re-authentification

Mettre à jour son profile

imprimer la carte

Editeur2

Page 41: Gestion d'une association

15

Figure 12: Diagramme du Package Préférences

6. Diagramme de Séquence

Les diagrammes de séquence sont couramment utilisés par nombre d'acteurs d'un

projet. En effet, le diagramme de séquence est une représentation intuitive lorsque l'on

souhaite concrétiser des interactions entre deux entités (deux sous-systèmes ou deux

classes d'un futur logiciel).

Ils permettent à l'architecte/designer de créer au fur et à mesure sa solution. Cette

représentation intuitive est également un excellent vecteur de communication dans

une équipe d'ingénierie pour discuter cette solution. Les diagrammes de séquence

peuvent également servir à la problématique de test. Les traces d'exécution d'un test

peuvent en effet être représentées sous cette forme et servir de comparaison avec les

diagrammes de séquence réalisés lors des phases d'ingénierie. Les diagrammes de

séquence tels que définis en UML souffraient cependant d'un gros inconvénient.

Administrateur

configurer l 'application

changer le theme de l 'application

modifier les information

La mise en forme des badges Le modèle des lettres envoyées

configuration des champs

Page 42: Gestion d'une association

16

La quantité de diagrammes à réaliser pouvait atteindre un nombre élevé dès lors que

l'on souhaitait décrire avec un peu de détail les différentes branches

comportementales d'une fonctionnalité.

La figure ci-dessous montre le processus suivi par l’adhèrent pour gérer son compte.

Ce processus ne se déclenche si, et seulement si, l’adhèrent choisit la commande ‘Espace

profil’.

Figure 13: diagramme de séquence

7. Diagramme d’activité

Page 43: Gestion d'une association

17

UML permet de représenter graphiquement le comportement d'une méthode ou le

déroulement d'un cas d'utilisation, à l'aide de diagrammes d'activités (une variante des

diagrammes d'états-transitions). Une activité représente une exécution d'un mécanisme,

un déroulement d'étapes séquentielles.

Le passage d'une activité vers une autre est matérialisé par une transition. Les transitions

sont déclenchées par la fin d'une activité et provoquent le début immédiat d'une autre

(elles sont automatiques). En théorie, tous les mécanismes dynamiques pourraient être

décrits par un diagramme d'activités, mais seuls les mécanismes complexes ou

intéressants méritent d'être représentés.

7.1. Diagramme d’activité

Figure 14: Diagramme d’activité relatif au cas d’utilisation «Authentification»

7.2. Diagramme d’activité (Modification de profil)

Page 44: Gestion d'une association

18

Figure 2: Diagramme d’activité relatif au cas d’utilisation «Modification de profil»

Page 45: Gestion d'une association

19

IV. Conclusion

Au cours de ce chapitre, nous avons conçu notre base de données ainsi que les

différents composants de notre système.

Maintenant, notre application est prête à être codée. Mais tout le prochain chapitre sera

des technologies utilisées dans notre application.

Page 46: Gestion d'une association

20

Chapitre 4 :

Etude de l’art et gestion de projet

Page 47: Gestion d'une association

21

I. Introduction

Le choix des technologies utilisées dans une application agit sans doute sur la

qualité du travail réalisé. Le succès ou l’échec d’un travail quelconque dépend, en partie,

du choix des technologies employées. Nous allons exposer dans ce chapitre la

technologie envisageable et relative au développement de notre application.

Page 48: Gestion d'une association

22

II. Outils de Réalisation et de Modélisation

2.1 PowerAMC

PowerAMC est un logiciel de modélisation. Il permet de modéliser les traitements

informatiques et leurs bases de données associées. Créé par SDP sous le nom

AMC*Designor, racheté par Powersoft, ce logiciel est produit par Sybase depuis le rachat

par cet éditeur en 1995. Hors de France, la version internationale est commercialisée par

Sybase sous la marque PowerDesigner.

2.2 WAMPSERVER

WAMP est un acronyme informatique signifiant Windows, Apache, MySQL et PHP dans la

majorité des cas mais aussi parfois, « Perl », ou « Python ».

Les rôles de ces quatre composants sont les suivants :

o Apache est le serveur web « frontal » : il est devant tous les autres et répond

directement aux requêtes du client web (navigateur)

o Le langage de script PHP sert la logique ;

o MySQL stocke toutes les données de l'application ;

Windows assure l'attribution des ressources à ces trois composants.

Tous les composants peuvent être situés :

sur une même machine ,sur deux machines, généralement Apache et le langage de script

d'un côté et MySQL de l'autre ,sur de nombreuses machines pour assurer la haute

disponibilité (répartition de charge et/ou failover).

Page 49: Gestion d'une association

23

Néanmoins, l'architecture WAMP est le plus souvent utilisée pour développer des sites

web sur une machine Windows. De ce fait, en général, tout se passe sur une même

machine. La mise en production se fera généralement sur une architecture LAMP (ou

XAMP, X désignant un système à base d'Unix).

III. Langages de Réalisation et de Modélisation

3.1 UML

UML (en anglais UnifiedModeling Language ou « langage de modélisation unifié ») est

un langage de modélisation graphique à base de pictogrammes. Il est apparu dans le

monde du génie logiciel, dans le cadre de la « conception orientée objet ». Couramment

utilisé dans les projets logiciels, il peut être appliqué à toutes sortes de systèmes ne se

limitant pas au domaine informatique.

UML est l'accomplissement de la fusion de précédents langages de modélisation

objet : Booch, OMT, OOSE. Principalement issu des travaux de GradyBooch, James

Rumbaugh et Ivar Jacobson, UML est à présent un standard défini par l'Object

Management Group (OMG). La dernière version diffusée par l'OMG est UML 2.4.1 depuis

aout 2011.

3.2 PHP

Le PHP: Hypertext Preprocessor, plus connu sous son sigle PHP, est un langage de

scripts libre principalement utilisé pour produire des pages Web dynamiques via

un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage

interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est

un langage impératifdisposant depuis la version 5 de fonctionnalités de modèle

Page 50: Gestion d'une association

24

objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP

comme une plate-forme plus qu'un simple langage.

3.3 Le Framework Symfony

Symfony est un Framework MVC open-source écrit en PHP 5, donc orienté objet. Ses

principales fonctionnalités sont :

Une séparation du code en trois couches, selon le modèle MVC. • Un système de

templateévolué.

Des performances optimisées et un système de cache pour garantir des temps de

réponse optimums.

Une gestion des url parlantes, qui permet de formater l'url d'une page

indépendamment de sa position dans l'arborescence fonctionnelle.

Un système de configuration en cascade qui utilise de façon extensive le langage

YAML8.

Un système de gestion de langue (pour internationaliser un site).

Une couche de mapping objet-relationnel (ORM) et une couche d'abstraction de

données.

Le support de l'Ajax.

Une architecture extensible, permettant la création et l'utilisation de plugins.

3.4 MySQL

MySQL est un système de gestion de base de données (SGBD). Selon le type

d'application, sa licence est libre ou propriétaire. Il fait partie des logiciels de gestion

de base de données les plus utilisés au monde, autant par le grand public (applications

web principalement) que par des professionnels, en concurrence avec Oracle et Microsoft

SQL Server.

Page 51: Gestion d'une association

25

MySQL AB a été acheté le 16 janvier 2008 par Sun Microsystems pour un milliard

de dollars américains1. En 2009, Sun Microsystems a été acquis par Oracle Corporation,

mettant entre les mains d'une même société les deux produits concurrents que

sont Oracle Database et MySQL. Ce rachat a été autorisé par la Commission

européenne le 21 janvier 20102,3.

Depuis mai 2009, son créateur Michael Widenius a créé MariaDB pour continuer son

développement en tant que projet Open Source.

3.5 Autres technologies

Technologies web: Html5, CSS3, JQuery, Ajax, FullCalendar, Twitter bootstrap

Outils de gestion de code sources: Git

IV. Gestion de Projet

Dans cette partie nous représentons l’organigramme chronologique de la réalisation de

notre projet. Cet organigramme comporte les principales tâches effectuées tout au

long du projet.

Nous avons commencé durant trois semaines par analyser l’existant et spécifier les

besoins, puis nous avons passé à la partie conception qui a duré quatre semaines. Vers

la fin de cette dernière nous avons commencé la plus grande partie (plus que dix

semaines) c’est la partie de programmation et la réalisation. Pour la partie du rapport

nous l’avons crée au fur et a mesure de l’avancement du travail (les deux dernières mois).

4.1 Microsoft Project

Microsoft Project (ou MS Project ou MSP) est un logiciel de gestion de projets édité

par Microsoft. Il permet aux chefs de projet et aux planificateurs de planifier et piloter les

projets, de gérer les ressources et le budget, ainsi que d'analyser et communiquer les

données des projets.

Page 52: Gestion d'une association

26

Utilisé aujourd'hui (2011) par plus de 20 millions de chefs de projet, Microsoft Project est le

logiciel de gestion de projet le plus utilisé au monde2,3. Plus de 10 000 entreprises ont

aussi déployé la version serveur de Microsoft Project, nommée Microsoft Project Server.

4.2 planification du projet

La planification prend en compte la gestion des tâches : durées, enchainement,

regroupement, calcul des échéances, fait sortir l’ordonnancement des événements et des

jalons du projet.

La structuration organise préalablement les éléments principaux décrits précédemment.

Certaines des éléments issus de la structuration sont directement nécessaire à la

planification, comme :

Les composants et les livrables qui leur associés.

Les activités du cycle de vie du projet.

Les tâches et les macros tâches de chaque lot de travaux

4.3 Définition du diagramme de GANTT

Figure 3: planification du projet

Page 53: Gestion d'une association

27

Le diagramme de GANTT est un outil permettant de modéliser la planification de tâches

nécessaires à la réalisation d'un projet. Il s'agit d'un outil inventé en 1917 par Henry L.

GANTT.

Etant donné la relative facilitée de lecture des diagrammes GANTT, cet outil est utilisé par

la quasi-totalité des chefs de projet dans tous les secteurs. Le diagramme GANTT

représente un outil pour le chef de projet, permettant de représenter graphiquement

l'avancement du projet, mais c'est également un bon moyen de communication entre les

différents acteurs d'un projet.

Ce type de modélisation est particulièrement facile à mettre en œuvre avec un simple

tableur mais il existe des outils spécialisés dont le plus connu est Microsoft Project. Il

existe par ailleurs des équivalents libres de ce type de logiciel.

Le tableau ci-dessous illustre la répartition du travail tout au long de ce projet :

Figure 4: Diagramme de Gant relatif au déroulement des activités durant la période du projet

Page 54: Gestion d'une association

28

4.4 Structure de découpage du projet (WBS)

La génération de la WBS du projet, contenant toutes les tâches de production, se fait à

partir des deux structures :

o ATS listant les composants du système

o La liste des activités appartenant aux différents cycles de vie.

Chaque croisement produit/activité détermine un lot de travaux, ce dernier se définit

comme l’ensemble des tâches pour effectuer la production d’un composant.

Il y’a des composants qui nécessite le même travail et les mêmes activités du cycle vie, tels

que l’authentification, la consultation des dossiers, désignation donc on va prendre le cas

général

Page 55: Gestion d'une association

29

V. Conclusion

Ce chapitre nous a permis d’étudier la technologie au long utilisé du développement de

l’application soit dans la partie conception, développement ou gestion du projet.

Page 56: Gestion d'une association

30

Chapitre 5 :

Réalisation et Interface de l’application

Page 57: Gestion d'une association

31

I. Introduction

La phase de réalisation est une étape très importante dans le cycle de vie de notre

application.

Cette phase permet de concrétiser notre projet par le développement des interfaces et

par des réalisations concrètes des fonctionnalités du système. Pour réaliser notre

application nous avons en recourt à plusieurs outils de développement. Dans ce chapitre,

nous présentons en premier lieu l’environnement de travail. En second lieu, nous

présentant le choix techniques que nous avons adopté pour le développement de

notre application.

Page 58: Gestion d'une association

32

II. Choix de la technologie de sécurité

2.1 Introduction

Selon les experts en la matière, la majorité des applications Web souffrent de

vulnérabilités. Il est pourtant nécessaire de comprendre que la sécurité des sites Internet

ne souffre pas de manichéisme : un site peut être plus ou moins sûr, et la sécurité est

souvent une affaire de compromis.

Elle dépend de nombreux facteurs, tels que les connaissances du développeur bien

entendu, mais aussi la conception et la complexité du site, le coût et les délais de

fabrication et même parfois – aussi étonnant que cela puisse paraître – de la

responsabilisation de ses utilisateurs.

Les internautes doivent utiliser des navigateurs (ou agents utilisateur) pour parcourir le

Web. Comme tout logiciel, ceux-ci sont potentiellement porteurs de vulnérabilités et

peuvent ainsi exposer accidentellement, sous certaines conditions, des informations

concernant leur utilisateur. Il est donc nécessaire de mettre à jour ces logiciels lorsque de

telles vulnérabilités sont découvertes et que des correctifs sont publiés. Mais beaucoup

d’utilisateurs ne le font pas, ce qui ouvre une faille de sécurité qui n’est pas forcément du

ressort des développeurs du site Internet.

2.2 La sécurité de notre application

La sécurité dans l’application est un processus comprenant 2 étapes, dont le but est de

prévenir un utilisateur d'accéder à une ressource à laquelle il n'a pas accès.

Dans la première étape du processus, le système de sécurité identifie l'utilisateur en lui

demandant de soumettre une sorte d'identification. C'est ce qu'on appelle

l'authentification, et cela signifie que le système cherche à savoir qui vous êtes.

Une fois que le système sait qui vous êtes, l'étape suivante est de déterminer si vous avez

accès à une ressource donnée. Cette étape du processus est appelée autorisation, et cela

signifie que le système vérifie si vous avez les privilèges pour exécuter certaines actions.

Page 59: Gestion d'une association

33

Figure 5: Mécanisme de sécurité de l’application

III. Architecture globale du Site Web

L’application possède l’arborescence suivante :

Figure 6: Architecture globale du site web

Le répertoire /app

Ce répertoire contient tout ce qui concerne l'application… sauf son code source afin de

séparer le code source, qui fait la logique de l'application, du reste. Le reste, c'est ce

répertoire /app. Et ce reste c'est : la configuration, le cache, les fichiers logs, etc. Ce sont

des fichiers qui concernent l'entièreté de l'application, contrairement aux fichiers de code

source qui seront découpés par fonctionnalité de l'application.

Page 60: Gestion d'une association

34

Le répertoire /src

C'est ici que réside tous le code source de notre application, les vue les contrôleurs les

modèles, les services etc. organisé en bundles, des briques de l’application.

Le répertoire /vendor

Ce répertoire contient toutes les bibliothèques externes à notre application. Dans ces

bibliothèques externes, j'inclus Symfony2 ! Vous pouvez parcourir ce répertoire, vous y

trouverez des bibliothèques comme Doctrine, Twig, SwiftMailer, etc.

Le répertoire /web

Ce répertoire contient tous les fichiers destinés aux visiteurs : images, fichiers CSS et

JavaScript, etc. Il contient également le contrôleur frontal (app.php) qui est le point

d'entrée de l'application.

Les bundles de notre application :

L’application se compose de trois bundle :

UserBundle : ce bundle permet la gestion des adhérents et les groupes.

AssociationBundle : ce bundle permet la gestion des cotisations, des événements, et le

partie configuration.

MessageBundle : ce bundle gère la messagerie locale qui permet de communiquer entre

les utilisateurs de l’application

La structure de ces bundle est la même que tous les bundles Symfony, la figure ci-dessous

illustre un exemple d’un bundle :

Page 61: Gestion d'une association

35

Figure 20: Structure d’un bundle

IV. Interface de l’Application

4.1 Introduction

Comme toute application, notre application doit être facile à utiliser et compréhensive par

tout type de cible. Dans ce qui suit, nous présentons quelques interfaces pour faire

expliquer les principales fonctionnalités des différents modules de notre projet.

4.2 Présentation de l’application

Ici je vais vous détailler les différentes fonctionnalités de l’interface web. Vous pouvez voir

ci-dessous la page de connexion de l'application.

Page 62: Gestion d'une association

36

Figure 21: Page d'authentification

Cette page permet l'identification d'un utilisateur grâce à un login et un mot de passe avec

la possibilité de choisir la langue entre l’arabe, français et l’anglais. L'utilisateur est obligé

de se connecter s’il souhaite accéder à l'application.

Une fois l’authentification réussie, l’utilisateur est redirigé automatiquement vers le

tableau de bord.

Tableau de bord

Page 63: Gestion d'une association

37

Figure 7: tableau de bord de l'application

1. Nombre total des adhérents

2. Nombre des groups

3. Nombre des évènements

4. Nombre des réservations

5. Nombre des logements

6. Nombre des chambres

7. Tableau de bord

8. Gestion des adhérents

9. Gestion des groupes

10. Gestion des statuts

11. Gestion des cotisations

12. Gestion des évènements

13. Préférences

14. Un bouton pour réduire le menu à gauche

15. Google maps afficher l'adresse exacte de l'association dans la carte

16. Messagerie

17. Calendrier

18. Profile

Depuis la page d’accueil l’utilisateur pourra donc consulter des statistiques sur

l’association, aussi une carte Google maps qui permet d’afficher l'adresse exacte de l'association dans la carte

Page de gestion des adhérant

Page 64: Gestion d'une association

38

Figure 8: page de gestion des adhérents

Dans la page de gestion des adhérents l’administrateur à la possibilité de:

o ajouter, modifier et supprimer un adhérant

o recherche multicritères par le CIN, sexe, date de naissance, ville, coda bar, statut, groupe,

cotisation, nombre de ligne par page

o activer ou désactiver un adhérant (accès à son profile)

o changer le rôle de l'utilisateur (simple utilisateur, éditeur ou administrateur)

o associer un ou plusieurs utilisateurs à un groupe

o créer un groupe de filtre

o exporter la liste des adhérents vers diffèrent type de données (csv, xml, pdf ou excel)

o imprimer les cartes des adhérents

o imprimer les tickets de repas

o naviguer sur les profils des adhérant avec les touches de claviers

o ajouter un statut pour un adhérant

o ajouter une cotisation

o consulter le profile complet d'un adhérant

o information générale

o Informations de L'association

o Informations de contact

o Historique des Grades (statuts)

o Historique des Cotisations

o Historique des appels, sms ou mail reçus

o imprimer la fiche d'un adhérant

Page 65: Gestion d'une association

39

Figure 9: gestion des adhérant - Actions diponibles

Page de gestion des groupes

Figure 10: page de gestion des groupes

Cette page affiche la liste des groupes disponible ainsi le nombre des adhérents dans chaque

groupe avec la possibilité de :

o Ajouter, modifier et supprimer un groupe

o consulter la liste des membres dans un groupe

o chercher un adhérant dans un groupe

o appeler un adhérant et laisser un feedback sur l'appel émis

Page 66: Gestion d'une association

40

o Envoyer un SMS

o Enlever un adhérant d'un groupe

Page de gestion des statuts

Figure 11: Page de gestion des statuts

Cette page permet d’afficher la liste des statuts avec la possibilité de :

o consulter la liste des statuts disponible et le nombre d'adhérent pour chaque statut

o Ajouter, modifier et supprimer un statut

Page de gestion des cotisations

Figure 12: Page de gestion des cotisations

Dans cette page un utilisateur (éditeur) peut consulter la liste des cotisations effectué avec la

possibilité de :

o consulter la liste des cotisationseffectuées

o recherche multicritères (cin, période de cotisation, groupe, type de cotisation, nombre de

ligne par page)

Page 67: Gestion d'une association

41

o Modifier et supprimer une cotisation

o Afficher une cotisation et imprimer les reçus

Page de gestion des événements

Figure 13: Page de gestion des événements

Et dans la page de Gestion des évènements qui permit afficher la liste des évènements

d’associations on a la possibilité de :

o Consulter la liste des événements

o recherche multicritères

o cin, période d'évènement, groupe, nombre de ligne par page

o consulter le calendrier des évènements

o ajouter un évènement en utilisant l'interface ergonomique du calendrier

o changer la date d'un évènement avec un simple drag & drop

o afficher, mettre à jour et supprimer un évènement

o publier un événement par mail

o imprimer les lettres d'invitations

Préférences

Page 68: Gestion d'une association

42

Figure 14: Préférences

Dans cette on peut configurer et personnaliser l’application a nos besoins, elle est accessible

seulement par les administrateurs :

o modifier les informations relatives à l'association

o logo de l'application, titre, description, ville ...

o configurer les paramètres de Googlemaps afin d'afficher l'adresse exacte de l'association

dans la carte (Latitude, Longitude)

o changer le thème de l'application

o mettre à jour le nombre de ligne à afficher par page

o Permettre ou non aux membres d'imprimer leurs carte

o modifier la mise en forme des badges

o modifier le modèle des lettres envoyées

o configuration des champs:

o préciser quel information à afficher pour les tables adhérents et cotisations

Messagerie

C’est la partie messagerie de l’application à la possibilité d’afficher les messages reçus, envoyés et

supprimés aussi la possibilité d’envoyer un nouveau message.

Page 69: Gestion d'une association

43

Figure 30: Messagerie

Calendrier des événements

Page 70: Gestion d'une association

44

Figure 31: Calendrier des événements

Cette page permet d’afficher les événements sous forme d’un calendrier

Profile

Page 71: Gestion d'une association

45

Figure 15: Profile

Et dans la page Profile on a la possibilité de :

Par le bouton afficher mon profile

• Afficher toutes les informations

• Modifier la photo de profile et les autres informations

• Imprimer la carte si c'est autorisé par l'administrateur

Par le bouton compte

• Changer le mot de passe (nécessite le mot de passe actuel)

• Changer l'adresse email (nécessite le mot de passe actuel)

Par le bouton déconnexion

• Déconnecter de la session et revient a la page d’accueil

Page 72: Gestion d'une association

46

V. Conclusion

Dans ce chapitre nous avons présenté en détails le développement de notre application.

Nous avons commencé par présenter des choix de la technologie. De plus, nous avons

exposé l’architecture globale de notre site web.

Nous avons aussi présenté les principales interfaces de notre application et nous avons

également exposé les différentes étapes à suivre par l’utilisateur, et il est à noter que ce

travail nous a posé quelques problèmes mais enfin nous sommes contentés, dans ce

travail, d’arriver à réaliser les principaux modules en répondant aux contraintes et en

répondant parfaitement à l’attente de l’entreprise

Page 73: Gestion d'une association

47

Conclusion

générale:

Page 74: Gestion d'une association

48

« La pérennité d’une société n’est pas forcément

liée à son gigantisme mais avant tout à son

pragmatisme et à ses hommes. »

Ce projet nous a permis de connaître la gestion des adhérents d’association en ligne et

d’approfondir nos connaissances, notamment en termes de conception et de réalisation

de ce domaine. Pour la modélisation, nous avons optés pour UML comme langage de

modélisation et PowerAMC comme outil de modélisation nous permettant ainsi de

représenter nos diagrammes sous format électronique. Pour la réalisation, nous nous

sommes orientés vers la plateforme Apach, en utilisant PHP comme de codage côté

Serveur et JavaScript coté client.

Le SGBD exploité n’est autre que MySQL, nous permettant de bénéficier des services des

procédures stockées et la gestion des données.

En effet, ce projet peut être encore développé, et parmi ces perspectives nous pouvons

envisager :

o les notifications par SMS et par appel téléphonique (pas juste simulation);

o version d’application pour le Smart phone Androïde et iOS.

Nous avons aussi rencontré quelques problèmes au début du projet, faute de

documentation sur les logiciels, manque d’expérience et d’expertise dans la manipulation

des logiciels libres. Il reste beaucoup d’améliorations et extensions qui peuvent être

apportées à ce module.

En conséquence de tout ce qui précède, nous espérons avoir été au niveau de la tâche qui

nous a été affectée. Ce travail nous a donné l’opportunité d’assurer un travail de groupe,

comment compter sur soi pour résoudre les problèmes au cas où ils se présentent,

comment être méticuleuses dans notre travail, comment être attentives aux indications

de notre encadrant, comment être bien organisées pour accomplir dans les meilleurs

délais, et meilleures conditions les tâches qui nous sont confiées.

Page 75: Gestion d'une association

49

Annexe

Page 76: Gestion d'une association

50

I. Annexe I : Installation sous Linux

On va voir dans ce chapitre les points à vérifier pour déployer l’application sur un serveur

linux. La méthodologie est la suivante :

1.1 Vérifier et préparer le serveur de production

Évidemment, pour déployer une application Symfony2 sur votre serveur, encore faut-il

que celui-ci soit compatible avec les besoins de Symfony2 ! Pour vérifier cela, on peut

distinguer deux cas.

Symfony2 intègre un petit fichier PHP qui fait toutes les vérifications de compatibilité

nécessaires, Il s'agit du fichier web/config.php, envoyez le sur votre serveur. Ouvrez la

page web qui lui correspond, par exemple www.votre-serveur.com/config.php. Vous

devriez obtenir soit des alertes "Major Problems" que vous devez corriger ou juste des

Recommandations essayez de les respecter si cela est possible.

1.2 Pré-requis au bon fonctionnement de Symfony2

Voici les points obligatoires qu'il faut que votre serveur respecte pour pouvoir faire tourner

Symfony2 :

PHP doit être au minimum à la version PHP 5.3.3

JSON doit être activé

ctype doit être activé

Votre PHP.ini doit avoir le paramètre date.timezone défini

installer le driver PDO

1.3 Installer wkhtmltopdf

Wkhtmltopdf un outil qui permet de générer des PDF, il est utilisé dans l'application pour

imprimer les badges des adhérents.

Page 77: Gestion d'une association

51

# apt-get install wkhtmltopdf

Âpres l'installation modifier le fichier de configuration app/config/config.yml afin de

spécifier le chemin absolue de wkhtmltopdf.

1.4 Envoyer les fichiers sur le serveur

Dans un premier temps, il faut bien évidemment envoyer les fichiers sur le serveur. Pour

éviter d'envoyer des fichiers inutiles et lourds, videz dans un premier temps le cache de

votre application en supprimant tout le contenu du repertoire app/cache. Ensuite,

envoyez tous vos fichiers et dossiers à la racine de votre hébergement, dans www/

Important:

Les fichiers dans le répertoire vendors/ sont assez lourds et prennent beaucoup de temps

lors de l'uploada. Pour remédier à ce problème, sur votre serveur, exécutez la commande

# php composer.phar install

Cette commande qui va installer les mêmes versions des dépendances que vous avez en

local. Cela se fait grâce au fichier composer.lock qui contient tous les numéros des

versions installées justement.

Si vous n'avez pas accès à Composer sur votre serveur, alors contentez-vous d'envoyer le

dossier vendor en même temps que le reste de votre application.

1.5 Régler les droits sur les dossiers app/cache et

app/logs

Vous le savez maintenant, Symfony2 a besoin de pouvoir écrire dans deux répertoires :

app/cache pour y mettre le cache de l'application et ainsi améliorer les performances, et

app/logs pour y mettre l'historiques des informations et erreurs rencontrées lors de

l'exécution des pages. Sur votre serveur, exécutez la commande suivante:

# chmod 775 -R app/cache app/logs

1.6 Mettre en place la base de données

Page 78: Gestion d'une association

52

Il ne manque pas grand-chose avant que votre site ne soit opérationnel. Il faut notamment

s'attaquer à la base de données. Pour cela, modifiez le fichier app/config/parameters.yml

de votre serveur afin d'adapter les valeurs des paramètres database_*.

Ensuite connecter a MySQL et importer la base de donner à l'aide du ficher

app/Ressources/source.sql

Ça y est, l'application devrait être opérationnel dès maintenant ! Vérifiez que tout

fonctionne bien dans www.votre-serveur.com/app.php.

Important:

Les erreurs ne sont certes pas affichées à l'écran, mais elles sont heureusement

répertoriées dans le fichier app/logs/prod. Si l'un de vos visiteurs vous rapporte une

erreur, c'est dans ce fichier qu'il faut aller regarder pour avoir le détail, les informations

nécessaires à la résolution de l'erreur.

Page 79: Gestion d'une association

53

II. Annexe II : Installation sous Windows

2.1 Installation de WAMP

Pour commencer, il faut télécharger l’installeur wamp disponible gratuitement sur

son site officiel. (Notez qu’il est disponible en version 32 et 64 bits veillez donc à choisir la

bonne version en regard de votre système d’exploitation afin d’en tirer pleinement

satisfaction)

Dès lors que le téléchargement est terminé vous pouvez procéder à son installation.

L’installation est très simple je ne m’attarderai pas dessus afin de rester centré

uniquement sur l’essentiel dans ce tutoriel.

2.2 Déploiement des différents modules Apache et

PHP

Pour apache :

Faites clic-gauche sur l’icône de Wamp dans la barre des tâches > Apache > Apache

Modules > sélectionnez « Rewrite Module »

Pour les modules php :

clic-gauche sur l’icône de Wamp > PHP > PHP Extensions > cochez « php_intl », «

php_xmlrpc », « php_pdo_mysql », « php_sqlite3 », « php_mbstring »

Symfony2 recommande aussi l’utilisation du module php_apc pour accélérer le rendu des

pages.

2.3 Installer wkhtmltopdf

Pour télécharger Wkhtmltopdf, rendez-vous à cette adresse :

http://wkhtmltopdf.org/downloads.html Dès lors que le téléchargement est terminé vous

pouvez procéder à son installation.

Ensuit vous devez modifier le fichier de configuration app/config/config.yml afin de

spécifier le chemin absolue de wkhtmltopdf.

Page 80: Gestion d'une association

54

2.4 Test de Symfony2

Placez ensuite le répertoire de l’application dans votre répertoire web (par défaut

C:/WAMP/www/ ) et rendez-vous à l’adresse : http://localhost/association/app/check.php

Page 81: Gestion d'une association

55

Références

bibliographiques:

Page 82: Gestion d'une association

56

Cours

Auteur : GuillareRossolini

PHP 5

Auteur : Rodolphe Rielé

MySQL 5

Auteur : Olivier Hondermarck

JavaScript

Références Netographiques

[1] : http://www.codes-sources.com/

[2] : http://www.sitedynamique.com/

[3] : http://www.commentcamrche.com

[4] : http://www. Developpez.com

[5] : http://www. wikipedia.com

[6] : http://www.siteduzero.com/