Vous êtes sur la page 1sur 55

Ecole Nationale Supérieure d’Informatique et d’Analyse des

Systèmes - RABAT

Rapport de Stage Fin de Deuxième Année :


Application Web pour la gestion et le suivi des
différentes données de la bourse

Réalisé par : Encadré par : Jury :


Ikrame El arfaoui Mme Leila Ghoumari Mme Bouchra El Asri
Asmaa El azhar Mr Hatim Guermah

Année Scolaire 2020/2021


Remerciements
Avant d’aborder la description des parties importantes du projet, j’aimerai tout d’abord exprimer ma gra-

titude intense à toute personne qui a contribué énormément dans l’élaboration et la réalisation de ce travail.

Je commence ainsi par offrir mes remerciements à l’intégralité des personnes travaillant au sein de l’école Na-

tionale supérieure d’informatique et d’analyse des systèmes. Ces bonnes hommes et femmes qui ne cessent de

nous préparer, moi et mes collègues, pour de telles expériences afin de bien s’intégrer dans le cadre réelle du

marché de travail. Toute ma gratitude et profonde reconnaissance s’adressent à notre encadrante de stage : Mme.

GHOUMARI Leila . Je vous remercie énormément pour m’avoir garanti un encadrement de qualité pour bien

mener et assurer la réalisation de ce travail dans les meilleures des conditions.

1
Résumé
Ce document représente une synthèse du travail réalisé dans le cadre de notre stage d’été de deuxième année.

Nous avons effectué ce stage au sein de l’organisme CFG Marchés à Casablanca. Ce dernier a duré les deux mois

juillet et août de l’année 2021. L’objectif principal de ce travail consiste à développer une application Web pour

la gestion et le suivi des différentes données de la bourse. D’ailleurs, ce travail effectué nous a représenté la bonne

occasion pour appliquer nos savoirs et savoir-faire acquis durant ces années. En ce sens, la réalisation du projet

a passé en trois étapes principales : l’élaboration d’une analyse détaillée des besoins du client, conception de la

solution, et enfin la réalisation des objectifs soulignés. Ainsi, ce rapport est réalisé en quatre grandes parties, à

savoir : une présentation générale du contexte du projet, puis l’analyse du besoin et une étude fonctionnelle du

noyau de la solution, ensuite une étude conceptuelle, et finalement la mise en œuvre des composants clés de la

solution.

2
Abstract
This document represents a summary of the work carried out in the part of our second year summer

internship. We did this internship within the organization textbf CFG Marchés in Casablanca. The latter

lasted both July and August of the year 2021. The main objective of this work consists in developing a Web

application for the management and the follow-up of the various data of the stock market. Moreover, this work

done represented the right opportunity for us to apply our knowledge and know-how acquired during these

years. In this sense, the realization of the project has carried out in three main stages : the development of a

detailed analysis of customer needs, solution design, and and finally the achievement of the outlined objectives.

Thus, this report is produced in four main parts, namely : a general presentation of the project context, then

the analysis of the need and a functional study of the core of the solution, then a conceptual study, and finally

the implementation of the key components of the solution.

3
Liste des abréviations

Abréviation Désignation
PNB Produit national brut
PDM Part de marché
CA chifre d’ffaires
MVC Modèle-Vue-Contrôleur
ORM mapping objet-relationnel
MVT Model View Template
CU Cas d’utilisation

4
Liste des tableaux

1.1 Tableau des itérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.1 Description textuelle du CU : Insérer les statistiques par Excel automatiquement . . . . . . . . . 23


2.2 Description textuelle du CU : Générer les différents graphes . . . . . . . . . . . . . . . . . . . . . 23
2.3 Description textuelle du CU : Ajouter une statistique manuellement . . . . . . . . . . . . . . . . 23

3.1 Description du diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5
Table des matières

Remerciements 1

Résumé 2

Abstract 3

liste des abréviations 4

Table des figures 7

Introduction générale 10

1 Contexte général du projet 11


1.1 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.1 CFG Bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.2 Historique du Groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.3 Domaines d’expertise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1.4 Organigramme CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.1 Périmètre du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.2 Problématique du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.3 Objectifs du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.4 Conduite du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.4.1 Qu’est-ce que SCRUM et quels sont ses avantages . . . . . . . . . . . . . . . . . 15
1.2.4.2 Sprints de notre projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Analyse et Spécification des Besoins 18


2.1 Étude du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 Introduction à l’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.2 Description générale du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.3 Étude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Spécification des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Spécification des acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Besoins fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.3 Les besoins non fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Analyse Fonctionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Diagramme des cas d’utilisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5 Description textuelle des cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Étude conceptuelle 25
3.1 Diagramme de séquences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.1 Diagramme de séquence "Authentification" . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.2 Diagramme de séquence "Insérer les données par Excel" . . . . . . . . . . . . . . . . . . . 26
3.1.3 Diagramme de séquence "Saisie manuelle d’une statistique" . . . . . . . . . . . . . . . . . 27
3.1.4 Diagramme de séquence "Générer un Reporting" . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6
4 Réalisation 33
4.1 Environnement de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Outils de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1.1 PyCharm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1.2 Git/GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2 Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2.2 Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.3 Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.4 Base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 L’architecture de la solution : MVT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.1 ORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.2 MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.3 MVT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 Présentation des interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.1 Interfaces Visiteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.1.1 Accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.1.2 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.1.3 Page des statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.1.4 La PDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3.1.5 Liste des clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3.1.6 Infocentre Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1.7 Table du chiffre d’affaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.1.8 Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.1.9 PNB par canal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.1.10 retraitement de CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.1.11 budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3.2 Interfaces Administrateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2.1 Ajouter des statistiques manuellement . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2.2 Ajouter des statistiques avec Excel . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2.3 Ajouter rétrocession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.2.4 Ajouter budget annuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.2.5 Ajouter client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.2.6 Ajouter PNB prévisionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Conclusion générale 52
Table des figures

1.1 Logo CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11


1.2 Historique de CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Organigramme de CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Représentation de la méthode agile SCRUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.1 Décomposition fonctionnelle du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21


2.2 Diagramme des cas d’utilisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.1 Diagramme de séquence "Authentification" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26


3.2 Diagramme de séquence "Insérer les données par Excel" . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Diagramme de séquence "Saisie manuelle d’une statistique" . . . . . . . . . . . . . . . . . . . . . 28
3.4 Diagramme de séquence "Générer un Reporting" . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.1 PyCharm logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33


