Académique Documents
Professionnel Documents
Culture Documents
Systèmes - RABAT
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
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
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
5
Table des matières
Remerciements 1
Résumé 2
Abstract 3
Introduction générale 10
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
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
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
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
Dans ce chapitre on entame le projet dans son cadre général : présentation de l’organisme d’accueil CFG,
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.
La Banque CFG a connu depuis sa création plusieurs changements et événements marquants, La figure
11
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
• Finance d’entreprise
Activités
— Fusions Acquisitions.
— Introductions en bourse.
— Placements privés.
— Privatisations, Concessions....
Réalisations
— Des références prestigieuses et un positionnement unique auprès des investisseurs étrangers au Maroc.
Activités
— Couverture de change.
12
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
— Gestion de la trésorerie.
— Produits structures.
Réalisations
• 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.
Réalisations
— 33 fonds gérés.
— Acteur majeur de l’industrie de la gestion d’actifs au Maroc depuis son lancement en 1995.
• Capital investissement
Activités
Réalisations
• Banque universelle
Activités
— Retail Banking.
— Private Banking.
Réalisations
— 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
Cette partie a pour objectif de présenter le périmètre du projet, la problématique posée, les objectifs à
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.
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
14
CHAPITRE 1. CONTEXTE GÉNÉRAL DU PROJET
Notre objectif est de créer une application web qui va permettre aux employés du département de :
interne.
— 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.
— É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 à
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
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
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
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
— Léger
— Simple
— Empirique
— Itératif
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
Ce tableau évoque les étapes essentielles du parcours de notre projet. La première itération a été consacrée
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
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
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
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
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
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.
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
3. Manque d’interactivité.
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
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.
Il est certes possible d’ajouter un code dans le tableur Excel, mais il est difficile de sécuriser les données qui
circulent.
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 :
Vu que les informations gérées par cette application sont des informations confidentielles de l’entreprise,
-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
Les besoins fonctionnels sont basiques pour un fonctionnement correcte et une réponse fiable aux besoins
des utilisateurs.
— 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,
— Pouvoir télécharger ces rapports sous plusieurs formats : PDF, Excel, Csv ...
— 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
Les visiteurs peuvent juste visualiser les données, les différents reporting et le tableau de bord sans avoir accès
Les autres besoins tendent à améliorer la performance et la qualité de l’application pour une utilisation plus
adéquate.
— Souplesse et confort d’utilisation : Pour faciliter l’utilisation, notre application doit offrir une inter-
— 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
— Sécurité : Notre application doit être très authentique en ce qui concerne les informations confidentielles
de l’entreprise.
Suivant à ce qui précède et d’après l’ensemble des documents communiqués par notre encadrante, nous avons
20
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS
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
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
Les différentes fonctionnalités mentionnées dans la partie précédentes sont bien représentées par ce dia-
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.
22
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS
Table 2.1 – Description textuelle du CU : Insérer les statistiques par Excel automatiquement
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
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.
Les diagrammes de séquence sont la représentation graphique des interactions entre les acteurs et le système
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
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
26
CHAPITRE 3. ÉTUDE CONCEPTUELLE
Le diagramme de séquence suivant montre l’interaction de l’administrateur avec notre système lors du
27
CHAPITRE 3. ÉTUDE CONCEPTUELLE
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
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
30
CHAPITRE 3. ÉTUDE CONCEPTUELLE
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-
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
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é-
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
33
CHAPITRE 4. RÉALISATION
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.
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
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
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
- 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-
- 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
- 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
- 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
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
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.
36
CHAPITRE 4. RÉALISATION
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
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.
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
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
* 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
4.2.3 MVT
* 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
* 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,...
Nous présentons dans cette partie une liste de fonctionnalités implémentées et des interfaces graphiques
38
CHAPITRE 4. RÉALISATION
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.
39
CHAPITRE 4. RÉALISATION
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
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
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
Pour le graphe, on peut le visualisier sous format PDF, PNG..., (Figure 4.13).
42
CHAPITRE 4. RÉALISATION
L’utilisateur peut visualiser la liste de tous les clients du groupe CFG. On peut les filtrer par nom, numéro,
43
CHAPITRE 4. RÉALISATION
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
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
44
CHAPITRE 4. RÉALISATION
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.
45
CHAPITRE 4. RÉALISATION
Le tableau affiche le chiffre d’affaires par canal des clients ainsi que le volume réalisé par le groupe dans une
période.
La page du retraitement englobe l’ensemble des volumes de contrepartie et d’opérations stratégiques qu’on
46
CHAPITRE 4. RÉALISATION
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.
47
CHAPITRE 4. RÉALISATION
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.
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
L’administrateur peut ajouter un client considéré broker et ajouter son taux de rétrocession qui va être
Le tableau affiche la liste des Brokers avec le taux de chacun, on peut aussi modifier ou supprimer une ligne
donnée.
49
CHAPITRE 4. RÉALISATION
L’administrateur peut ajouter un budget annuel en remplissant les champs d’un formulaire notamment
En cliquent sur enregistrer le budget est automatiquement ajouté au tableau en dessous du formulaire, où on
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,
50
CHAPITRE 4. RÉALISATION
L’administrateur peut ajouter le PNB prévisionnel en remplissant les champs d’un formulaire notamment
En cliquent sur enregistrer le PNB est automatiquement ajouté au tableau en dessous du formulaire, où on peut
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
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
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
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