gestion d'une association
DESCRIPTION
rapport pour la gestion d'une association en ligne avec symfony2TRANSCRIPT
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 :
-
-
-
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
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
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
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
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.
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
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
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
4
Chapitre1 :
Description Générale
DU PROJET
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.
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,…).
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
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.
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
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.
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
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.
13
Chapitre 2 :
Analyse des besoins
Et spécifications
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.
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
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.
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.
8
Chapitre 3 :
Conception
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.
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 :
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 :
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
4
Figure 4: la base de données
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.
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.
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
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:
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
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
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
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
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
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
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
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
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é
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)
18
Figure 2: Diagramme d’activité relatif au cas d’utilisation «Modification de profil»
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.
20
Chapitre 4 :
Etude de l’art et gestion de projet
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.
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).
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
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.
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.
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
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
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
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.
30
Chapitre 5 :
Réalisation et Interface de l’application
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.
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.
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.
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 :
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.
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
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
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
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
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)
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
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.
43
Figure 30: Messagerie
Calendrier des événements
44
Figure 31: Calendrier des événements
Cette page permet d’afficher les événements sous forme d’un calendrier
Profile
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
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
47
Conclusion
générale:
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.
49
Annexe
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.
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
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.
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.
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
55
Références
bibliographiques:
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/