4.2 Git logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 GitHub logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Python logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.5 Django logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.6 Logo Javascrit/HTML/CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.7 SQLite Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.8 Architecture MVT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.9 Page d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.10 Page d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.11 Page de connexion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.12 Table des statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.13 Table de la PDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.14 Graphe de la PDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.15 Table des clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.16 Infocentre Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.17 Table du chiffre d’affaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.18 Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.19 PNB par canal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.20 Retraitement CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.21 Table Budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.22 Retraitement CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.23 Table Excel à insérer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.24 Rétrocession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.25 Budget annuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.26 Ajouter client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.27 Ajouter PNB prévisionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

8
Introduction générale
L’outil informatique est devenu primordial dans tous les secteurs pour faciliter et accélérer le travail, ainsi

qu’améliorer la qualité du travail demandé. Le but principal de cet outil est d’alléger le travail manuel répétitif

afin de gagner le temps et ainsi le coût du travail. Ainsi, Avec l’essor des technologies liées au monde des ré-

seaux et de l’Intranet, plusieurs entreprises font évoluer leur système d’information. On assiste à une émergence

d’applications Intranet dynamiques, qui répondent spécifiquement aux besoins de l’entreprise et qui rendent la

tâche plus attrayante et conviviale pour les utilisateurs.

Dans le cadre de sa transformation digitale, aujourd’hui, le groupe CFG est devenu conscient de l’importance

d’investir sur le coté technologique de son système bancaire. A ce point, certes, cette transformation mettra en

place des difficultés et des challenges au niveau hardware et software de l’entreprise.

En 2000, le groupe CFG lance le premier site de bourse en ligne au Maroc, en Afrique et au Moyen-Orient.

Et c’est ainsi qu’il compte automatiser plusieurs processus, et dans ce cadre nous allons développer une applica-

tion web de gestion des statistiques de la Bourse et de CFG, cette dernière aura comme but d’automatisation du

processus d’insertion et gestion des différentes données de statistiques fournies par la Bourse, puis la génération

et visualisation des reportings qui présentent un tableau de bord des réalisations de CFG par rapport au marché

global.
Chapitre 1

Contexte général du projet

Dans ce chapitre on entame le projet dans son cadre général : présentation de l’organisme d’accueil CFG,

du contexte général du projet, de la problématique et des objectifs fixés, et de la démarche de la réalisation.

1.1 Présentation de l’organisme d’accueil

1.1.1 CFG Bank

Fondée en 1992, CFG Banque a été la première institution à exercer les métiers de la banque d’affaires

au Maroc. Reconnue pour l’efficacité de son modèle d’institution, toujours précurseur, CFG Banque met à la

disposition de sa clientèle tout son savoir-faire en matière de gestion patrimoniale à travers les services exclusifs

de sa Banque Privée.

Figure 1.1 – Logo CFG

1.1.2 Historique du Groupe

La Banque CFG a connu depuis sa création plusieurs changements et événements marquants, La figure

ci-dessous regroupe les dates clés dans l’Histoire du groupe :

11
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET

Figure 1.2 – Historique de CFG

1.1.3 Domaines d’expertise

• Finance d’entreprise

Activités

— Fusions Acquisitions.

— Introductions en bourse.

— Placements privés.

— Structuration et levée de financement.

— Privatisations, Concessions....

Réalisations

— Plus de 100 transactions réalisées pour un montant total de 70 Mrd Dh.

— Des références prestigieuses et un positionnement unique auprès des investisseurs étrangers au Maroc.

• Marché des capitaux

Activités

— Intermédiation sur les marchés de taux et actions.

— Analyse et recherche : Départements de recherche dédiés aux marchés obligataire et actions.

— Couverture de change.

12
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET

— Trading monétaire et obligataire.

— Gestion de la trésorerie.

— Placement de dette privée.

— Produits structures.

Réalisations

— Plus de 40 % des volumes échanges par les investisseurs étrangers.

— Un cumul d’échanges de près de 10 Mrd Dh en 2017.

— Une part de marché de près de 18 % auprès des institutionnels marocains.

— 30 notes de recherches publiées par an en français et en anglais.

— L’organisation de plus de 550 meetings one-on-one entre émetteurs et investisseurs.

— Le lancement de l’activité change et couverture de change à terme.

• Gestion de portefeuille

Activités

— Gestion déléguée ou par le biais d’OPCVM pour les institutionnels, la clientèle entreprises et la clientèle

privée.

— Gestion par le biais d’OPCVM pour les particuliers.

Réalisations

— 16 milliards de dirhams d’actifs sous gestion.

— 33 fonds gérés.

— Acteur majeur de l’industrie de la gestion d’actifs au Maroc depuis son lancement en 1995.

— De nombreux trophées nationaux et internationaux en reconnaissance de la qualité de gestion.

• Capital investissement

Activités

— Prise de participation dans des entreprises non cotées à fort potentiel.

— Acquisition et gestion d’actifs immobiliers locatifs.

Réalisations

— 3 structures d’investissements en gestion avec des stratégies d’investissement différenciées.

— Plusieurs fonds spécialisés en cours de structuration.

• Banque universelle

Activités

— Retail Banking.

— Corporate Institutional Banking.

— Private Banking.

Réalisations

— Un réseau d’agences et de guichets automatiques dernière génération.

— Des produits classiques mais innovants.

— Un site internet et une application mobile permettant une gestion et un suivi en toute autonomie.

13
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET

— Un centre de contact téléphonique pour effectuer tout type d’opérations à distance.

1.1.4 Organigramme CFG

Figure 1.3 – Organigramme de CFG

1.2 Présentation du projet

Cette partie a pour objectif de présenter le périmètre du projet, la problématique posée, les objectifs à

aboutir, et la conduite adoptée dans la réalisation du projet.

1.2.1 Périmètre du projet

L’automatisation des processus est devenu le but de chaque entreprise, dans ce cadre la mission de notre

projet serait de réaliser une application web qui va répondre à ce besoin. Notre but principal est de faire la

gestion, ainsi que l’historisation des données de CFG et du marché, puis les manipuler sous forme de tableaux

ou graphes, pour enfin générer un reporting qui va servir comme tableau de bord.

1.2.2 Problématique du projet

Chaque jour, CFG Marchés reçoit un nombre énorme de données soit les statistiques réalisées par le groupe

même ou celles du marché globale. La manipulation, la gestion et le stockage de ces données deviennent pénibles

et prennent énormément du temps, d’où la nécessité d’une application web qui va assurer une fluidité dans l’usage

de ces données, et en générer des reportings.

14
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET

1.2.3 Objectifs du projet

Notre objectif est de créer une application web qui va permettre aux employés du département de :

— Faciliter la gestion et la manipulation des différentes données provenues de la bourse et du système

interne.

