Académique Documents
Professionnel Documents
Culture Documents
Mention : Informatique
Parcours : Génie Logiciel et Base de Données
Membres du jury :
Président : Monsieur RALAIVAO Jean Christian, Assistant d’Enseignement Supérieur et de
Recherche
Age: 22 ans
Téléphone:034 81 818 38
Email : ainanirinarak@gmail.com
Formations et Diplômes
2018-2019 : Première année en Licence professionnel dans le parcours Génie Logiciel et Base
de données à l’Ecole Nationale d’Informatique Fianarantsoa.
Octobre 2022 : Premier prix lors de l’hackathon Frontend Awards 2022 (fa-2022.yasai.tech).
i
Mars 2021 - Mai 2021 : Conception et réalisation d’une application web pour assurer le suivi
des activités judiciaires au sein d’une brigade.
Compétences informatiques
Connaissances linguistiques
Grille d’évaluation : Très Bonne (TB), Bonne (B), Assez Bonne (AB), Passable (P), Niveau
Scolaire (NS).
ii
REMERCIEMENTS
Ce rapport n’aurait pas pu être achevé sans l’aide de certaines personnes. Sur ce, j’adresse
mes sincères remerciements à tous ceux qui m’ont accompagné de loin ou de près à la
réalisation de ce projet, en particulier :
iii
LISTE DES TABLEAUX
iv
LISTE DES FIGURES
v
Figure 32. Installation MongoDB.............................................................................................69
Figure 33. Interface MongoDB Compass.................................................................................69
Figure 34. Installation Visual Studio Code...............................................................................70
Figure 35. Interface Visual Studio Code...................................................................................71
Figure 36. Architecture REST..................................................................................................72
Figure 37. Collection Delivery.................................................................................................73
Figure 38. Collection DeliveryMan..........................................................................................73
Figure 39. app.routing.ts...........................................................................................................74
Figure 40. delivery routing.......................................................................................................74
Figure 41. Configuration environnement..................................................................................75
Figure 42. API routes................................................................................................................75
Figure 43. API: GET livraisons en cours..................................................................................76
Figure 44. API: GET livraisons recommandées.......................................................................76
Figure 45. API: GET demandes de livraisons..........................................................................76
Figure 46. Resolver pour les demandes de livraisons...............................................................77
Figure 47. Fonction hydrateRequestDeliveryList()..................................................................77
Figure 48. Interface d'inscription..............................................................................................78
Figure 49. Interface d'authentification......................................................................................79
Figure 50. Menu Trouver livraison...........................................................................................79
Figure 51. Menu Mes livraisons...............................................................................................80
Figure 52. Mobile view.............................................................................................................80
Figure 53. Interface liste livraisons...........................................................................................81
Figure 54. Interface détails d'une livraison...............................................................................82
Figure 55. Offres de l'application.............................................................................................83
Figure 56. Code : récupération des livraisons recommandées................................................xiii
vi
LISTE DES ABREVIATIONS
vii
SOMMAIRE
CURRICULUM VITAE..............................................................................................................i
REMERCIEMENTS.................................................................................................................iii
SOMMAIRE............................................................................................................................viii
INTRODUCTION GENERALE................................................................................................1
viii
3.3 Moyens nécessaires à la réalisation du projet.............................................................20
3.5 Chronogramme...........................................................................................................21
ix
8.3 Présentation de l’application.......................................................................................78
CONCLUSION...........................................................................................................................x
BIBLIOGRAPHIE.....................................................................................................................xi
WEBOGRAPHIE......................................................................................................................xi
GLOSSAIRE............................................................................................................................xii
ANNEXE.................................................................................................................................xiii
TABLE DE MATIERES.........................................................................................................xiv
RESUME................................................................................................................................xvii
ABSTRACT...........................................................................................................................xvii
x
INTRODUCTION GENERALE
1
PARTIE I : PRESENTATIONS
2
CHAPITRE 1 : PRESENTATION DE L’ECOLE NATIONALE
D’INFORMATIQUE
3
• En initiant les étudiants aux activités de recherche dans les différents domaines
des
Technologies de l’information et de la communication (TIC).
L’implantation de cette Ecole Supérieure de technologie de pointe dans un pays en
développement et dans une Province (ou Faritany) à tissu économique et industriel
faiblement développé ne l’a pourtant pas défavorisée, ni empêchée de former des
spécialistes informaticiens de bon niveau, qui sont recherchés par les entreprises, les
sociétés et les organismes publics et privés sur le marché de l’emploi.
La filière de formation d’Analystes Programmeurs a été mise en place à l’Ecole en 1983,
et a été gelée par la suite en 1996, tandis que la filière de formation d’ingénieurs a été
ouverte à l’Ecole en 1986.
Dans le cadre du Programme de renforcement en l’Enseignement Supérieur
(PRESUP), la filière de formation des Techniciens Supérieurs en Maintenance des
Systèmes des informatiques a été mise en place en 1986 grâce à l’appui matériel et
financier de la Mission Française de coopération auprès de l’Ambassade de France à
Madagascar.
Une formation pour l’obtention de la certification CCNA et / ou NETWORK +
appelée « CISCO Networking Academy » a été créée à l’Ecole en 2002-2003 grâce au
partenariat avec CISCO SYSTEM et l’Ecole Supérieure Polytechnique d’Antananarivo
(ESPA). Cependant, cette formation n’avait pas duré longtemps.
Une formation de troisième cycle a été ouverte à l’Ecole a été ouverte à l’Ecole depuis
l’année 2003 – 2004 grâce à la coopération académique et scientifique entre l’Université de
Fianarantsoa pour le compte de l’ENI et l’Université Paul Sabatier de Toulouse (UPST).
Cette filière avait pour objectif de former certains étudiants à la recherche dans les
différents domaines de l’Informatique, et notamment pour préparer la relève des
Enseignants-Chercheurs qui étaient en poste.
Pendant l’année 2007-2008, la formation en vue de l’obtention du diplôme de Licence
Professionnelle en Informatique a été mise en place à l’ENI avec les deux options suivantes
de formation :
- Génie Logiciel et base de Données.
- Administration des Système et réseaux.
La mise en place à l’Ecole de ces deux options de formation devait répondre au
besoin de basculement vers le système Licence – Master – Doctorat (LMD).
4
Mais la filière de formation des Techniciens Supérieurs en Maintenance des Systèmes
Informatiques a été gelée en 2009.
En vue de surmonter les difficultés de limitation de l’effectif des étudiants
accueillis à l’Ecole, notamment à cause du manque d’infrastructures, un système de «
Formation Hybride » a été mise en place à partir de l’année 2010. Il s’agit en effet d’un
système de formation semi présentielle et à distance avec l’utilisation de la
visioconférence pour la formation à distance. Le système de formation hybride a été ainsi
créé à Fianarantsoa ainsi qu’Université de Toliara.
Conseil d'école
Conseil d'école
Conseil Direction
Collège des enseignants
Scientifique
Conseil Direction
Secrétariat Service
Scientifique Principal Pédagogique
Secrétariat Service
Principal Pédagogique
Parcours : Génie Logiciel et Base de
Service de scolarité
Données
Parcours : Génie Logiciel et Base de
Service de scolarité
Données
Parcours : Administration des
Service de comptabilité
Systèmes et Réseaux
Parcours : Administration des
Service de comptabilité
Systèmes et Réseaux
Service intendance Parcours : Informatique Générale
5
Service intendance Parcours : Informatique Générale
Les activités de formation et de recherche organisées à l’ENI portent sur les domaines
suivants :
• Génie logiciel et Base de Données ;
• Administration des Systèmes et Réseaux ;
• Informatique Générale
• Modélisation informatique et mathématique des Systèmes complexes.
D’une manière plus générale, les programmes des formations sont basés sur
l’informatique de gestion et sur l’informatique des Systèmes et Réseaux. Et les modules
de formation intègrent aussi bien des éléments d’Informatique fondamentale que des
éléments d’Informatique appliquée.
6
Tableau 1.Organisation du système de formation pédagogique de l’Ecole
Le recrutement des étudiants à l’ENI se fait uniquement par voie de concours d’envergure
nationale en première année.
Les offres de formation organisées à l’Ecole ont été validées par la Commission
Nationale d’Habilitation (CNH) auprès du Ministères de l’Enseignement Supérieur et de
la Recherche Scientifique selon les dispositions de l’Arrêté N°31.174/2012-MENS en
date du 05 Décembre 2012.
Au sein de l’ENI, il existe une seule mention (INFORMATIQUE) et trois
parcours :
o Génie logiciel et Base de Données ;
o Administration des Systèmes et Réseaux ;
o Informatique Générale
L’architecture des études à trois niveaux conforment au système Licence- Master-
Doctorat (LMD) permet les comparaisons et les équivalences académiques des diplômes
au niveau international.
• L = Licence (Bac + 3) = L1, L2, L3 = 6 semestres S1 à S6
• M = Master (Bac + 5) = M1, M2 = 4 semestres S7 à S10
Le diplôme de licence est obtenu en 3 années des études après Baccalauréat. Et le
diplôme de Master est obtenu en 2 ans après obtenu du diplôme de LICENCE.
Le MASTER PROFESSIONNEL est un diplôme destiné à la recherche emploi au
terme des études.
Le MASTER RECHERCHE est un diplôme qui remplace l’ancien Diplôme
d’Etudes Approfondies (DEA), et qui permet de s’inscrire directement dans une
Ecole Doctorale.au terme des études.
7
• D = Doctorat (Bac +8)
Le Doctorat est un diplôme qu’on peut obtenir en 3 ans après l’obtention du diplôme
de
MASTER RECHERCHE.
La licence peut avoir une vocation générale ou professionnelle.
Le master peut avoir une vocation professionnelle ou de recherche.
FORMATION EN
Diplôme de Master
Recherche
8
Depuis l’année universitaire 2010-2011, l’ENI s’est mise à organiser des
formations hybrides en informatique dans les différentes régions (Fianarantsoa, Toliara)
en raison de l’insuffisance de la capacité d’accueil des infrastructures logistiques. En
effet, le système de formation hybride semi - présentielle utilise la visioconférence pour la
formation à distance.
Bien qu’il n’existe pas encore au niveau international de reconnaissance écrite et formelle
des diplômes délivrés par l’ENI, les étudiants diplômés de l’Ecole sont plutôt bien
accueillis dans les instituts universitaires étrangères (CANADA, Suisse, France…)
Les stages effectués chaque année par les étudiants mettent l’Ecole en rapport
permanent avec plus de 300 entreprises et organismes publics, semi-publics et privés,
nationaux et internationaux.
L’Ecole dispose ainsi d’un réseau d’entreprises, de sociétés et d’organismes publics et
privés qui sont des partenaires par l’accueil en stage de ses étudiants, et éventuellement
pour le recrutement après l’obtention des diplômes par ces derniers.
Les compétences que l’Ecole cherche à développer chez ses étudiants sont l’adaptabilité,
le sens de la responsabilité, du travail en équipe, le goût de l’expérimentation et
l’innovation.
En effet, la vocation de l’ENI est de former des techniciens supérieurs de niveau
LICENCE et des ingénieurs de type généraliste de niveau MASTER avec des qualités
scientifiques, techniques et humaines reconnues, capables d’évoluer professionnellement
dans des secteurs d’activité variés intégrant l’informatique.
Les stages en milieu professionnel permettent de favoriser une meilleure adéquation entre les
formations à l’Ecole et les besoins évolutifs du marché de l’emploi.
Les principaux débouchés professionnels des diplômés de l’Ecole concernent les
domaines suivants :
✔ L’informatique de gestion d’entreprise
✔ Les technologies de l’information et de la communication (TIC)
✔ La sécurité informatique des réseaux
✔ L’administration des réseaux et des systèmes
✔ Les services bancaires et financiers, notamment le Mobile Banking
✔ Les télécommunications et la téléphonie mobile
✔ Les Big Data
9
✔ Le commerce, la vente et l’achat, le Marketing
✔ L’ingénierie informatique appliquée
✔ L’écologie et le développement durable Parmi les sociétés, entreprises et organismes
partenaires de l’Ecole, on peut citer : ACCENTURE Mauritius, Air Madagascar,
Ambre Associates, Airtel, Agence Universitaire de la Francophonie (AUF), B2B,
Banque Centrale, BFG-SG, BIANCO, BLUELINE, CNaPS, Bureau National de
Gestion des Risques et des Catastrophes (BNGRC), CEDII-Fianarantsoa,
Data Consulting, Central Test, Centre National Antiacridien, CNRE, CHU, CNRIT,
COLAS, Direction Générale des Douanes, DLC, DTS/Moov, FID, FTM, GNOSYS,
IBONIA, INGENOSIA, INSTAT, IOGA, JIRAMA, JOUVE, MADADEV, MAEP,
MEF, MEN, MESupRES, MFB, MIC, MNINTER, Min des postes/Télécommunications
et du Développement Numérique, NEOV MAD, Ny Havana, Madagascar National Parks,
OMNITEC, ORANGE, OTME, PRACCESS, QMM Fort-Dauphin, SMMC, SNEDADRS
Antsirabe, Sénat, Société d’Exploitation du Port de Toamasina (SEPT), SOFTWELL,
Strategy Consulting, TELMA, VIVETEC, Société LAZAN’I BETSILEO, WWF …
L’organisation de stage en entreprise continue non seulement à renforcer la
professionnalisation des formations dispensées, mais elle continue surtout à accroître de
façon exceptionnelle les opportunités d’embauche pour les diplômés de l’Ecole.
10
Les Enseignants-Chercheurs de l’Ecole participent régulièrement aux activités organisées
dans le cadre du Colloque Africain sur la Recherche en Informatique (CARI).
L’ENI avait également signé un accord de coopération interuniversitaire avec l’Institut
de Recherche en Mathématiques et Informatique Appliquées (IREMIA) de l’Université
de la Réunion, l’Université de Rennes 1, l’INSA de Rennes, l’Institut National
Polytechnique de Grenoble (INPG).
A partir du mois de Juillet 2001, l’ENI avait abrité le Centre de Réseau Opérationnel
(Network Operating Center) du point d’accès à Internet de l’Ecole ainsi que de
l’Université de Fianarantsoa. Grâce à ce projet américain qui a été financé par l’USAID
Madagascar, l’ENI de l’Université de Fianarantsoa avait été dotées d’une ligne
spécialisée d’accès permanent au réseau Internet.
L’ENI avait de même noué des relations de coopération avec l’Institut de Recherche pour le
Développement (IRD).
L’objet du projet de coopération avait porté sur la modélisation environnementale du
Corridor forestier de Fandriana jusqu’à Vondrozo (COFAV). Dans ce cadre, un atelier
scientifique international avait été organisé à l’ENI en Septembre 2008. Cet atelier
scientifique avait eu pour thème de modélisation des paysages.
Et dans le cadre du programme scientifique PARRUR, l’IRD avait financé depuis 2010
le projet intitulé « Forêts, Parcs et Pauvreté dans le Sud de Madagascar (FPPSM). Des
étudiants en DEA et des Doctorants issus de l’ENI avaient participé à ce Programme.
Par ailleurs, depuis toujours la même année 2010, l’ENI de Fianarantsoa avait été
sélectionnée pour faire partie des organismes partenaires de l’Université de Savoie dans
le cadre du projet TICEVAL relatif à la certification des compétences en TIC ;
Le projet TICEVAL avait été financé par le Fonds Francophone des Inforoutes pour la
période allant de 2010 à 2012, et il avait eu pour objectif de généraliser la certification
des compétences en Informatique et Internet du type C2i2e et C2imi.
Dans le cadre du projet TICEVAL, une convention de coopération avec l’Université de
Savoie avait été signée par les deux parties concernées. La mise en œuvre de la
Convention de Coopération avait permis d’envoyer des étudiants de l’ENI à Chambéry
pour poursuivre des études supérieures en Informatique.
Enfin et non des moindres, l’ENI avait signé en Septembre 2009 un protocole de
collaboration scientifique avec l’ESIROI – STIM de l’Université de la Réunion.
11
Comme l’ENI constitue une pépinière incubatrice de technologie de pointe, d’emplois et
d’entreprises, elle peut très bien servir d’instrument efficace pour renforcer la croissance
économique du pays, et pour lutter contre la Pauvreté.
De même que le statut de l’Ecole devrait permettre de renforcer la position
concurrentielle de la Grande Ile sir l’orbite de la modélisation grâce au développement
des nouvelles technologies.
Le chômage des jeunes diplômés universitaires fait partie des maux qui gangrènent
Madagascar. L’environnement socio-politique du pays depuis 2008 jusqu’ à ce jour a fait que
le chômage des diplômés est devenu massif par rapport aux établissements de formation
supérieure existants.
Cependant, les formations proposées par l’Ecole permettent aux diplômés d’être
immédiatement opérationnels sur le marché du travail avec la connaissance d’un métier
complet lié à l’informatique aux TIC.
L’Ecole apporte à ses étudiants un savoir-faire et un savoir-être qui les accompagnent tout au
long de leur vie professionnelle. Elle a une vocation professionnalisante.
Les diplômés en LICENCE et en MASTER issus de l’ENI peuvent faire carrière dans
différents secteurs.
L’Ecole bénéficie aujourd’hui de 34 années d’expériences pédagogiques et de
reconnaissance auprès des sociétés, des entreprises et des organismes. C’est une Ecole
Supérieure de référence en matière informatique.
Par conséquent, en raison de fait que l’équipe pédagogique de l’Ecole est
expérimentée, les enseignants-chercheurs et les autres formateurs de l’Ecole sont dotés
d’une grande expérience dans l’enseignement et dans le milieu professionnel.
L’Ecole est fière de collaborer de façon régulière avec un nombre croissant
d’entreprises, de sociétés et d’organismes publics et privés à travers les stages des
étudiants. Les formations dispensées à l’Ecole sont ainsi orientées vers le besoin et les
attentes des entreprises et des sociétés.
L’Ecole fournit à ses étudiants de niveau LICENCE et MASTER des compétences
professionnelles et métiers indispensables pour les intégrer sur le marché du travail.
L’Ecole s’efforce de proposer à ses étudiants une double compétence à la fois
technologique et managériale combinant l’informatique de gestion ainsi que
l’administration des réseaux et systèmes.
12
D’une manière générale, les diplômés de l’ENI n’éprouvent pas de difficultés
particulières à être recrutés au terme de leurs études. Cependant, l’ENI recommande à ses
diplômés de promouvoir l’entrepreneuriat en TIC et de créer des cybercafés, des SSII ou
des bureaux d’études.
Tableau 3. Débouchés professionnels éventuels des diplômés
LICENCE - Analyste
- Programmeur
- Agent de référencement
- Administrateur de réseau
- Développeur d’applications
- Ingénieur réseau
13
- Directeur de projet informatique
14
CHAPITRE 2 : PRESENTATION DE LA SOCIETE RELIA
CONSULTING
Relia visionne de devenir une ESN de référence à Madagascar en vivant dans la valeur
de partage, proximité et excellence au sein de son équipe en interne ainsi que ses clients et
partenaires.
Chez RELIA nous travaillons avec des clients locaux ainsi que des clients partout dans
le monde. Parmi ses visions, relia envisage de divulguer la technologie dans tous les domaines
à Madagascar comme l’Education, la santé, le commerce, le transport, l’hôtellerie et
tourisme... etc.
Si jeune qu’elle soit, née en 2020, RELIA a connu une forte croissance dû à ses succès
auprès des clients et les valeurs partagés en interne avec ses collaborateurs. La société compte
actuellement une trentaine de collaborateurs .
15
Figure 2. Localisation de RELIA
Les individus et les interactions, plus que les outils et les processus ;
16
La collaboration avec le client, plus que la négociation contractuelle ;
Ces principes mettent en avant la valeur du produit délivré au client, ainsi que la relation.
Il existe des animateurs et qui facilitent la communication avec le client, et qui sont
chargés de résoudre les problèmes de compréhension entre les deux entités. De courtes
réunions se font régulièrement pour valider les avancées et communiques la progression du
projet selon des termes acceptables.
Les rôles sont repartis pour assurer le bon fonctionnement de l’entreprise, et des
projets qu’elle reçoit. Il y a les responsables de la compréhension, de l’adhésion et de la mise
en œuvre de la méthode appropriée applicable aux divers projets. Ils veillent à ce que les
principes et les valeurs de la méthode suivie soient respectés. Ils facilitent la communication
au sein de l’équipe et cherchent à maximise la productivité.
Les propriétaires de projets qui portent la vision du produit à réaliser. Ils travaillent en
interaction avec l’équipe de développement qui doit suivre leurs instructions. C’est eux qui
établissent la priorité des fonctionnalités à développer ou à corriger, et qui valident les
fonctionnalités terminées.
Les équipes de développement qui se chargent de réaliser les demandes exprimées par
les propriétaires de projets.
2.5 Organigramme
Bien que RELIA soit encore une entreprise en phase de startup, elle est déjà dotée de
plusieurs équipes de développeurs expérimentés. La figure 3 nous illustre l’organigramme de
RELIA
17
Figure 3. Organigramme de RELIA
18
CHAPITRE 3 : DESCRIPTION DU PROJET
La description du projet implique la définition des objectifs, la description des activités
à réaliser, le choix des techniques à mettre en œuvre ainsi que les résultats attendus.
3.1 Formulation
De nos jours, les services de livraison sont de plus en plus fréquents et demandés par
les consommateurs. Autrefois facultatif, les livraisons sont désormais indispensables pour tout
type de commerce.
A noter que ce projet suit une architecture de microservices, c’est-à-dire que chaque
module du site est conçu indépendamment des autres.
D’autre part, l’application a été conçue depuis un design Mobile First car dans la
logique, les téléphones portables seront plus adaptés pour les livreurs
Afin de mener à terme ce projet, l’existence des différents moyens tels qu’humains,
matériels seront nécessaires. Le tableau 4 nous donne le résumé de ces différentes nécessités.
Moyens Caractéristiques
Humains - Développeur et concepteur : stagiaire
- Chef de projet : encadreur professionnelle
Matériels - Ordinateurs : pour élaborer l’application
- Connexion internet : pour se documenter et faire des
recherches
Logiciels - IDE : Visual Studio (pour développer l’application)
- SGBD : MongoDB (Pour stocker les données et
interagir avec l’utilisateur)
- Web mail : Skype (pour faciliter la communication)
Méthode de conception UML : Pour analyser conceptuellement le projet
et de gestion de projet
informatique
20
3.4 Résultats attendus
3.5 Chronogramme
21
PARTIE II : ANALYSE ET CONCEPTION
22
CHAPITRE 4 : ANALYSE PREALABLE
Dans le monde du numérique actuel, les livraisons sur les sites e-commerce se font
généralement par un personnel du site elle-même. Le client peut choisir l’option de livraison
qui lui convient le mieux lors de sa commande en ligne. Une fois que la commande est passée
et effectuée, le transporteur est chargé de livrer le colis au client à l’adresse indiquée.
Pour les consommateurs sur les sites e-commerce, énumérons leurs moyens d’accès à
ces plateformes.
Moyens matériels :
o Les ordinateurs
o Les téléphones portables
Moyens logiciels :
o Navigateurs internet : Chrome, Firefox, …
Après avoir analysé les organisations actuelles, nous allons définir les points forts et
les points faibles de ce système déjà existant dans le Tableau 6.
23
Tableau 6. Points faibles et points forts du système existant
Pour pallier à ces problèmes, on a envisagé la mise en place d’une application facile à
utiliser, incluant les fonctionnalités basiques des livraisons sur un site e-commerce, et les
autres fonctionnalités pouvant apporter des solutions.
24
spécifiques
- Coût de maintenance élevé
Réalisation d’une - Personnalisable - Mise en œuvre nécessitant
application - Possibilité d’évolution de beaucoup de moyens et de
l’application dans de le temps
temps
La gestion de projet est l’ensemble des activités et des techniques utilisées pour
planifier, organiser, diriger et contrôler les ressources d’un projet afin d’atteindre les objectifs
fixés.
Parmi les différentes méthodes de gestion de projet, les plus populaires et efficaces
selon le projet sont :
Approche traditionnelle :
Cette approche est un modèle de développement de logiciels qui met l’accent sur la
planification détaillée et la prévision à l’avance du processus de développement.
L’approche traditionnelle peut être utile pour les projets de grande envergure et
complexes, mais peut également être rigide et peu adaptable aux changements au fur
et à mesure que le projet avance.
Approche Agile :
Cette approche est un modèle de développement de logiciels qui met l’accent sur la
flexibilité et l’adaptation aux changements, plutôt que sur la planification détaillée à
l’avance. Les équipes qui utilisent la méthode Agile peuvent rapidement réagir aux
changements de direction et aux nouvelles exigences, ce qui peut aider à créer des
logiciels de haute qualité qui répondent aux besoins réels des utilisateurs.
25
Dans la figure 5, nous avons la comparaison entre l’approche traditionnelle et
l’approche Agile. [9]
26
Pour avoir une meilleure flexibilité, nous avons choisi d’utiliser la méthode Agile. Elle
permettra aussi d’adapter rapidement le travail en fonction des changements ou des imprévus.
- Les individus et leurs interactions plutôt que les processus et les outils.
- Le travail produit plutôt que les documents de gestion.
- La collaboration avec les clients plutôt que la négociation contractuelle.
- La réponse aux changements plutôt que le suivi d’un plan.
Dans le tableau 8, nous pouvons voir la comparaison entre quelques méthodes agiles.
Dans le cadre de ce projet, nous avons choisi la méthode SCRUM pour une excellente
communication entre les différents acteurs du projet grâce au Daily Scrum Meeting.
27
b- Présentation de SCRUM
Elle offre une meilleure flexibilité et une plus grande efficacité dans la réalisation du
projet. Elle s’appuie sur des équipes autonomes et collaboratives, des réunions fréquentes et
des objectifs pour chaque sprint.
Une équipe Scrum est généralement composée de trois types de membre : Le Product
Owner qui est responsable de la définition des fonctionnalités et des priorités, le Scrum
Master qui veille à ce que la méthode Scrum soit correctement appliquée, et les développeurs
qui sont chargées de mettre en œuvre les fonctionnalités définies par le product owner.
28
- Le carnet de produit ou Product Backlog est la liste des éléments, des fonctionnalités
ou des tâches importants du projet.
29
Tableau 9. Comparaison de la méthode 2TUP et MERISE
Pour tout projet informatique, la conception d’un système de formation nécessite une
méthode de conception, dans notre cas, nous avons choisi UML, qui est un langage de
modélisation orientée objet.
30
4.3.3.3 Choix du langage de programmation
Pour nous aider avec le choix de langage de programmation, le tableau 10 nous montre
une comparaison de quelques langages de programmation orienté web.
31
- Moins adapté pour le
développement d’application en
temps réel.
Nous avons opté pour le framework Angular car Angular est un framework très
complet et sa structure MVC est plus facile à gérer.
32
Tableau 12. Comparaison entre ExpressJs et NestJs
Pour ce projet, nous avons opté pour NestJs pour sa structure plus facile à comprendre
et mieux orgarnisée.
33
PhpMyAdmin)
- Bonnes performances et efficace
pour gérer de grandes quantités de
données
MongoDB - Utilise une base de données - Peut être difficile à comprendre si
NoSQL, qui rend idéale pour les on a aucune expérience en NoSQL.
données à schéma flexible - Nécessite une maintenance
- Offre une grande flexibilité dans constante comme l’optimisation des
la modélisation des données index et la gestion de la mémoire
Pour ce projet, on a utilisé MongoDB pour avoir des données flexibles, car les données
et les collections pourront changer au fil du temps dû à cette architecture micro service. De
plus, l’intégration de MongoDB dans NestJS est assez simple et facile à utiliser.
34
CHAPITRE 5 : ANALYSE CONCEPTUELLE
L’analyse conceptuelle portera sur l’identification des différents utilisateurs, la
description des informations et des fichiers dont ses utilisateurs auront besoin, mais aussi une
nouvelle circulation d’informations favorables pour le nouveau système.
35
transport
dman_insurance_file_path Chemin assurance AN 50
dman_business_licence_file_path Chemin licence AN 50
commerciale
dman_national_id_card_file_path Chemin CIN AN 50
dman_register_status Status d’inscription AN 12
delivery_id Identifiant livraison AN 24
delivery_begin_location Localistion de AN 50
départ
delivery_ending_location Localisation AN 50
d’arrivée
delivery_man_response Réponse du livreur AN 12
delivery_status_filter Status de la AN 12
livraison
delivery_date Date de livraison Date 10 dd/MM/yyyy
delivery_is_fragile Livraison fragile A 12
delivery_publish_date Date de publication Date 10 dd/MM/yyyy
seller_id Identifiant du AN 24
vendeur
user_id Indentifiant de AN 24
l’utilisateur
user_company Compagnie de AN 50
l’utilisateur
user_name Nom de l’utilisateur AN 50
user_email Email de AN 50
l’utilisateur
user_family_name Nom de famille de AN 50
l’utilisateur
user_phone_number Numéro telephone AN 24
de l’utilisateur
user_region Region de A 40
l’utilisateur
user_phone_number_verified Vérification numéro A 12
36
de téléphone
user_email_verified Vérifaation email A 12
user_gender Genre de A 12
l’utilisateur
user_birthdate Date de naissance Date 10 dd/MM/yyyy
de l’utilisateur
AN: Alphanumérique
N: Numérique
A: Alphabétique
Une règle de gestion est la traduction conceptuelle des objectifs choisis et des
contraintes acceptées par l’entreprise. Elle est plus particulièrement liée aux traitements (règle
d’action) ou aux données (règle de calcul) :
RG5 : Un permis n’appartient qu’à un et un seul livreur, et un livreur n’a qu’un seul permis.
RG7 : Une livraison ne peut être effectuée que par un seul livreur
37
5.3 Représentation et spécification des besoins
UML, dans sa dernière version, propose treize diagrammes qui peuvent être utilisés
dans la description d’un système. Ces diagrammes sont regroupés dans deux grands
ensembles.
- Les diagrammes structurels : Ces diagrammes, au nombre de six, ont vocation à représenter
l’aspect statique d’un système (classes, objets, composants…).
Diagramme de classe : Ce diagramme représente la description statique du système en
intégrant dans chaque classe la partie dédiée aux données et celle consacrée aux traitements.
C’est le diagramme pivot de l’ensemble de la modélisation d’un système.
Diagramme d’objet : Le diagramme d’objet permet la représentation d’instances des classes et
des liens entre instances.
Diagramme de composant : Ce diagramme représente les différents constituants du logiciel au
niveau de l’implémentation d’un système.
Diagramme de déploiement : Ce diagramme décrit l’architecture technique d’un système avec
une vue centrée sur la répartition des composants dans la configuration d’exploitation.
Diagramme de paquetage : Ce diagramme donne une vue d’ensemble du système structuré en
paquetage. Chaque paquetage représente un ensemble homogène d’éléments du système
(classes, composants…).
Diagramme de structure composite : Ce diagramme permet de décrire la structure interne d’un
ensemble complexe composé par exemple de classes ou d’objets et de composants techniques.
Ce diagramme met aussi l’accent sur les liens entre les sous-ensembles qui collaborent.
38
- Les diagrammes de comportement : Ces diagrammes représentent la partie dynamique d’un
système réagissant aux événements et permettant de produire les résultats attendus par les
utilisateurs. Sept diagrammes sont proposés par UML :
Diagramme des cas d’utilisation : Ce diagramme est destiné à représenter les besoins des
utilisateurs par rapport au système. Il constitue un des diagrammes les plus structurants dans
l’analyse d’un système.
Diagramme d’état-transition (machine d’état) : Ce diagramme montre les différents états des
objets en réaction aux événements.
Diagramme d’activités : Ce diagramme donne une vision des enchaînements des activités
propres à une opération ou à un cas d’utilisation. Il permet aussi de représenter les flots de
contrôle et les flots de données.
Diagramme de séquence : Ce diagramme permet de décrire les scénarios de chaque cas
d’utilisation en mettant l’accent sur la chronologie des opérations en interaction avec les
objets.
Diagramme de communication (anciennement appelé collaboration) : Ce diagramme est une
autre représentation des scénarios des cas d’utilisation qui met plus l’accent sur les objets et
les messages échangés.
Diagramme global d’interaction : Ce diagramme fournit une vue générale des interactions
décrites dans le diagramme de séquence et des flots de contrôle décrits dans le diagramme
d’activités.
Diagramme de temps : Ce diagramme permet de représenter les états et les interactions
d’objets dans un contexte où le temps a une forte influence sur le comportement du système à
gérer.
Un acteur représente un rôle joué par une entité externe (utilisateur humain, dispositif
matériel ou autre système) qui interagit directement avec le système étudié.
Tous les éléments extérieurs qui stimulent le système et tous les éléments extérieurs qui sont
utilisés par le système sont représentés par des acteurs. Dans le cas d'acteurs non-humains il
est possible de définir une « Interface » qui représente les opérations offertes par cet acteur.
39
Dans notre projet on peut discerner deux (2) principaux acteurs : le livreur et
l’utilisateur, et deux (2) acteurs secondaires : l’administrateur et le fournisseur d’identité.
Dans le tableau 15, nous avons des extraits des messages échangés entre un acteur et le
système en tenant compte de l’action qu’un utilisateur peut faire dépend du droit qu’il
possède.
Acteurs Messages
Emis Reçu
Simple utilisateur Demande de consulter les Interface avec les différents
offres offres affichés
Demande d’inscription en Page de création d’un
tant que livreur compte livreur
Livreur Demande de voir les Page avec la liste des
livraisons recommandées livraisons proches
Demande de voir les Page affichant les livraisons
livraisons en cours en cours
Demande de voir les Page affichant les livraisons
livraisons terminées terminées
Demande de voir les Page affichant les offres de
40
demandes de livraisons livraisons par les acheteurs
Demande de consulter les Page affichant tous les
détails d’une livraison détails d’une livraison
Demande d’accepter une Bouton permettant
livraison d’accepter une livraison
Demande de modifier son Interface permettant de
trajet modifier le trajet
Administrateur Demande d’affichage d’une Interface permettant de voir
inscription en cours les informations de
l’inscription
Fournisseur d’identité Demande de vérification du Interface de connexion
compte utilisateur
- Acteur : entité externe qui agit sur le système. Le terme acteur ne désigne pas
seulement les utilisateurs humains mais également les autres systèmes. Les acteurs
sont des classificateurs qui représentent des rôles au travers d'une certaine utilisation
(cas) et non pas des personnes physiques. Ce sont des acteurs types.
41
La figure 8 illustre le diagramme des cas d’utilisations élaboré lors de la conception.
42
La priorité des cas d’utilisation est conforme aux besoins de l’utilisateur et de la
fonctionnalité de l’application. Ce qui veut dire que ceux qui ont le plus de priorité
garantissent le fonctionnement minimal du logiciel.
Le diagramme de cas d'utilisation décrit les grandes fonctions d'un système du point de
vue des acteurs, mais n'expose pas de façon détaillée le dialogue entre les acteurs et les cas
d'utilisation. Il est recommandé de rédiger une description textuelle, car c'est une forme
souple qui convient dans bien des situations [3]. Ces définitions servent à fixer les idées lors
de l’identification des cas d’utilisation et n’ont aucun caractère exhaustif.
Nous allons établir la description textuelle des cas d’utilisation « s’inscrire en tant que
livreur » et « voir détails livraison ».
43
a- Cas d’utilisation « S’inscrire en tant que livreur »
Préconditions :
Postconditions :
Scénario nominal :
Scénario alternatif :
Préconditions :
44
- L’utilisateur s’est authentifié
Postconditions : aucun
Scénario nominal :
Scénario alternatif :
Il fait ressortir :
- Les acteurs : représentés par un bonhomme et une ligne verticale (ligne de vie).
- Les objets : représentés par un rectangle et une ligne verticale (ligne de vie de l’objet).
- Les messages : traduisent les interactions (échange d’informations) entre objets. Ils
sont représentés par des flèches orientées de l’émetteur au récepteur. Deux types de
messages peuvent être distingués [2]:
Message synchrone : Dans ce cas l’émetteur reste en attente de la réponse à
son message avant de poursuivre ses actions. La flèche avec extrémité pleine
symbolise ce type de message. Le message retour peut ne pas être représenté
car il est inclus dans la fin d’exécution de l’opération de l’objet destinataire du
message.
45
Message asynchrone : Dans ce cas, l’émetteur n’attend pas la réponse à son
message, il poursuit l’exécution de ses opérations. C’est une flèche avec une
extrémité non pleine qui symbolise ce type de message.
Le fonctionnement d’un cas d’utilisation est notamment décrit sous la forme d’une
séquence de message échangé entre les acteurs et le système. Le système est vu de l’extérieur
(par les acteurs) sans préjuger de comment il est réalisé. On obtient donc le diagramme de
séquence système.
46
Figure 9. Diagramme de séquence : « S’authentifier »
47
La figure 10 illustre le diagramme de séquence pour le cas d’utilisation « S’inscrire en
tant que livreur ».
48
La figure 11 représente le diagramme pour le cas d’utilisation « Afficher liste des
livraisons », « Voir la liste des livraisons recommandées », « Voir la liste de livraisons en
cours » et « Voir les demandes de livraisons ».
49
La figure 12 illustre le cas d’utilisation « Afficher les détails d’une livraison ».
50
La figure 13 nous le diagramme de séquence du cas d’utilisation « Confirmer une
livraison ».
51
La figure 14 représente le diagramme de séquence du cas d’utilisation « Modifier
trajet ».
52
5.4 Spécifications des besoins techniques
- Valide : aptitude d’un logiciel à réaliser exactement les tâches définies par les
entrepreneurs.
- Conviviale : le logiciel doit être facile à utiliser comme la simplicité des interfaces.
- Efficace : avec le nombre important des actions fournis, la durée d’exécution des
traitements doit être rapide.
- Fiable : aptitude du logiciel à assurer de manière continue la possibilité de consulter le
service attendu comme la disponibilité de téléchargement de la table de capitalisation
pour voir suivre le cours des actions de l’entreprise.
- Portable : facilité à être porté sur de nouveaux environnements matériels et logiciels
comme son fonctionnement sous différents systèmes.
- Extensible : facilité d’adaptation du logiciel aux changements de spécifications.
- Intègre : l’application doit être apte à protéger ses différents composants par le biais de
l’authentification et la gestion de droit des utilisateurs.
- Facile à entretenir : codes claires et lisibles facilitant tout changement et amélioration.
La modélisation des besoins par des cas d'utilisation s'apparente à une analyse
fonctionnelle classique. L'élaboration du modèle des classes du domaine permet d'opérer une
transition vers une véritable modélisation objet. L'analyse du domaine est une étape
totalement dissociée de l'analyse des besoins. Elle peut être menée avant, en parallèle ou après
cette dernière. [7].
53
La figure 15 illustre le modèle de domaine du système.
54
CHAPITRE 6 : CONCEPTION DETAILLEE
Dans ce chapitre, nous allons voir l’architecture logicielle utilisées, et les étapes de
procédé du système.
Angular est un Framework Javascript basé une structure MVC du côté client. Il
apporte au client les services utilisés habituellement côté serveur, chaque page se retrouve
ainsi décomposée sous forme d’un modèle, d’une vue et d’un contrôleur. Le contrôleur et le
modèle sont représentés sous forme de classe, et la vue en fichier HTML.
Notre application a donc une architecture MVC dont les couches sont les suivants :
Le modèle :
Selon Angular, le modèle représente les données de l’application et les règles de
validation associées grâce au TypeScript.
La Vue :
C’est ce que verra l’utilisateur, générée à partir d’un template qui est un fichier HTML
enrichi de certains attributs et fonction propres à Angular, et du SCSS pour embellir
les pages.
Le contrôleur :
Le contrôleur contient toute la logique de l’application et interagit avec le modèle pour
obtenir et mettre à jour les données. Il détermine également comment la vue doit être
mise à jour en fonction des actions de l’utilisateur.
55
Les données sont récupérées auprès du serveur via des requêtes http puis sont
56
6.2 Diagramme de séquence de conception pour chaque cas d’utilisation
58
59
Figure 19. Diagramme de séquence de conception: « Consulter liste des livraisons »
60
La figure 21 représente le diagramme de séquence de conception du cas
d’utilisation « Modifier trajet »
61
6.3 Diagramme de classe de conception pour chaque cas d’utilisation
Figure 22. Diagramme de classe de conception : « S’inscrire en tant que livreur »
62
Figure 23. Diagramme de classe de conception : « S'authentifier »
63
d- Diagramme de classe de conception du cas d’utilisation : « Voir détails livraison »
La figure 25 nous montre le diagramme de classe de conception du cas d’utilisation
Voir détails livraison.
64
f- Diagramme de classe de conception du cas d’utilisation : « Modifier trajet »
La figure 27 nous montre le diagramme de classe de conception du cas d’utilisation :
Modifier trajet
65
La figure 28 indique le diagramme de classe de conception globale.
66
6.5 Diagramme de paquetage
67
Figure 30. Diagramme de déploiement
68
CHAPITRE 7 : Mise en place de l’environnement de
développement
7.1 Installation et configuration des outils
69
7.1.2 MongoDB et MongoDB Compass
Comme déjà mentionné, pour la base de données, Mongo DB est la plus optimale dû à
sa flexibilité. En effet, il s’agit d’un système de gestion de base de données NoSQL qui
permet de gérer de grandes quantités de données non structurées.
70
Figure 33. Interface MongoDB Compass
Comme IDE, on a utilisé VS Code qui est un éditeur de code développé par Microsoft,
disponible sur tous les systèmes d’exploitation. Pour son installation, il faut s’assurer d’avoir
au moins un espace libre de 250mo. Ensuite, il suffit de télécharger le ficher exécutable sur le
site officiel de Visual Studio Code.
71
Figure 32. Installation Visual Studio Code
Figure 34. Installation Visual Studio Code
Dans une architecture REST, les ressources sont identifiées par des URI (Uniform
Resource Identifier) et sont manipulées en utilisant des verbes HTTP tels que GET, POST,
PUT et DELETE. Chaque ressource peut avoir différentes représentations, comme du
HTML , du XML, ou du JSON . Dans notre cas, on utilisera du JSON.
73
CHAPITRE 8 : DEVELOPPEMENT DE L’APPLICATION
Une base de données permet de mettre des données à la disposition d'utilisateurs pour
une consultation, une saisie ou bien une mise à jour, tout en s'assurant des droits accordés à
ces derniers. Cela est d'autant plus utile que les données informatiques sont de plus en plus
nombreuses.
74
8.2 Codage de l’application
75
Dans la figure 42, nous avons les chemins pour les différents API .
La figure 43, 44, 45 nous montre l’appel des API via le service api.service.ts
Figure44.
Figure 45.API:
API:GET
GETlivraisons
demandesrecommandées
de livraisons
76
Ensuite, la figure 46 nous montrent l’implémentation des resolvers. Il s’agit d’un
service qui permet de résoudre les données nécessaires avant que la route ne soit chargée.
La figure 47
77
8.3 Présentation de l’application
Tout utilisateur doit tout d’abord s’inscrire avant de pouvoir accéder au module livrer.
78
La figure 49 nous montre la page d’authentification.
79
Figure 51. Menu Mes livraisons
80
Après son authentification, le livreur pourra accéder à la liste des livraisons comme
présentée sur la figure 53
81
Figure 54. Interface détails d'une livraison
82
CONCLUSION
L’application offre une opportunité de devenir livreur à plein temps, ou à temps partiel
selon le choix de l’utilisateur. Il pourra également voir toutes les livraisons aux alentours. De
plus, l’application a été réalisée depuis un design Mobile First, ce qui facilitera le travail des
livreurs car ils pourront voir les livraisons depuis leur téléphone avec une interface simple et
facile à utiliser.
x
BIBLIOGRAPHIE
[1] Joseph Gabay- David Gabay, UML 2 Analyse et Conception, France, DUNOD, 2008,
226 pages.
WEBOGRAPHIE
[7] https://laurent-audibert.developpez.com/Cours-UML/?page=mise-en-oeuvre-uml#L9-
3-1UML%202, consulté en Janvier 2023
[8] https://docwiki.embarcadero.com/RADStudio/Sydney/fr/D
%C3%A9finition_des_diagrammes_de_s%C3%A9quence_UML_1.5, consulté en Janvier
2023
[9] https://www.cegos.fr/ressources/mag/projet/agilite/approche-traditionnelle-agilite-
differences, consulté en Janvier 2023
[10] https://www.tuleap.org/fr/agile/comprendre-methode-agile-scrum-10-minutes,
consulté en Janvier 2023
xi
GLOSSAIRE
Méthode : Manière de faire une chose en suivant certains principes et avec un certain ordre.
Module :
NoSQL : Base de données non relationnelles. Elle offre des modèles de données plus
flexibles et plus évolutives.
Serveur : Ordinateur qui met ses ressources à la disposition d’autres ordinateurs sous la
forme de services
Trajet : Le fait de parcourir un certain espace, pour aller d'un lieu à un autre
xii
ANNEXE
Voici un extrait de code pour récupérer les livraisons dans un rayon circulaire de 1km.
xiii
TABLE DES MATIERES
CURRICULUM VITAE..............................................................................................................i
REMERCIEMENTS.................................................................................................................iii
SOMMAIRE............................................................................................................................viii
INTRODUCTION GENERALE................................................................................................1
2.5 Organigramme............................................................................................................17
xiv
3.1 Formulation.................................................................................................................19
3.5 Chronogramme...........................................................................................................21
xv
CHAPITRE 6 : CONCEPTION DETAILLEE.....................................................................54
CONCLUSION...........................................................................................................................x
BIBLIOGRAPHIE.....................................................................................................................xi
WEBOGRAPHIE......................................................................................................................xi
GLOSSAIRE............................................................................................................................xii
ANNEXE.................................................................................................................................xiii
TABLE DE MATIERES.........................................................................................................xiv
RESUME................................................................................................................................xvii
ABSTRACT...........................................................................................................................xvii
xvi
RESUME
Ce projet permettra aux vendeurs d’offrir un service de livraison pour leurs produits et
aux livreurs de pouvoir effectuer ces livraisons.
ABSTRACT
The goal of this internship at ESN RELIA Consulting is to set up a delivery module
for the super application AZPlus.
This project will allow sellers to offer a delivery service for their in-sale products and
for carriers to be able to make these deliveries.
Therefore, the was made using the UML modeling language; the Backend was
developed with Nodejs, more specifically with NestJs framework, with MongoDB; and
Frontend was designed with Angular using the Visual Studio Code IDE.
xvii