— Automatiser le processus d’insertion et du traitement de ces données.

— Garantir une meilleure visibilité des données.

— Réduire l’intervention humaine afin de minimiser le taux d’erreurs dans les résultats.

— Réduire le temps perdu dans la duplication des données et la création des graphes manuellement avec

Excel.

— Avoir des résultats prêts à n’importe quel moment d’être utilisés pour faire les différentes analyses.

— Assurer une meilleure flexibilité des reportings générés.

— Établir une présentation simple et pratique des différents documents pour tous les utilisateurs concernés.

— Historiser toutes les données des années précédentes pour pouvoir les manipuler dans les analyses à

n’importe quel moment .

1.2.4 Conduite du projet

La gestion du projet est l’ensemble de démarches qui assurent le bon déroulement du projet, et organise

l’avancement du travail suivant les besoins et les deadlines auxquels les deux parties se sont mis d’accord.

Il est alors nécessaire de suivre une des méthodes de développement connues. Notre choix a été porté sur la

méthodologie agile de développement SCRUM.

1.2.4.1 Qu’est-ce que SCRUM et quels sont ses avantages

Scrum est un cadre de travail permettant de répondre à des problèmes complexes et changeants, tout en

livrant de manière productive et créative des produits de la plus grande valeur possible.

Scrum permet de travailler en équipe pour faire de l’amélioration continue sur des livraisons itératives

incrémentales de produits afin de satisfaire vos clients.

Scrum est fondé sur la théorie du contrôle empirique de processus et soutenu par 3 piliers fondamentaux :

Transparence

Le fait d’être honnête, de ne rien avoir à cacher, de travailler ensemble au succès du produit/projet en rendant

les aspects importants du processus visibles à tous ceux qui sont responsables des résultats.

Inspection

Le fait de pouvoir s’entraider et inspecter les artefacts Scrum et l’état d’avancement par rapport à un objectif

de Sprint afin de détecter les écarts indésirables.

Adaptation

Le fait de s’adapter aux changements en général, changements de produit, changements de façon de faire. . .

Scrum est :

15
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET

— Un cadre de travail et non une méthode

— Léger

— Simple

— Empirique

— Itératif

Figure 1.4 – Représentation de la méthode agile SCRUM

1.2.4.2 Sprints de notre projet

En ce qui concerne notre projet, ce tableau résumera les itérations effectuées avec l’équipe dès notre début du

stage, en passant par plusieurs étapes commençant par l’étude initiale du projet en arrivant au développement

de la partie automatisation qui sera prête à déployer chez le client après la validation.

Itération Objet
I Étude initiale et compréhension du métier
II Création de la base de données
III Création d’un premier exemplaire de
visualisation des statistiques
IV Génération des différents reportings
V Implantation de l’insertion des données via
des fichiers Excel
VI Développement de la partie de gestion des
clients / opérations
VII Création d’un tableau de bord à l’accueil

Table 1.1 – Tableau des itérations

Ce tableau évoque les étapes essentielles du parcours de notre projet. La première itération a été consacrée

à l’étude du besoin, la compréhension du métier de la bourse et le processus du traitement de ses données,

le choix des outils de développement, ainsi que la mise en place de l’environnement du développement. . . La

16
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET

deuxième itération concerne la conception et la modélisation de notre base de données. La troisième itération

a été réservée à la création des pages et interfaces d’insertion et visualisation des différentes statistiques sous

format de tableau interactif avec des filtres de haute flexibilité . Ensuite, une fois les statistiques en main, nous

avons commencé le développement des différentes interfaces qui permettent de générer les reportings demandés

( PDM , PNB reporting quotidien, CA ... ), en respectant les Canvas utilisés précédemment, et les générer

sous plusieurs formats Excel, PDF, CSV ... Suite à la phase précédente, nous avons entamé le développement

de la partie qui concerne l’insertion des données à partir des fichiers Excel générés par le système interne de

l’organisme. La réalisation d’un infocentre des clients a été indispensable pour assurer une meilleure gestion

et une grande visibilité des données des clients et leurs opérations en utilisant des filtres très interactifs. La

septième itération concerne la création d’un tableau de bord sur la page d’accueil de l’application qui permet

de visualiser les réalisations en terme de chiffres d’affaire par rapport à l’année précédente et au marché global.

17
Chapitre 2

Analyse et Spécification des Besoins

L’analyse est, bien sûr, la première étape du projet car elle regroupe toutes les informations préliminaires

pour évaluer la faisabilité et le potentiel de notre produit. Au début, on analyse en spécifiant les besoins du

projet, et on modélise avec un diagramme de cas d’utilisation général.

2.1 Étude du projet

2.1.1 Introduction à l’analyse

Le but majeur de notre projet est la gestion et le suivis des données avec une application web, une solution

qui permet d’optimiser en terme du temps et de productivité, surtout dans un tel cas où les information sont,

à la fois, précieuses et nombreuses. Ainsi la solution proposée est d’avoir une application qui doit faciliter la

collecte, le traitement, la présentation et la centralisation de l’information. Nous avons travaillé là dessus pour

apporter les bonnes fonctionnalités pour répondre aux besoins de l’entreprise.

2.1.2 Description générale du projet

Le projet est décomposé en trois grandes parties, une première concernant la gestion et la manipulation des

données (les statistiques de bourse et de CFG, les information des clients...), une deuxième partie dans laquelle

l’utilisateur peut saisir manuellement ou insérer automatiquement les données, et une dernière partie pour la

génération des reportings et la création du tableau de bord.

2.1.3 Étude de l’existant

Dans tous les secteurs, et quelle que soit la taille de la structure, la gestion des données est une fonction

clé de l’entreprise. Une politique de gestion de données intelligemment menée et optimisée va permettre à la

société de réduire ses coûts. Encore faut-il utiliser les bons outils. Dans ce domaine, Excel montre rapidement

ses limites.

18
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS

1. Difficulté de partage de l’information :

L’une des limites les plus évidente est la difficulté à partager le contenu avec les autres ; même en lecture sur un

réseau, il faut attendre que l’information soit actualisée par le propriétaire de la feuille pour qu’elle parvienne

aux autres.

2. Fiabilité des données, et traçabilité :

Le partage d’un fichier excel entre les membres d’une équipe implique généralement la création de plusieurs

fichiers parallèles, avec des informations mises à jour différemment des deux côtés, chaque utilisateur ayant la

conviction que sa version est bonne.

3. Manque d’interactivité.

4. Pas d’actualisation automatique :

Un fichier excel de gestion de données n’est pas conçu pour interagir avec le système comptable, vous devez

donc saisir chaque opération ; aucune opération ne doit être négligée et doit être notée systématiquement au

risque d’avoir une information erronée.

5. Une interface pas assez évoluée :

L’utilisation d’excel implique en général une multiplication de colonnes et de feuilles de calcul, avec des difficultés

de lecture et d’actualisation du tableau grandissantes avec le nombre de colonnes et de lignes. Il faut alors jouer

sans cesse avec les filtres, les colonnes masquées, les tableaux croisés dynamiques pour afficher l’information

voulue.

6. Une absence de sécurité :

Il est certes possible d’ajouter un code dans le tableur Excel, mais il est difficile de sécuriser les données qui

circulent.

7. Une absence de vision globale :

De façon plus générale, il est difficile d’avoir avec Excel une vision globale en temps réel, les fichiers sont

partagés entre les différents services. Le temps de récupérer chaque fichier et de les compiler pour avoir une

vision complète, ceux-ci auront déjà évolués, l’information remontée est de ce fait toujours dépassée.

8. Temps de traitement :

La génération d’un simple graphe peut prendre énormément de temps.

2.2 Spécification des besoins

2.2.1 Spécification des acteurs

Vu que les informations gérées par cette application sont des informations confidentielles de l’entreprise,

l’application va avoir en général deux types d’acteurs :

-L’administrateur est la personne chargée de modifier, supprimer ou charger les informations et de gérer leurs

données.

-Les visiteurs vont avoir accès aux résultats des différents traitements effectués par l’administrateur.

19
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS

2.2.2 Besoins fonctionnels

Les besoins fonctionnels sont basiques pour un fonctionnement correcte et une réponse fiable aux besoins

des utilisateurs.

En effet, l’administrateur peut :

— S’authentifier.

— Visualiser le tableau de bord à l’accueil, qui contient toutes les informations nécessaires pour comparer

les réalisations du groupe par rapport aux années précédentes et au marché global.

— Insérer les statistiques du marché et les données des opérations de CFG manuellement ou automatique-

ment à travers des fichiers Excel générés par le système local de l’entreprise.

— Visualiser un ensemble de rapports générés à partir de ces statistiques ( PDM , CA , reporting quotidien,

PNB, Budget mensuel ...) pour n’importe quelle date ou période.

— Pouvoir télécharger ces rapports sous plusieurs formats : PDF, Excel, Csv ...

— Afficher/Modifier/Supprimer les données existantes.

— Créer un infocentre des clients et leurs opérations avec un ensemble de filtres très flexibles.

— Historiser les données et avoir l’accès aux différents traitements effectués, à n’importe quel moment (faire

des comparaisons entre les années, les mois, les périodes...).

Les visiteurs peuvent juste visualiser les données, les différents reporting et le tableau de bord sans avoir accès

à modifier, ajouter ou supprimer.

2.2.3 Les besoins non fonctionnels

Les autres besoins tendent à améliorer la performance et la qualité de l’application pour une utilisation plus

adéquate.

— Fiabilité de l’application : L’application doit fonctionner sans erreur.

— Souplesse et confort d’utilisation : Pour faciliter l’utilisation, notre application doit offrir une inter-

face unifiée, conviviale et ergonomique.

— Gain du temps : L’application doit optimiser les traitements pour avoir un temps de réponse minimale.

— Maintenabilité et sociabilité : La source de l’application doit être compréhensible afin d’assurer son

état évolutif et extensible par rapport aux besoins des utilisateurs. En outre, l’expérience des utilisateurs

doit être meilleurs.

— Sécurité : Notre application doit être très authentique en ce qui concerne les informations confidentielles

de l’entreprise.

2.3 Analyse Fonctionnelle

Suivant à ce qui précède et d’après l’ensemble des documents communiqués par notre encadrante, nous avons

essayé de créer une décomposition hiérarchique des différentes fonctionnalités du projet.

20
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS

Figure 2.1 – Décomposition fonctionnelle du projet

On peut voir clairement les grandes fonctionnalités demandées dans cette application. Par conséquent,

l’application peut être divisée en trois grandes parties : partie saisi et insertion de données, partie gestion, et

partie reporting.

— La partie saisie est la partie dans laquelle l’administrateur peut ajouter des données et insérer des fichiers

(les statistiques). En conséquences, il peut manipuler ces derniers et en faire des opérations bien définies.

— La partie manipulation et gestion de données concernant les statistiques ou celles des clients avec leurs

opérations réalisées.

— La partie reporting est la partie qui concerne le tableaux de bords de l’application. Il doit bien présenter les

informations saisies. En plus, il est préférable d’avoir la possibilité de générer des documents contenants

les informations saisies, soit par des graphes ou des tableaux.

2.4 Diagramme des cas d’utilisations

Le diagramme de cas d’utilisations est un diagramme qui donne une vision générale du système. Nous

l’utiliserons pour identifier les fonctionnalités du système permis à chaque utilisateur et leurs dépendances.

21
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS

Figure 2.2 – Diagramme des cas d’utilisations

Les différentes fonctionnalités mentionnées dans la partie précédentes sont bien représentées par ce dia-

gramme de cas d’utilisations.

En effet, on peut distinguer deux types d’utilisateurs, un administrateur, qui pourra ajouter, modifier ou sup-

primer des données, ainsi que d’autres utilisateurs qui pourront visualiser les résultats des traitements effectués

par l’administrateur.

2.5 Description textuelle des cas d’utilisation

Descprition du cas d’utilisation : Insérer les statistiques automatiquement

22
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS

Cas d’utilisation Insérer les statistiques par Excel automatiquement


Acteurs Administrateur
Pré-condition L’administrateur est authentifié, il a le droit d’ajouter les
données du fichier Excel à l’interface statistiques
Post-condition L’utilisateur affiche la page des statistiques
Scénario L’administrateur choisit le fichier Excel à inclure dans le
système. Le système vérifie la conformité des données. Le
système charge la page en affichant le choix du document
sélectionné.

Table 2.1 – Description textuelle du CU : Insérer les statistiques par Excel automatiquement

Description du cas d’utilisation : Générer les graphes

Cas d’utilisation Générer les différents graphes


Acteurs Visiteurs
Pré-condition Tous les visiteurs ont le droit de générer les graphe (PDM,
reporting), puis les télécharger.
Post-condition L’utilisateur visualise la page qui affiche les graphes.
Scénario Les fichiers des statistiques qui figurent dans les calculs
pour créer les graphes sont déjà ajoutés par l’administra-
teur. L’utilisateur peut donc afficher les tables et donc les
graphes à générer.

Table 2.2 – Description textuelle du CU : Générer les différents graphes

Description du cas d’utilisation : Ajouter une statistique manuellement

Cas d’utilisation Ajouter une statistique manuellement


Acteurs Administrateur
Pré-condition L’administrateur est authentifié, il a le droit d’ajouter une
ou plusieurs statistiques en remplissant un formulaire.
Post-condition La statistique est ajoutée à la table des statistiques.
Scénario L’administrateur s’authentifie avec son compte. Il remplie
le formulaire concernant le chiffre qu’il veut ajouter. Après
vérification de conformité de données, ce dernier est ajouté
à la table des statistiques.

Table 2.3 – Description textuelle du CU : Ajouter une statistique manuellement

23
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS

2.6 Conclusion

Cette phase d’analyse et spécification a permis d’avoir une idée à la fois globale et détaillée sur le projet à

mener pendant la période du stage. L’élaboration du diagramme des cas d’utilisations nous a aidé à regrouper

et préciser les besoins des différents acteurs ce qui a permis de modéliser les processus métier. La partie qui suit

est consacrée à la phase de conception du projet.

24
Chapitre 3

Étude conceptuelle

Ce chapitre définit la conception du projet. Après l’identification des différentes fonctionnalités du système

dans le deuxième chapitre. Le présent chapitre aborde l’étude conceptuelle de la solution proposée.

3.1 Diagramme de séquences

Les diagrammes de séquence sont la représentation graphique des interactions entre les acteurs et le système

selon un ordre chronologique dans la formulation UML.

Les objets dans ce projet l’administrateur, le visiteur, l’interface et la base de données.

3.1.1 Diagramme de séquence "Authentification"

Le diagramme de séquence suivant montre l’interaction de l’administrateur avec notre système lors du scé-

nario « s’authentifier », qui lui permettra d’accéder à l’ensemble de fonctionnalités réservées à l’administrateur.

25
CHAPITRE 3. ÉTUDE CONCEPTUELLE

Figure 3.1 – Diagramme de séquence "Authentification"

3.1.2 Diagramme de séquence "Insérer les données par Excel"

Le diagramme de séquence suivant montre l’interaction de l’administrateur avec notre système lors du

scénario « Insérer les données par Excel », qui permettra d’implémenter la base de données par les nouvelles

opérations à travers un fichier Excel.

26
CHAPITRE 3. ÉTUDE CONCEPTUELLE

Figure 3.2 – Diagramme de séquence "Insérer les données par Excel"

3.1.3 Diagramme de séquence "Saisie manuelle d’une statistique"

Le diagramme de séquence suivant montre l’interaction de l’administrateur avec notre système lors du

scénario « Saisie manuelle d’une statistique ».

27
CHAPITRE 3. ÉTUDE CONCEPTUELLE

Figure 3.3 – Diagramme de séquence "Saisie manuelle d’une statistique"

3.1.4 Diagramme de séquence "Générer un Reporting"

Le diagramme de séquence suivant montre l’interaction de l’utilisateur avec notre système lors du scénario

« Générer un Reporting ».

28
CHAPITRE 3. ÉTUDE CONCEPTUELLE

Figure 3.4 – Diagramme de séquence "Générer un Reporting"

3.2 Diagramme de classes

Les diagrammes de classes sont l’un des types de diagrammes UML les plus utiles, car ils décrivent claire-

ment la structure d’un système particulier en modélisant ses classes, ses attributs, ses opérations et les relations

entre ses objets. Alors que le diagramme de cas d’utilisation montre un système du point de vue des acteurs,

le diagramme de classes en montre la structure interne. Il permet de fournir une représentation abstraite des

objets du système qui vont interagir pour réaliser les cas d’utilisation.

29
CHAPITRE 3. ÉTUDE CONCEPTUELLE

Figure 3.5 – Diagramme de classes

30
CHAPITRE 3. ÉTUDE CONCEPTUELLE

Le tableau ci-dessous représente une description de chacune de ces classes :

Classe Description Attributs


Opération Cette classe modélise les id , date , numeroOrdre,
opérations quotidiennes d’achat quantité , montant , cours,
/ vente des clients de CFG. commission, sens
Client Cette classe présente les id , numclient , nom , type ,
différentes informations d’un location , canal, réseau.
client chez CFG.
Compte Cette classe présente les numcompte
données du compte avec lequel
un client exécute ses opérations.
Valeur Cette classe contient l’ensemble id , libelle , ISIN , ticker
des titres financiers, sur-lesquels
les clients exécutent des
opérations d’achat/vente.
Stats Cette classe représente les id , date , chiffre
données relatives à une
statistique d’une date donnée.
Catégorie Cette classe contient l’ensemble id , nom
des types de marché sur lesquels
une opération peut s’exécuter.
typecatégorie Contient l’ensemble des classes id , nom
d’une catégorie. Exemple : Droit
, Action , Obligation ..
Contrepartie Cette classe contient l’ensemble id , date , sens , chiffre , marché,
des chiffres qu’on retranche du type
chiffre d’affaires dans le cas de
la présence d’un acheteur ou
d’un vendeur dans les
opérations effectuées.
Opération stratégique Cette classe contient l’ensemble id , date , quantité , marché ,
des opérations stratégiques cours, type
exécutés sur le marché global,
qu’on élimine de nos calculs.
Retrocesssion Cette classe contient l’ensemble id , taux
des clients brokers avec leurs
taux de rétrocession.
BudgetAnnuel Cette classe contient l’ensemble id , annee , montant , catClients
des budgets annuels par , type
catégorie de clients.
PNBprevisionnel Cette classe présente le chiffre id , annee , mois , chiffre
d’affaire net prévisionnel pour
chaque mois de l’année.
charge Cette classe contient l’ensemble id , nom , chiffre , type , annee,
des charges de l’entreprise mois,montant, description
qu’elle doit retrancher du chiffre
d’affaires global.

Table 3.1 – Description du diagramme de classes

31
CHAPITRE 3. ÉTUDE CONCEPTUELLE

3.3 Conclusion

Dans ce chapitre nous avons présenté la conception globale de notre système. L’étude technique de l’appli-

cation et la mise en œuvre feront l’objet du chapitre suivant.

32
Chapitre 4

Réalisation

Après avoir définit dans les chapitres précédents les fonctionnalités du système, on va présenter dans ce

chapitre les outils de la réalisation du projet ainsi que le résultat obtenu.

4.1 Environnement de développement

4.1.1 Outils de développement

4.1.1.1 PyCharm

PyCharm est un environnement de développement intégré utilisé pour programmer en Python. Il permet

l’analyse de code et contient un débogueur graphique. Il permet également la gestion des tests unitaires, l’inté-

gration de logiciel de gestion de versions, et supporte le développement web avec Django.

Figure 4.1 – PyCharm logo

4.1.1.2 Git/GitHub

Git est un système de contrôle de version distribué gratuit et open source conçu pour tout gérer, des petits

aux très grands projets, avec rapidité et efficacité. Git permet d’avoir plusieurs branches locales qui peuvent

être entièrement indépendantes les unes des autres. La création, la fusion et la suppression de ces lignes de

développement prennent quelques secondes.

33
CHAPITRE 4. RÉALISATION

Figure 4.2 – Git logo

GitHub est un service web d’hébergement et de gestion de développement de logiciels, utilisant le logiciel

de gestion de versions Git. Le site assure également un contrôle d’accès et des fonctionnalités destinées à la

collaboration comme le suivi des bugs, les demandes de fonctionnalités, la gestion de tâches et un wiki pour

chaque projet.

Figure 4.3 – GitHub logo

4.1.2 Backend

4.1.2.1 Python

Python est un langage de programmation orienté objet interprété. Un programme écrit en Python n’est

opérationnel que si l’interpréteur est disponible sur la machine (bien que des solutions de compilation existent).

En contrepartie, il peut fonctionner dès lors que l’interpréteur est présent, quel que soit le système d’exploitation

de la machine. Sous cet angle, on peut le considérer comme un langage multiplateforme. La syntaxe de Python

est simple et claire, elle respecte les standards du domaine. Python propose les principales fonctionnalités de

la programmation (actions conditionnelles, boucles, programmation modulaire), y compris les mécanismes de

classes (héritage, surcharge des méthodes, polymorphisme). La distribution Python intègre un grand nombre de

librairies. Elles couvrent un large choix de domaines (bases de données, accès réseaux, multimédia, traitements

systèmes, compression, multithreading, ...).

Figure 4.4 – Python logo

34
CHAPITRE 4. RÉALISATION

4.1.2.2 Django

Django est un framework Python de haut niveau, permettant un développement rapide de sites internet,

sécurisés, et maintenables. Créé par des développeurs experimentés, Django prend en charge la plupart des

tracas du développement web, vous pouvez donc vous concentrer sur l’écriture de votre application sans avoir

besoin de réinventer la roue. Il est gratuit, open source, a une communauté active, une bonne documentation,

et plusieurs options pour du support gratuit ou non. Django vous aide à écrire une application qui est :

- Complète : Django suit la philosophie "Piles incluses" et fournit presque tout ce que les développeurs pour-

raient vouloir faire. Comme tout ce dont vous avez besoin est une partie de ce "produit", tout fonctionne

parfaitement ensemble, suivant des principes de conception cohérents.

- Polyvalent : Django peut être (et a été) utilisé pour créer presque tous les genres de sites — du gestionnaire

de données aux wikis, jusqu’aux réseaux sociaux et aux sites d’actualités. Il peut fonctionner avec n’importe

quelle infrastructure côté client, et peut renvoyer des données dans quasiment n’importe quel format (notam-

ment HTML, RSS, JSON, XML, etc).

- Sécurisé : Django aide les développeurs à éviter les erreurs de sécurité classique en fournissant une infrastruc-

ture conçue pour "faire ce qu’il faut" pour protéger les sites internet automatiquement. Par exemple, Django

fournit un moyen sécurisé pour gérer les comptes des utilisateurs ainsi que leurs mots de passe, évitant les

erreurs classiques comme mettre des informations sur la session dans des cookies, où elles sont vulnérables (à la

place les cookies contiennent seulement une clé, et les données sont stockées dans la base de données), ou direc-

tement stocker des mots de passe, au lieu de mot de passe haché. Un mot de passé haché est une valeur dont la

longueur est fixée, créée en envoyant le mot de passe à travers une fonction de hachage cryptographique. Django

peut vérifier si un mot de passe entré est correct en l’envoyant dans la fonction de hachage et en comparant le

retour avec la valeur stockée dans la base de données. De ce fait, la nature unidirectionnelle de la fonction rend

difficile pour un attaquant de retrouver le mot de passe d’origine, même si la valeur hachée est compromise.

Django active par défaut la protection contre beaucoup de vulnérabilités, comme les injections SQL, le cross-site

scripting, le cross-site request forgery et le clickjacking.

- Scalable : Django utilise une architecture composite "shared-nothing" (chaque composant de l’architecture

est indépendant des autres, et peut ainsi être remplacé ou changé si besoin). En ayant des séparations nettes

entres les différentes parties, Django peut se scaler lors d’une hausse de trafic en ajoutant du hardware à tous

les niveaux : serveurs cache, serveurs de base de données, serveurs d’application. Certains des sites les plus

fréquentés ont réussi à scaler Django pour répondre à leur demande (par exemple, Instagram et Disqus pour ne

nommer qu’eux deux).

- Maintenable : Les principes de design du code Django encouragent la création d’un code simple à maintenir

et réutilisable. Il fait notamment appel à la philosophie du Ne Vous Répétez Pas (DRY pour Don’t Repeat

Yourself en anglais), afin d’éviter toute duplication superflue, réduisant la taille de votre code. Django promeut

aussi le regroupement de fonctionnalités reliées entre elles en "applications" réutilisables et, à un plus bas ni-

veau, regroupe des lignes de code dépendantes entre elles en modules (suivant les lignes du motif d’architecture

35
CHAPITRE 4. RÉALISATION

Modèle-vue-contrôleur (MVC)).

- Portable : Django est écrit en Python, qui fonctionne sous diverses plateformes. Cela veut dire que vous ne

serez plus contraint par une plateforme en particulier, et vous pourrez faire fonctionner vos applications sous

autant de versions de Linux, Windows et Mac OS X que vous le souhaitez. De plus, Django est très bien supporté

par plusieurs fournisseurs d’hébergement web, qui offrent souvent des infrastructures et de la documentation

spécifiques pour héberger des sites Django

Figure 4.5 – Django logo

4.1.3 Frontend

HTML est un langage de balises utilisé pour structurer et donner du sens au contenu web. Par exemple :

définir des paragraphes, titres et tables de données ou encore intégrer des images ou des vidéos dans une page.

CSS est un langage de règles de style utilisé pour mettre en forme le contenu HTML. Par exemple : en modifiant

la couleur d’arrière-plan ou les polices, ou en disposant le contenu en plusieurs colonnes.

JavaScript est un langage de programmation qui permet de créer du contenu mis à jour de façon dynamique,

de contrôler le contenu multimédia, d’animer des images, et tout ce à quoi on peut penser. Bon, peut-être pas

tout, mais vous pouvez faire bien des choses avec quelques lignes de JavaScript. Bootstrap est un framework

CSS gratuit et open source destiné au développement web front-end responsive et mobile. C’est un ensemble

qui contient des codes HTML et CSS, et qui permet de mettre en page des composants : des boutons, outils de

navigation et autres éléments interactifs. Il utilise aussi des extensions JavaScript en option. Bootstrap est très

populaire chez les développeurs, et il est le septième projet le plus étoilé sur GitHub.

Figure 4.6 – Logo Javascrit/HTML/CSS

36
CHAPITRE 4. RÉALISATION

4.1.4 Base de données

SQLite est une bibliothèque en langage C qui implémente un moteur de base de données SQL petit, rapide,

autonome, haute fiabilité et complet. Le format de fichier SQLite est stable, multiplateforme. Les fichiers de

base de données SQLite sont couramment utilisés comme conteneurs pour transférer un contenu riche entre les

systèmes et comme format d’archivage à long terme pour les données.

Figure 4.7 – SQLite Logo

4.2 L’architecture de la solution : MVT

Afin de réaliser notre application, on a abordé une architecture qui nous a permis d’organiser notre code.

C’est l’architecture utilisée par Django, elle diffère légèrement de l’architecture MVC classique. En effet, la «

magie » de Django réside dans le fait qu’il gère lui-même la partie contrôleur (gestion des requêtes du client,

des droits sur les actions. . .). Ainsi, nous parlons plutôt de framework utilisant l’architecture MVT : Modèle-

Vue-Template.

Figure 4.8 – Architecture MVT

37
CHAPITRE 4. RÉALISATION

4.2.1 ORM

Avant de voir les spécificités des design patterns MVC et MVT, il convient de s’intéresser aux ORM. C’est

terme anglais signifiant Object Relational Mapping, littéralement Mappage objet-relationnel. Il s’agit d’un

programme informatique qui se place entre la couche de stockage des données dans la base de données relationelle

et la couche applicative. Elle permet une abstraction des données et une représentation sous forme d’objets. Ainsi

dans la conception de notre application, nos informations seront stockées sous forme d’objets informatiques, et

l’ORM s’occupera tout seul de la correspondance avec la base de données.

4.2.2 MVC

Le design pattern Modèle-Vue-Contrôleur ou MVC est un type d’architecture logicielle destiné aux interfaces

graphiques très populaire pour les applications web. Le motif est composé de trois types de modules assurant

différents rôles :

*Le modèle (Model) représente, souvent sous forme d’objet, les données à utiliser par l’application et utilise un

ORM pour l’interaction avec la base de données.

* La vue (View) contient la présentation des données via une interface graphique.

* Un contrôleur (Controller) contient la logique concernant les actions effectuées par l’utilisateur. L’idée impor-

tante dans ce design pattern est de séparer distinctement les tâches effectuées par les différents éléments. Ainsi

la conception et la maintenance sont simplifiées.

4.2.3 MVT

Django utilise l’architecture MVT (modèle-vue-template) qui s’inspire de MVC :

* Le modèle interagit avec une base de données via un ORM. Tous les modèles sont réunis dans un fichier

python models.py.

* La vue reçoit une requête HTTP et renvoie une réponse HTTP convenable (par exemple si la requête est une

interaction avec une base de données, la vue appelle un modèle pour récupérer les items demandés). Les vues

se trouvent dans le fichier views.py

* Le template est un fichier HTML récupéré par la vue et envoyé au visiteur avec les données des modèles.

Les différents composants de l’architecture MVT de Django interagissent pour répondre à la requête d’un

utilisateur. Le contrôleur ne correspond pas au contrôleur du MVC, mais à Django en lui-même qui gère en

interne tout ce qui est liée au choix de la vue à laquelle envoyer la requête HTTP,...

4.3 Présentation des interfaces

Nous présentons dans cette partie une liste de fonctionnalités implémentées et des interfaces graphiques

qu’on a réalisées dans notre projet :

38
CHAPITRE 4. RÉALISATION

4.3.1 Interfaces Visiteur

4.3.1.1 Accueil

Lors de l’accès au site web, une page d’accueil s’affiche. Cette page contient un Dashboard qui permet aux

visiteurs de naviguer facilement le contenu du site web. Il peut donc consulter les activités de l’entreprise. Elle

contient aussi les importants indicateurs graphiques et numériques, met en évidence les chiffres réalisés par

l’entreprise en temps réel en les comparant aux années précédentes et aux chiffres du marché global.

Figure 4.9 – Page d’accueil

39
CHAPITRE 4. RÉALISATION

Figure 4.10 – Page d’accueil

4.3.1.2 Authentification

Pour avoir le droit d’accéder à certaines pages, l’utilisateur doit obligatoirement s’authentifier en remplissant

un formulaire qui contient son adresse e-mail et son mot de passe. Si ces derniers sont corrects, l’utilisateur va

donc accéder à toutes les pages de l’application.

Figure 4.11 – Page de connexion

4.3.1.3 Page des statistiques

L’utilisateur a la possibilité de visualiser la table des statistiques finales. On peut filtrer par année, mois ou

période. Après l’insertion des données par l’administrateur, ces dernières passent par un ensemble de traitements

40
CHAPITRE 4. RÉALISATION

avant d’être afficher.

Figure 4.12 – Table des statistiques

41
CHAPITRE 4. RÉALISATION

4.3.1.4 La PDM

La table et le graphe de la PDM représentent l’ensemble des pourcentages des réalisations du groupe CFG

par rapport au marché global. ils sont générés en se basant des statistiques de CFG et du marché global. On

peut exporter la table en excel.

Pour le graphe, on peut le visualisier sous format PDF, PNG..., (Figure 4.13).

Figure 4.13 – Table de la PDM

42
CHAPITRE 4. RÉALISATION

Figure 4.14 – Graphe de la PDM

4.3.1.5 Liste des clients

L’utilisateur peut visualiser la liste de tous les clients du groupe CFG. On peut les filtrer par nom, numéro,

location, réseau, type ou canal.

Figure 4.15 – Table des clients

43
CHAPITRE 4. RÉALISATION

4.3.1.6 Infocentre Clients

La table infocentre permet une meilleure visibilité des données des clients avec toutes leurs opérations ef-

fectuées. Ce traitement est organisé par un ensemble de filtres qui facilitent la visualisation et le suivi des

comportements de chaque client seul et de l’ensemble aussi.

Figure 4.16 – Infocentre Clients

4.3.1.7 Table du chiffre d’affaires

Après avoir insérer toutes les opérations, ainsi que les informations des clients, la table de CA est générée

automatiquement. La table contient les catégories des clients avec leurs nombres d’opérations réalisées, ainsi

que les différents volumes...

On peut filtrer par année, mois, date, ou période.

44
CHAPITRE 4. RÉALISATION

Figure 4.17 – Table du chiffre d’affaires

4.3.1.8 Reporting

A la fin de chaque journnée, le reporting quotidien doit être généré, il englobe toutes les opérations rélisées

durant la journée, le mois et l’année en cours, y compris les statistiques réalisées par l’entreprise, les graphes

du PDM brute et retraité, et le pourcentage de l’organnisme réalisés dans le marché global. Ce reporting est

généré sous format PDF, il fera l’objet de la présentation générale en fin de journée.

Figure 4.18 – Reporting

45
CHAPITRE 4. RÉALISATION

4.3.1.9 PNB par canal

Le tableau affiche le chiffre d’affaires par canal des clients ainsi que le volume réalisé par le groupe dans une

période.

Figure 4.19 – PNB par canal

4.3.1.10 retraitement de CFG

La page du retraitement englobe l’ensemble des volumes de contrepartie et d’opérations stratégiques qu’on

doit retrancher du chiffre d’affaires finale.

L’utilisateur peut les filtrer par année.

46
CHAPITRE 4. RÉALISATION

Figure 4.20 – Retraitement CFG

4.3.1.11 budget

La table budget englobe le budget annuel et mensuel ainsi que le taux de rélialisation de chaque catégorie

de client.

Figure 4.21 – Table Budget

47
CHAPITRE 4. RÉALISATION

4.3.2 Interfaces Administrateur

4.3.2.1 Ajouter des statistiques manuellement

L’administrateur -après connexion- a le droit d’ajouter une ou plusieurs statistiques manuellement en rem-

plissant un formulaire. Ces statistiques seront affichées dans la table des statistiques soit du marché ou de CFG.

Figure 4.22 – Retraitement CFG

4.3.2.2 Ajouter des statistiques avec Excel

Le nombre énorme des statistiques ajoutés quotidiennement peut dépasser les milles, d’où l’ajout manuel

devient pénible. Nous avons pensé à importer le fichier Excel qui contient toutes ces statistiques et les opérations

de chaque journée. Ces dernières vont être affichées dans la page des statistiques.

48
CHAPITRE 4. RÉALISATION

Figure 4.23 – Table Excel à insérer

4.3.2.3 Ajouter rétrocession

L’administrateur peut ajouter un client considéré broker et ajouter son taux de rétrocession qui va être

retranché dans le calcul du chiffre d’affaires.

Le tableau affiche la liste des Brokers avec le taux de chacun, on peut aussi modifier ou supprimer une ligne

donnée.

Figure 4.24 – Rétrocession

49
CHAPITRE 4. RÉALISATION

4.3.2.4 Ajouter budget annuel

L’administrateur peut ajouter un budget annuel en remplissant les champs d’un formulaire notamment

l’année, le montant, la catégorie et le type des clients concernés.

En cliquent sur enregistrer le budget est automatiquement ajouté au tableau en dessous du formulaire, où on

peut modifier et supprimer une donnée.

Figure 4.25 – Budget annuel

4.3.2.5 Ajouter client

Si un client n’existe pas dans la liste des clients insérée auparavant avec Excel, l’administrateur peut l’ajouter

manuellement en remplissant les informations nécessaires concernant ce client y compris son nom, son numéro,

sa location, son type, son canal et le réseau dont il appartient.

50
CHAPITRE 4. RÉALISATION

Figure 4.26 – Ajouter client

4.3.2.6 Ajouter PNB prévisionnel

L’administrateur peut ajouter le PNB prévisionnel en remplissant les champs d’un formulaire notamment

l’année, le mois, et le chiffre du PNB.

En cliquent sur enregistrer le PNB est automatiquement ajouté au tableau en dessous du formulaire, où on peut

modifier et supprimer une donnée.

Figure 4.27 – Ajouter PNB prévisionnel

51
Conclusion générale
Ce projet de stage de fin de deuxième année a été une bonne expérience professionnelle, il consistait en la mise

en oeuvre d’une application web qui va permettre l’automatisation du processus de gestion, manipulation et

suivie des différentes statistiques résultantes de la Bourse ou celles réalisées par le groupe CFG pour finalement

générer un reporting quotidiennement.

D’abord, nous avons commencé par une présentation de l’organisme d’accueil, ensuite nous avons passé à

faire une présentation générale du projet en définissant ses objectifs. En effet, nous avons développé toutes les

fonctionnalités en se basant sur la méthode agile. Au début de chaque itération, un ou plusieurs besoins sont

définis, puis une conception est faite pour implémenter le résultat à la fin, ensuite nous avons passé à développer

chaque fonctionnalité de notre système en appliquant la méthode agile.

Dans la partie analyse, nous avons fait une description générale du projet, puis nous avons élaboré le diagramme

des cas d’utilisation pour spécifier les besoins de l’application. Pour l’étude conceptuelle, nous avons réalisé les

différents diagrammes qui complètent la solution proposée. Concernant la partie réalisation, nous avons présenté

l’environnement du développement, puis les interfaces de notre application côté administrateur et visiteur. Pour

le projet, nous avons pu réaliser les itérations concernant : la création des tables de manipulation des statistiques,

la génération des reportings, l’implémentation de la partie insertion des données par un fichier Excel, la gestion

des clients avec leurs opérations réalisées avec le groupe CFG, et l’élaboration du tableau de bord résumant

l’ensembles des opérations importantes.

Cependant, pour améliorer notre projet on pense à réaliser un middleware dans le but d’interconnecter notre

application et le système de l’entreprise. Cela va optimiser la performance de l’application ainsi que la fiabilité

des données.

Enfin, ce projet a été l’occasion pour nous de mettre en pratique les savoirs que nous avons acquis au cours de

notre formation. C’était une expérience très enrichissante à la fois sur les volets technique et social.
Bibliographie

[1] <https://www.geeksforgeeks.org>.

[2] <https://stackoverflow.com/>.

[3] <https://docs.djangoproject.com/en/3.2/>.

[4] <https://simpleisbetterthancomplex.com/article/2017/08/19/how-to-render-django-form-manually.

html.

[5] <https://www.qrpinternational.ch/fr/qrp-news/scrum-cest-quoi-definition-scrum/>.

[6] <https://www.casablanca-bourse.com/bourseweb/index.aspx>.

[7] <https://getbootstrap.com/docs/4.1/getting-started/introduction/>.

[8] <https://docs.python.org/3/>.

53

Vous aimerez peut-être aussi