Académique Documents
Professionnel Documents
Culture Documents
UNIVERSITÉ D’ANTANANARIVO
----------------------
ÉCOLE SUPÉRIEURE POLYTECHNIQUE
-----------------------
MENTION TÉLÉCOMMUNICATION
MÉMOIRE
en vue de l’obtention
du DIPLÔME de LICENCE
Domaine : Sciences de l’Ingénieur
Mention : Télécommunication
Parcours : Système et Traitement de l’Informations (STI)
Président :
M. ANDRIAMIASY Zidora
Examinateur :
M. RATSIMBAZAFY Tsiory
Directeur de mémoire :
J'exprime mes vifs remerciements s’adressent également à tous les enseignants et personnels de
l’Ecole Supérieure Polytechnique d’Antananarivo en général et à ceux du Département
Télécommunication en particulier, sans leurs efforts notre formation n’aurait pas pu atteindre ce
stade et à tous les membres de ma famille pour leur soutien bienveillant et leur encouragement, pour
ce mémoire sans oublier tous mes collègues et toutes les personnes qui m’ont aidé de près ou de
loin dans l’accomplissement du présent travail.
i
TABLE DE MATIERES
REMERCIEMENTS ........................................................................................................................ i
NOTATIONS .................................................................................................................................. vi
ii
1.4.12 Les étapes de la création d’une application web ..................................................... 16
iii
2.6.2 phpMyAdmin ............................................................................................................ 28
iv
4.3 Présentation de l’étude de cas : l’impact sur la sécurité publique ............................. 53
ANNEXES ...................................................................................................................................... 58
A1.3.1Définition ..................................................................................................................... 58
BIBLIOGRAPHIE ........................................................................................................................ 61
v
NOTATIONS
Abreviations
CAPTCHA Completely Automated Public Turing test to tell Computers and Humans Apart
E-R Entité-Relation
ID Identifiant
IP Internet Protocol
JS JavaScript
MVC Model-View-Controller
vi
PHP Hypertext Preprocessor
vii
INTRODUCTION GENERALE
L'insécurité, sous toutes ses formes, est une réalité incontournable de notre société contemporaine.
Chaque jour, des actes criminels se produisent, laissant derrière eux une trace de morts, de victimes
traumatisées et de communautés en état de choc. L'insécurité n'est pas seulement une menace pour
la sécurité physique, mais elle crée également la confiance des citoyens dans les institutions chargées
de les protéger. Les retards dans l'intervention des forces de l'ordre face aux situations d'urgence
agissent comme un déclencheur de cette insécurité persistante.
L'augmentation des activités criminelles constitue une préoccupation majeure pour notre société.
Les délits se produisent fréquemment, mettant en danger la sécurité des citoyens. Dans ce contexte,
une question cruciale se pose : comment pouvons-nous mettre en place un système d'alerte efficace
qui permettra aux citoyens de signaler rapidement les activités criminelles, facilitant ainsi une
intervention rapide des autorités compétentes et contribuant à la réduction de la criminalité ?
C’est pour cette raison qu’on a choisi comme thème : « MISE EN ŒUVRE D'UN SYSTEME
D'ALERTE CRIMINELLE ».
L’objectif principal de ce mémoire est de mettre en place un système d’alerte qui permettra à tous
les citoyens de signaler rapidement les activités criminelles dont ils ont été témoins, en utilisant une
plateforme intuitive et facile d’accès.
Pour mieux présenter le thème, notre travail va se diviser en quatre grandes parties : au premier
chapitre, on verra les généralités sur l’environnement web qui sous-tend ce système, explorant
comment la technologie peut être mise au service de la sécurité publique. Ensuite, en second
chapitre, la mise en place de la base de données, l'élément clé qui permet au système de stocker et
de gérer les informations essentielles. Puis, au troisième chapitre, le fonctionnement concret du
système « Alerte Criminelle ». Nous examinerons en détail les mécanismes qui permettent aux
citoyens de signaler les crimes et comment ces informations sont traitées par les autorités. Enfin, au
quatrième et dernier chapitre, nous insisterons sur la présentation, résultats et interprétation d’une
étude de cas « attaque à main armée » que nous discutera dans des situations réelles.
1
CHAPITRE 1
ENVIRONNEMENT WEB
1.1 Introduction
De nos jours, les applications web jouent un rôle essentiel dans notre vie quotidienne, offrant des
fonctionnalités et des services accessibles à partir de n'importe quel appareil connecté à Internet.
Ces applications ont révolutionné notre façon d'interagir, de communiquer et d'accéder aux
informations.
Dans ce chapitre, nous explorerons le concept et l'importance d'une application web, en mettant
l'accent sur notre application d'alerte criminelle.
1.2.2 Historique
Le Word Wide Web a été mis en place par Tim-Berners Lee qui est considéré comme le père
fondateur du web. Au milieu des années 1990, Internet fait son apparition au grand public en version
1.0 via des pages statiques codés en HTML. Il s’agit de sites non interactifs principalement destinés
{la recherche d’informations : encyclopédies, etc. Au début des années 2000, le web a évolué et il
est devenu dynamique. Il s’agit de sa version 1.5. Il est maintenant possible de consulter du contenu
dynamique en ligne, via des bases de données : boutique en ligne, etc. (A noter que c’est aussi
l’avènement des start-ups qui surfent sur la vague du web dynamique, accessible à tous).
En 2004, Dale Dougherty utilise le terme « Web 2.0 » qui sera vite repris par Tim O’Reailly,
spécialiste du World Wide Web ; l’apparition du web 2.0 prend une véritable dimension
sociologique, pour Joshua Porter, le web 2.0 « c’est le partage de l’information, fondé sur des bases
de données ouvertes qui permettent a d’autres utilisateurs de les employer.
Depuis quelques mois, on entend de plus en plus parler du Web 3.0, c'est-à-dire un web encore plus
humain, encore plus intelligent. [1]
2
1.2.3 Les concepts de base
Le fonctionnement essentiel d'Internet repose sur un ensemble de principes fondamentaux qui
régissent la manière dont nous naviguons et accédons aux informations en ligne. Voici quelques-uns
de ces concepts fondamentaux qui jouent un rôle central dans notre expérience en ligne : [1]
3
• Un site Web (ou site) est un ensemble de pages Web et d’éventuelles autres ressources, liées
dans une structure cohérente, publiées par un propriétaire (une entreprise, une
administration, une association, un particulier, etc.) et hébergées sur un ou plusieurs serveurs
Web.
• FTP (File Transfert Protocol) : est un protocole de transfert de fichiers, qui est utilisé pour
le transfert de fichiers sur internet.
• Moteur de recherche : Les moteurs de recherché sont des serveurs qui indexent un certain
nombre des sites web et vous permettent généralement de rechercher les documents qui vous
intéressent à l’aide d’un mot clé.
Un site web statique est moins coûteux qu’un site web dynamique, sauf si le site est particulièrement
volumineux ou que la priorité est mise sur un design pointu. Toutes les pages sont individualisées
ce qui permet d'obtenir un bon référencement. L'historique du site est également conservé dans sa
globalité et en l'état sur le net, ce qui facilite le travail de référencement sur la durée.
Le coût de développement d’un site statique est moins élevé que celui d’un site dynamique.
Cependant, les mises à jour requièrent certaines compétences informatiques (langage de
programmation et notions de webdesign). Si ces compétences ne sont pas présentes dans
4
l’entreprise, le recours à un prestataire externe sera nécessaire. Des mises à jour fréquentes et un
volume important du site web rendront ce travail de suivi plus lourd à gérer.
Les mises à jour ne nécessitent pas de connaissances informatiques spécifiques et peuvent être
réalisées en interne : pas de risque de dépendance vis-à-vis d’un webmaster.
Les sites web dynamiques sont évolutifs : on peut leur greffer une multitude de modules. Ils
permettent des fonctionnalités quasi illimitées en termes d’interactivité : newsletters, agendas,
paiements en ligne, forums, …
Les sites web dynamiques offrent des fonctionnalités interactives, comme les formulaires, les
commentaires, les systèmes de recherche, et les forums, qui améliorent l’engagement des visiteurs.
Les systèmes de gestion de contenu facilitent la gestion et la mis à jour du contenu sans nécessiter
de compétences techniques avancées.
Le coût de développement d’un site dynamique est plus élevé que celui d’un site statique.
Cependant, les mises à jour étant réalisées au sein de l’entreprise, les économies prennent
rapidement le pas sur l’investissement de base.
5
Figure 1.02 : Site web dynamique
6
1.4.2 Historique de l’application web
Le World Wide Web est un système de documentation hypertexte créé en 1993 pour les besoins du
Centre européen pour la recherche nucléaire (CERN).
Le premier navigateur Web (NCSA Mosaic) a été créé la même année par le National Center for
Supercomputing Applications (NCSA).
Le World Wide Web a permis aux utilisateurs de se partager des documents et des images plus
rapidement que via le courrier électronique et plus facilement que via le partage de fichiers.
Les moteurs de recherche ont été mis en œuvre par extension du serveur Web.
En 1995, le NCSA publie la norme industrielle CGI, qui spécifie quelles sont les modalités
d'extension d'un serveur Web, dans le but de le brancher avec un logiciel applicatif par exemple
un moteur de recherche.
La technologie des applications Web a évolué très rapidement entre 1994 et 2000, où plusieurs
logiciels de serveurs Web réservés à cet usage sont sortis sur le marché un après l'autre, ainsi que
des améliorations des navigateurs Web.
Les premières applications Web souffraient d'une maniabilité et d'une ergonomie inférieure aux
applications client. Est appelée Rich Internet Application une application Web qui offre une
maniabilité et une ergonomie équivalente à une application client. Le terme Rich Internet
Application est apparu la première fois dans une publication de Macromedia en 2002.[4]
1.4.3 Définition
Une application web est un programme informatique qui s’exécute sur un serveur web, accessible
via un navigateur web. Les applications web sont généralement développées en utilisant des
langages de programmation web tels que JavaScript, CodeIgniter, ou encore Vue.js. [5]
7
• Il n’est pas nécessaire de les télécharger. L’application est hébergée sur un serveur et est
accessible à partir d’un navigateur. Cela signifie qu’il est nécessaire d’être connecté pour y
accéder.
• Elles sont accessibles à partir de n’importe quel navigateur. Si vous avez un navigateur
installé sur votre appareil (Firefox, Safari, Chrome…), vous pouvez accéder à l’application
web.
• Elles apparaissent comme résultat dans les moteurs de recherche traditionnels. Comme elles
n’ont pas besoin d’être téléchargées, vous ne les trouverez pas dans les app stores, mais elles
apparaîtront en conséquence dans des moteurs tels que Google. [6]
Le spectre d’applications Web est énorme ; il va de petits outils aux programmes les plus connus
comme des services de messagerie instantanée en passant par les logiciels de création de
graphiques ou encore les jeux de navigateurs. De nombreux programmes sont proposés sous la
forme d’application Web, mais aussi d’application native. [6]
8
1.4.7 Quelques différents types d’application web
• Applications Web statiques
Les applications Web statiques affichent peu d’informations et ne changent généralement pas
beaucoup. Elles se chargent sur le navigateur d’un utilisateur exactement comme elles sont stockées
sur le serveur Web. Comme leur nom l’indique, elles manquent de flexibilité et offrent peu ou pas
d’interaction.
Les applications Web dynamiques sont des outils qui, contrairement aux applications Web statiques,
utilisent des bases de données pour charger leurs informations. Ils changent constamment et peuvent
offrir beaucoup d’informations en fonction de l’interaction avec l’utilisateur. Le contenu est modifié
chaque fois que les utilisateurs y accèdent et elles sont largement utilisées dans les blogues, l’intranet
ou les sites Web média.
Comme son nom l’indique, une application à page unique (SPA) est une page Web qui contient tout
le contenu sur une seule page.
Elle charge un seul fichier HTML, ce qui offre une expérience fluide et plus rapide aux utilisateurs.
• Portail Web
Les applications de portail Web sont un type d’application dans lequel la page d’accueil permet
d’accéder à diverses sections ou catégories. Des exemples de portails Web incluent les chats, les
forums, le courrier électronique, les moteurs de recherche, etc.
Les applications Web progressives (PWA) utilisent les dernières technologies disponibles dans les
navigateurs pour offrir des expériences mobiles similaires à celles offertes par les applications
natives. Ce sont des applications Web rapides et fiables.[7]
9
1.4.8.1 Définition
Une PWA ou Progressive Web App est une Application Web, identique à un site internet classique,
pouvant s'installer sur une tablette ou un smartphone de la même manière qu'une application native
mobile.
Le PWA est une application Web multiplateforme, elle est accessible comme une application native
directement via son icône après son installation. [8]
Cependant, avec l’arrivée des smartphones en 2007, les technologies web ne sont plus adaptées aux
usages des mobinautes et l’émergence des applis offre une expérience utilisateur nettement
supérieure.
Au milieu des années 2010, les améliorations continues en HTML5, CSS3 et JavaScript, ainsi que
les navigateurs web plus performants et conformes aux normes, ont fait des applications hybrides
une alternative viable. [9]
En 2015, Frances Berriman et l’ingénieur de Google Alex Russell ont proposé le terme « progressive
web apps » pour décrire les sites Internet profitant des nouveaux avantages offerts par les
navigateurs web, notamment avec l’arrivée des Service Workers et des fichiers manifestes : les PWA
sont nées !
Par exemple, sur Capsolo.io un service worker permet de calculer le hash du fichier qui sera déposé
sur la blockchain, pendant que l’utilisateur poursuit sa navigation.
• Utilisable sur les anciens navigateurs (même si elle n’est pleinement fonctionnelle que sur
les plus récents).
10
1.4.8.4 Exemples des applications
• Flipkart utilise une application Web progressive pour sa populaire plate-forme de commerce
électronique, Flipkart Lite, et Air Berlin utilise une application Web progressive pour son
processus d'enregistrement en ligne, permettant aux utilisateurs d'accéder à leurs billets sans
connexion Internet. [11]
• Twitter : Twitter utilise les Progressive Web Apps pour offrir une expérience utilisateur
améliorée, en combinant les avantages des applications web et des applications natives. [12]
• Sauver de l’argent : les applications Web nécessitent moins de ressources que les
programmes installés. Vous avez seulement besoin d’un ordinateur avec un navigateur Web
et une connexion à Internet. Elles n’ont pas besoin de canaux de distribution comme les
logiciels traditionnels, elles ont donc un coût moindre.
• Facile à utiliser : les applications Web sont faciles à utiliser, vous avez seulement besoin de
compétences informatiques de base afin de pouvoir les utiliser. Vous pouvez les
personnaliser et les adapter à votre façon de travailler.
• La compatibilité : une application web est généralement compatible avec plusieurs systèmes
d’exploitation, ce qui en fait une option plus adaptable pour les utilisateurs.
• Elles facilitent le travail à distance : l’un des principaux avantages des applications Web est
qu’elles peuvent être utilisées par plusieurs utilisateurs en même temps. Toutes les
informations sont centralisées afin que tous les utilisateurs puissent modifier ou visualiser
des documents en même temps.
• Flexibilité : Il n’y a qu’une seule version de l’application Web sur le serveur, le processus
de mise à jour est donc rapide. L’utilisateur n’a pas à se soucier d’obtenir la dernière version
et les apps Web n’interfèrent pas avec son travail quotidien pour télécharger, installer et
configurer les dernières versions.
• La sécurité : les données stockées sur un serveur peuvent être plus facilement protégées et
sécurisées qu’elles ne le seraient sur un ordinateur individuel.
11
1.4.10 Architecture client-serveur
1.4.10.1 Définition
Une architecture client-serveur représente l’environnement dans lequel des applications de
machines clientes communiquent avec des applications de machines de type serveurs.
• Client : Processus demandant l’exécution d’une opération à un autre processus Par envoi
d’un message contenant le descriptif de l’opération à exécuter et attendant la Réponse à cette
opération par un message en retour.
• Serveur : Processus accomplissant une opération sur demande d’un client, et Transmettre la
réponse à ce client.
• Réponse : Message transmis par un serveur à un client suite à l’exécution d’une Opération
contenant les paramètres de retour de l’opération.
• Requête : Message transmis par un client à un serveur décrivant l’opération a Exécuté pour
le compte client.
Le client communique avec le serveur en émettant une requête via son adresse IP et un port
spécifique dédié au service du serveur. Le serveur, quant à lui, répond en utilisant l'adresse IP de la
machine cliente ainsi que son propre port. Cette interaction repose sur un système d'adressage IP et
de ports, établissant ainsi une connexion bidirectionnelle cruciale pour l'échange de données au sein
d'un réseau informatique. Cette méthode est essentielle pour de nombreuses applications en ligne,
allant de la navigation sur le web à l'envoi de courriels et au partage de fichiers. [14]
12
Figure1.03 : architecture client-serveur
Les langages de marquage tels que HTML fournissent la structure du contenu, les feuilles de style
CSS définissent la présentation visuelle, et JavaScript offre la possibilité de créer des interactions
dynamiques et réactives. Les bibliothèques et frameworks front-end modernes, tels que React,
Bootstrap et Vue.js, simplifient le développement d'interfaces utilisateur sophistiquées.
Les technologies côté serveur telles que les langages de programmation (comme CodeIgniter,
Python, Java), les frameworks (comme Django, Spring Boot) et les bases de données (comme
MySQL, PostgreSQL) sont utilisées pour répondre aux requêtes des clients, manipuler les données
et générer les réponses renvoyées au côté client. Cette partie de l'application est essentielle pour
garantir la sécurité, la persistance des données et l'exécution efficace des opérations complexes.
13
1.4.11.3 Interface de Programmation Applicative (API)
Les interfaces de programmation sont partout autour de nous. Elles sont utilisées pour accéder aux
données qui vont permettre à plusieurs apps ou services de fonctionner ensemble.
a) Définition
Une API, ou interface de programmation d'application est une composante clé du back-end d'une
application web. Il représente un ensemble de règles et de protocoles qui permettent à différentes
applications de communiquer entre elles. L'API définit les points d'entrée et les méthodes d'accès
aux fonctionnalités et aux données de l'application.[15] [16]
b) Objectif de l'API :
L'objectif principal d'une API est de faciliter l'intégration satisfaisante de services, de données ou
de fonctionnalités dans des autres applications, permettant ainsi aux développeurs d'accéder à des
ressources prédéfinies et de les utiliser pour enrichir leurs propres applications. Elle vise également
à encourager la réutilisation du code en fournissant des composants logiciels préconçus, accélérant
ainsi le développement.
Les API permettent de faire communiquer un produit ou service avec d'autres sans connaître les
détails de leur fonctionnement. Elles facilitent le développement d'applications, ce qui fait gagner
du temps et de l'argent et réduit le temps d'intégration. Utilisées dans de nombreux programmes,
elles ressemblent à un jeu de construction et offrent des pièces de fonctionnalités pouvant être
intégrées dans diverses applications. [17]
Exemple : lorsqu’on utilise une application sur un téléphone mobile, l'application se connecte à
Internet et envoie des données à un serveur. Le serveur récupère ensuite ces données, les interprète,
effectue les actions nécessaires et les renvoie du téléphone. L'application interprète ensuite ces
données et présenté les informations souhaitées de manière lisible. Tout cela se fait via l'API.
14
Figure1.04 : Schéma de synthèse de l'API
15
Quelqu'un construira le serveur en premier, car il acquiert et détient des données. Une fois ce serveur
en cours d'exécution, les programmeurs publient de la documentation, y compris les points de
terminaison où des données spécifiques peuvent être trouvées. Cette documentation indique aux
programmeurs externes la structure des données sur le serveur. Un utilisateur extérieur peut alors
interroger (ou rechercher) les données sur le serveur, ou créer un programme qui exécute des
recherches dans la base de données et transforme ces informations dans un format différent et
utilisable. [19]
• La définition du concept : Avant de lancer n'importe quel projet, il est essentiel d'avoir une
idée précise qui doit permettre de résoudre un problème. Pour déterminer cette idée, il est
nécessaire de commencer par comprendre ce qui nous intéresse. On risque rapidement de
perdre de la motivation face à un projet qui ne suscite pas suffisamment notre intérêt. La
création d'une application web demande des efforts que l'on pourra aisément déployer si l'on
est motivé. Pour concrétiser notre idée, il faudra également tenir compte de ce que l'on pourra
en tirer.
• L’étude de marché : L'étude de marché représente l'une des étapes cruciales dans la création
d'une application web, motivée par deux objectifs majeurs. Tout d'abord, il est essentiel de
déterminer si l'application répondra aux besoins des internautes. De cette manière, il est
possible de vérifier l'existence d'un marché prêt à accueillir le produit. Le second objectif de
l'étude de marché implique d'analyser la concurrence. On peut ainsi déterminer si un produit
similaire au concept en question est déjà présent sur le marché. Même si une application web
avec une approche semblable existe déjà, cela ne signifie pas forcément que le marché est
saturé. Cela peut plutôt indiquer que les concurrents ont déjà établi une présence et ont
16
habitué le marché à l'utilisation de cette application. Dans ce cas, il suffit de proposer une
offre nettement plus attrayante pour s'imposer sur le marché.
• La rédaction du cahier des charges : Une fois qu'on dispose d'une idée d'application et d'un
marché cible, il est temps de rédiger le cahier des charges à transmettre à l'agence de
développement d'application web. Cet élément garantit que tout sera réalisé conformément
à nos besoins, tout en respectant les délais et les coûts associés à la création de l'application
web. Le cahier des charges doit répertorier les fonctionnalités que l'on souhaite attribuer à
l'application.
• La phase de développement : Au stade de développement de l'application web, il est essentiel
de prêter une attention particulière à plusieurs éléments. Il est nécessaire de déterminer le
type de base de données requis pour le fonctionnement de l'application, en prenant en compte
le genre de données à stocker. Ensuite, vient le moment d'entamer les deux types de
développement pour construire l'application. Le premier, nommé back-end, fait référence à
la structure interne de l'application. Il regroupe la gestion des données, l'authentification des
utilisateurs, la mise en réseau, etc. À l'opposé, le front-end, qui représente le second type de
développement, désigne la partie visible à tous. Elle comporte le graphisme, les animations,
les moyens d'interactions, etc. [21]
Un site web offre un rendu uniforme à tous ses visiteurs, où tous les internautes consultent le même
contenu. En revanche, une application web peut adapter son affichage en fonction de l'interaction
de chaque visiteur. Prenons l'exemple de Google, où les résultats de recherche varient en fonction
de la requête effectuée.
La principale différence entre une application web et un site web réside dans le fait qu'un site web
est une collection de pages universellement accessibles et imbriquées, toutes sous un même nom de
domaine. En revanche, une application web est un programme ou un logiciel accessible depuis
n'importe quel navigateur web. Son frontend est généralement développé à l'aide de langages de
programmation tels que HTML, CSS et JavaScript, renforcés par les principaux navigateurs.
17
1.6 Conclusion
Pour conclure, nous avons découvert l'évolution incroyable du Web, depuis ses débuts jusqu'aux
applications web modernes d'aujourd'hui. Nous avons plongé dans les concepts fondamentaux tels
que les langages de programmation, les architectures client-serveur et les interfaces de
programmation applicative. Nous avons compris que les sites web statiques et dynamiques, ainsi
que les applications web progressives, offrent des expériences variées mais toutes aussi
significatives. Avec une vision plus claire de la différence entre les sites web et les applications web,
nous sommes maintenant prêts à conduire plus profondément dans les détails techniques et à
explorer comment la technologie web transforme notre manière d'interagir avec le monde
numérique.
18
CHAPITRE 2
MISE EN PLACE DE LA BASE DE DONNEES
2.1 Introduction
Les bases de données sont des composants de l'infrastructure informatique moderne. Elle est le pilier
de tout système sur une application web. Elles servent de systèmes de stockage et de gestion de
données structurées, offrant une structure organisée pour stocker, récupérer, mettre à jour et analyser
des informations.
Dans ce chapitre, on va voir la mise en place de la base de données. Les bases de données jouent un
rôle essentiel dans la gestion des informations et dans la réactivité de notre système d'alerte
criminelle. Pour comprendre la manière dont notre application web traitera les données liées à la
criminalité, il est important de poser les bases théoriques de ce composant.
Les données peuvent être quelque chose tel que le nom d'une personne, un numéro de téléphone,
des images, du son, etc.
Les informations sont des données traitées, organisées ou résumées. Ce sont des données qui ont été
mises dans un contenu significatif et utile, et communiquées à un destinataire qui les utilise pour
prendre des décisions.
Les données sont stockées de manière à ce qu'elles soient indépendantes des programmes utilisés
pour accéder aux données. L'approche utilisée pour ajouter les nouvelles données, modifier et
récupérer les données existantes de la base de données est commune et contrôlée.
19
En générale, les bases de données sont organisées par champs, enregistrements et fichiers.
• Champs : Il s'agit de la plus petite unité de données qui a un sens pour ses utilisateurs. Ils
sont également appelés éléments de données. Le nom, l'adresse et le numéro de téléphone
sont des exemples de champs. Ils sont représentés dans la base de données par une valeur.
• Enregistrement : Un enregistrement est une collection de champs liés auquel chaque champ
possède un nombre fixe d'octets et un type de données fixe. Alternativement, Les
enregistrements dans une base de données sont généralement appelés « lignes ». Par
exemple, les informations complètes sur un numéro de téléphone particulier dans la base de
données représentent un enregistrement.
• Fichiers : un fichier est une collection d'enregistrements associés. L'annuaire téléphonique
contenant les enregistrements des différents titulaires de téléphone est un exemple de fichier.
20
• La centralisation de l’information : l’information n’est plus éparpillée dans différents
fichiers à différents endroits.
• L’intégration : tout ce qui se fait dans un service est visible par d’autres services.
• La diffusion de l’information archivée : si l’information est disponible à un seul endroit, elle
est facile à diffuser.
• d’améliorer la cohérence de l’information (une seule valeur pour une même information)
• de réduire les redondances (une même information n’est stockée si possible qu’une seule
fois)
• de réduire les efforts de saisie et de mise à jour des informations (i.e. une information qui
doit être stockée une seule fois ne sera saisie qu’une seule fois. De même que sa mise à jour
ne se fera qu’une seule fois).
2.3.1 Définition
Un système de gestion de base de données (ou SGBD) est un système logiciel ou un programme qui
permet d'accéder aux données contenues dans une base de données.
L'objectif du SGBD est de fournir une méthode pratique et efficace pour définir, stocker et récupérer
les informations stockées dans la base de données. Il agit comme une interface entre le programme
d'application et les données stockées dans la base de données. [22]
• Définir, créer et organiser une base de données : Le SGBD établit les relations logiques entre
les différents éléments de données d'une base de données et définit également des schémas.
• Données d’entrée : Il remplit la fonction de saisie des données dans la base de données via
un périphérique d'entrée (comme un écran par exemple) avec l'aide de l'utilisateur.
21
• Données de processus : Il remplit la fonction de manipulation et de traitement des données
stockées dans la base de données à l'aide d’un langage de manipulation de données (exemple
SQL).
• Maintenir l'intégrité et la sécurité des données : il permet un accès limité à la base de données
aux utilisateurs autorisés afin de maintenir l'intégrité et la sécurité des données.
• Base de données de requêtes : elle fournit aux décideurs des informations dont ils ont besoin
pour prendre des décisions importantes. Ces informations sont fournies en interrogeant la
base de données à l'aide de SQL.[23]
22
2.3.3.4 L’utilisateur
Il s’agit de caractériser ici la personne qui se sert simplement de la base de données et qu’on appelle
couramment l’utilisateur final.
Par exemple :
Dans une agence de réservation de billets d'avion, l'utilisatrice qui effectue des réservations via son
terminal partage une similitude significative avec le chef d'entreprise. Tous deux ont recours à une
base de données pour accéder à des informations. L'utilisatrice consulte la base pour réserver des
vols, tandis que le chef d'entreprise sollicite la base de données de son entreprise pour obtenir des
données cruciales sur la performance et l'état actuel de son organisation.
• Moins de redondance : Au lieu de stocker les mêmes données sur chaque applications
/ordinateurs.
• Partage de données : les données sont centralisées et sont accessibles aux utilisateurs
autorisés.
• Consistance et intégrité des données : l’utilisation SGBD permet d’éviter d’avoir différent
format des mêmes informations et permet d’avoir des informations à jour pour tous les users.
• Indépendance à l’application/programme utilisateur : l’accès aux données ou la modification
des données ne dépend pas des programmes qui utilisent le SGBD.
• Sécurité : La plupart des SGBD implémentent des systèmes d’accès sécurisé afin de protéger
les données contre les utilisateurs non autorisés. (ex : les utilisateurs d’un SGBD n’ont pas
les mêmes privilèges. )
• Sauvegarde et récupération : Certains SGBDs fournit des fonctionnalités de restauration
suite à des pannes matérielles ou logicielles.
• Historique et type de SGBD
Années 60 : Les systèmes de fichiers
Années 70 : SGBDH hiérarchique
Années 80 : SGBDR Relationnels
Années 90 : SGBD Orientés Objets et Relationnels Objets
• Aujourd’hui : XML, NoSQL, SGBD Document based.[22]
23
2.4 Modèle de données
C’est un ensemble d'outils conceptuels pour décrire les données, les relations de données, la
sémantique des données et les contraintes de cohérence.
Les modèles de données peuvent être classés en quatre catégories différentes : Modèle relationnel,
modèle entité-relation, modèle objet et modèle semi structuré.
Dans les modèles basés sur des enregistrements, la base de données est structurée en enregistrements
au format fixe de plusieurs types. Chaque table contient des enregistrements d'un type particulier.
Chaque type d'enregistrement définit un nombre fixe de champs ou d'attributs. Les colonnes du
tableau correspondent aux attributs du type d'enregistrement.
Le modèle de données relationnel est le modèle de données le plus largement utilisé, et la grande
majorité des systèmes de base de données actuels sont basés sur le modèle relationnel.[24]
Cela contraste avec les modèles de données mentionnés précédemment, où chaque élément de
données d'un type particulier doit avoir le même ensemble d'attributs.
24
2.4.4 Modèle de données relationnel objet
Influencé par la programmation objet, le modèle de données relationnel objet étend le modèle de
données relationnel en fournissant un système de types plus riche, comprenant des types de données
complexes et une orientation d'objet.
Les concepts de base du modèle conceptuel de données sont : l'entité, l'association, la propriété et
les cardinalités.
2.5.1.1 Propriété
La propriété peut être définie comme une donnée élémentaire ou atomique. Appelées également
attributs ou colonnes (dans le modèle relationnel), les propriétés servent à décrire les entités et les
associations. Elles prennent des valeurs appelées occurrences de la propriété.
2.5.1.2 Entités
Une entité peut être définie comme un objet concret ou abstrait du monde réel perçu :
Exemple : Les entités possèdent un ensemble de propriétés. Par exemple, si l'on considère l'entité
"Exploitant", les propriétés peuventêtre : NoExploitant, nomExploitant, prenomExploitant, etc.
2.5.1.3 Association
L'association est un lien sémantique entre une ou plusieurs entités : l'association peut être réflexive,
de préférence binaire, parfois ternaire, voire de dimension supérieure. Elle peut également être
porteuse d'une ou plusieurs propriétés.
25
Figure 2.01 : Schéma récapitulatif de MCD
Chaque classe d'entité du modèle conceptuel devient une table dans le modèle logique. Les
identifiants de la classe d'entité sont appelés clés de la table, tandis que les attributs standards
deviennent des attributs de la table, c'est-à-dire des colonnes.
Le passage du modèle conceptuel au modèle logique au niveau des classes de relation se fait selon
les cardinalités des classes d'entité participant à la relation :
• si une des classes d'entités possède une cardinalité faible, la table aura comme attributs, les
attributs de la classe ayant une cardinalité faible, puis le (ou les) attribut(s) de relation et
enfin les attributs de la seconde classe précédé du nom de la classe.
• si les deux classes d'entités possèdent une cardinalité forte, la table aura comme attributs, les
attributs des deux classes de relation précédés des noms des classes respectives, puis le (ou
les) attribut(s) de relation.
26
Le MPD peut être composé soit de tableaux décrivant le schéma, soit du code SQL de création du
schéma : le code SQL est une déduction directe du MPD en fonction du SGBD choisi et de sa
version. Il s'agit simplement de décrire le type (chaîne de caractères, numérique...) de chacun des
champs des tables.[24]
27
2.6.1.3 Avantages de Laragon pour notre projet
Laragon offre plusieurs avantages qui sont particulièrement pertinents pour notre application :
• Laragon s'installe rapidement et offre une configuration simple, ce qui nous permet de
gagner du temps et de démarrer rapidement le développement de l'application.
• Étant donné que notre application repose sur PHP et MySQL pour traiter les données et les
interactions utilisateur, Laragon s'est révélé être une solution idéale, car il intègre ces
technologies de manière transparente.
• Laragon inclut phpMyAdmin, un outil de gestion de bases de données convivial qui facilite
la création, la modification et la maintenance de notre base de données Alerte Criminelle.
2.6.2 phpMyAdmin
Pour faciliter la gestion de la base de données de notre application, nous avons choisi d'utiliser
phpMyAdmin, un outil de gestion de bases de données puissant et convivial. PhpMyAdmin est
véritablement être un accessoire à notre environnement de développement Laragon, nous permettant
de créer, de gérer et de maintenir efficacement la structure de la base de données.
28
2.6.2.2 Fonctionnalités clés de phpMyAdmin
Création de bases de données : avec phpMyAdmin, nous avons pu créer facilement la base de
données principale de notre application, où toutes les informations relatives aux clients, aux alertes
et aux forces de l'ordre sont stockées.
Conception de tables : phpMyAdmin offre une interface conviviale pour définir la structure de nos
tables de base de données, y compris la définition des champs, des types de données et des
contraintes.
Sécurité des données : phpMyAdmin inclut des fonctionnalités de sécurité robustes pour protéger
nos données sensibles. Nous avons configuré des autorisations d'accès spécifiques pour les
utilisateurs et les administrateurs de la base de données afin de garantir la confidentialité et l'intégrité
des données.
Requêtes SQL : phpMyAdmin permet également d'exécuter des requêtes SQL directement depuis
son interface, ce qui nous a permis d'interagir avec la base de données pour extraire des informations
spécifiques, mettre à jour des données et effectuer d'autres opérations cruciales.
Le diagramme UML que nous allons présenter ici offre une vue d'ensemble de la manière dont notre
application fonctionne, comment ses composants interagissent les uns avec les autres et comment
elle répond aux besoins des utilisateurs. Nous allons examiner en détail les diagrammes de classes
et de cas d'utilisation, qui sont au cœur de notre conception logicielle.
Les acteurs d'un système sont les entités externes à ce système qui interagissent avec lui. Les acteurs
sont donc à l'extérieur du système et dialoguent avec lui. Dans notre application, nous avons comme
acteur le client, les forces de l’ordre et l’administrateur.
29
• Client : le client est l'utilisateur principal de l'application. Il utilise l'application pour signaler
l’alertes. Le client a un compte personnel et peut se connecter à l'application pour accéder à
ses fonctionnalités.
• Forces de l’ordre : les forces de l'ordre, sont les destinataires des alertes signalées par les
clients. Elles utilisent l'application pour recevoir, traiter et réagir aux alertes.
• Administrateur : l'administrateur est responsable de la gestion de l'application. Il peut gérer
les comptes utilisateur, surveiller l'activité de l'application.
Envoie alerte
Inscrire
Authentifier
« include »
Modification profile
30
Remplir formulaire
S’inscrire
Utilisateur
S’authentifier
Envoie ALERTE
Utilisateur
Déconnexion
31
Figure 2.07 : Diagramme de classe
Le diagramme de classe montre la structure du système en identifiant les classes qui le composent.
Chaque classe est représentée sous forme de boîte contenant des informations sur ses attributs et ses
méthodes.
Le diagramme de classe aide à identifier les classes essentielles dans le système. Ces classes
représentent les entités clés du domaine d'application du logiciel. Et les principales entités de notre
projet sont : « Clients », « Alertes », « Groupes », « District », « District_zones », « Forces »,
« Privilege » et « Users ».
Les attributs des classes sont répertoriés dans le diagramme de classe. Cela inclut des informations
sur les données que chaque classe stocke et manipule. Les attributs de chaque entité sont :
32
« Clients », ces attributs sont : IdClient, Nom, Prenom, Telephone, Adresse, CodeAcces, IdDistrict,
IdDistrictZone.
« Users » : IdUser, Nom, Prenom, Login, Email, Password, Grade, IdGroupe, IdDistrict,
IdDistrictZone, IdForce, IdPrivilege.
Les relations entre les classes sont cruciales dans notre application. Par exemple, la relation entre
un "Client" et "Alertes" montre qu'un client peut avoir plusieurs alertes. De même, la relation entre
"Alerte" et "Force de l'ordre" indique à quelle force de l'ordre une alerte est assignée.
• Base de Données
Notre diagramme de classe servira de base pour la création de notre base de données. Chaque classe
correspondra généralement à une table dans notre base de données, et les attributs deviendront les
colonnes de ces tables.
• La table « clients »
La table « clients » est le pilier de la gestion des utilisateurs sur l'application. Elle enregistre les
informations personnelles de chaque utilisateur, y compris leur nom, prénom, numéro de téléphone,
adresse, et d'autres données d'identification. Ces informations sont cruciales pour garantir une
identification précise des utilisateurs et pour faciliter leur interaction avec l'application. Cette table
stocke également des informations sensibles telles que les codes d'accès et les mots de passe cryptés
33
des utilisateurs. La sécurité est une préoccupation majeure, car elle garantit que seuls les utilisateurs
autorisés ont accès à l'application et à ses fonctionnalités. Les utilisateurs enregistrés ont la capacité
d'envoyer des alertes sur l'application. La table "clients" est liée à la table "alertes" par le biais d'une
relation pour suivre quel utilisateur a émis quelle alerte. Cela permet de garder un historique complet
des alertes émises par chaque utilisateur.
• La table « alertes »
La table « alertes » est utilisée pour stocker toutes les alertes envoyées par les clients de l'application
Alerte Criminelle. Cette table enregistre des informations cruciales liées à chaque incident signalé
par les utilisateurs. Ces informations incluent l'identité de l'utilisateur qui a émis l'alerte, la date et
l'heure précises à laquelle l'alerte a été émise, ainsi que des détails complets sur l'incident, tels que
sa nature, sa localisation géographique, sa gravité, et toute autre information pertinente.
• La table « privilèges »
• La table « groupes »
La table « groupes » est une composante fondamentale du système Alerte Criminelle, car elle
maintient une liste complète des différents groupes de forces de l'ordre qui collaborent au sein du
système. Chaque enregistrement dans la table « groupes » représente un groupe spécifique de forces
de l'ordre. Elle facilite la gestion des groupes enregistrés dans le système. Les administrateurs
peuvent ajouter de nouveaux groupes, mettre à jour les informations existantes ou retirer des groupes
qui ne sont plus actifs.
34
• La table « districts »
La table « districts » est conçue pour stocker la liste des districts géographiques. Elle facilite la
gestion de toutes les subdivisions géographiques du domaine d'opération de l'application. La table
"districts" est un élément clé de la coordination des ressources, car elle permet de déterminer quel
district est responsable de l'intervention en fonction de la localisation de l'alerte.
La table "zone des districts" complète la table "districts" en permettant de diviser chaque district en
zones plus spécifiques. Cette subdivision facilite la localisation précise des clients lorsqu'ils
envoient une alerte.
• La table « Forces »
La table « Forces » est conçue pour enregistrer des informations sur les forces de l'ordre qui
interviennent dans notre système de sécurité. Ces enregistrements peuvent être par exemple
Gendarmerie Ampitatafika.
La table stocke des informations cruciales sur chaque force de l'ordre, notamment son nom, son
emplacement. Ces informations permettent d'établir un répertoire complet des forces de l'ordre
disponibles pour la réponse aux alertes.
• La table « Users »
La table « User » est principalement utilisée pour enregistrer les comptes des administrateurs de
l'application.
Ces administrateurs ont un niveau d'accès élevé et jouent un rôle essentiel dans la supervision et la
gestion de la plateforme. Chaque enregistrement dans cette table représente un administrateur
spécifique.
La sécurité des comptes administrateurs est une priorité absolue. C'est pourquoi la table "User"
comprend un champ pour le mot de passe de chaque administrateur. Cependant, il est important de
noter que les mots de passe sont stockés de manière cryptée dans la base de données.
Cette pratique sécuritaire garantit que même en cas de violation de la base de données, les mots de
passe restent confidentiels et ne peuvent pas être utilisés par des tiers malveillants.
35
Le processus d'envoi du mot de passe par e-mail à l'utilisateur concerné est une mesure de sécurité
supplémentaire. Cette méthode permet de s'assurer que seul l'administrateur autorisé a accès à son
propre mot de passe. Cela renforce la confidentialité et la sécurité des comptes administrateurs.
2.7 Conclusion
Pour conclure, nous avons vu le cœur de notre application Alerte Criminelle en explorant la mise en
place de sa base de données. Les bases de données jouent un rôle fondamental dans la gestion des
informations et la réactivité de notre système d'alerte criminelle. Pour comprendre comment notre
application web traitera les données liées à la criminalité, il était essentiel de poser les bases
théoriques de ce composant.
36
CHAPITRE 3
MISE EN ŒUVRE ET FONCTIONNEMENT DU SYSTEME
3.1 Introduction
L'efficacité d'une application repose non seulement sur sa conception, mais aussi sur sa manière de
fonctionner. Dans ce chapitre, on va voir dans les mécanismes internes de l'application Alerte
Criminelle pour comprendre comment elle répond aux besoins de ses utilisateurs. Nous
découvrirons comment les différents acteurs interagissent avec l'application, depuis les utilisateurs
du côté clients jusqu'aux administrateurs, en passant par les opérateurs dédiés à la gestion des alertes.
37
3.3 Les technologies utilisées
3.3.1 CodeIgniter
Pour la mise en œuvre du backend de notre application, nous avons choisi d'utiliser le Framework
PHP CodeIgniter en raison de sa conception basée sur le modèle MVC, de sa facilité de
configuration, de ses performances élevées et de ses fonctionnalités de sécurité intégrées.
3.3.1.1 Définition
CodeIgniter est un framework d'application web PHP open source largement utilisé dans le
développement de sites web dynamiques et d'applications web. Il offre une structure et des outils
qui simplifient le processus de développement, permettant ainsi de gagner du temps et d'assurer une
gestion efficace du code.
Il offre des temps de chargement de page rapides, ce qui est essentiel pour les applications qui
doivent répondre rapidement aux demandes des utilisateurs. CodeIgniter est livré avec une
documentation complète et bien entretenue. Nous pouvons facilement accéder aux informations
nécessaires pour le développement, le débogage et la maintenance de notre application.
CodeIgniter suit le modèle MVC, ce qui favorise la séparation claire de la logique métier, de la
présentation et de la gestion des requêtes. Cette structure facilite la maintenabilité du code.
Les modèles gèrent les données de l'application et aident à appliquer les règles métier spéciales dont
l'application pourrait avoir besoin.
38
Les vues sont des fichiers simples, avec peu ou pas de logique, qui affichent les informations à
l'utilisateur.
Les contrôleurs agissent comme un code de liaison, rassemblant les données dans les deux sens
entre la vue (ou l'utilisateur qui la voit) et le stockage des données.
3.3.2 VueJS
Pour la partie frontend de notre application, nous avons choisi pour Vue.js, un Framework
JavaScript moderne qui nous a permis de créer des interfaces utilisateur interactives, réactives et
conviviales. Vue.js nous a offert la possibilité de structurer notre code de manière modulaire,
facilitant ainsi le développement et la maintenance de l'interface utilisateur de notre application.
3.3.3 Leaflet JS
Dans le cadre de notre projet d'application, nous avons intégré des fonctionnalités de cartes
interactives pour permettre aux utilisateurs de visualiser les incidents signalés, de localiser les forces
de l'ordre, et d'assurer une gestion efficace des alertes criminelles. Les cartes interactives jouent un
39
rôle dans notre application en offrant une interface visuelle pour représenter les données
géographiques et en facilitant la coordination entre les citoyens et les autorités. C’est pour cette
raison qu’on a utilisé Leaflet Js.
Définition : Leaflet.js est une bibliothèque JavaScript open-source destinée à la création de cartes
interactives sur le web. Elle offre une solution légère et polyvalente pour afficher et manipuler des
cartes sur des sites web.
L'utilisation de Leaflet.js a été un choix stratégique pour notre application Alerte Criminelle, car
elle a contribué à améliorer l'expérience utilisateur, la performance et la polyvalence de notre
solution de cartographie interactive.
Grâce à la PWA, les utilisateurs peuvent accéder à notre application directement depuis leur
navigateur web sans avoir besoin de la télécharger depuis une boutique d'applications comme Play
Store par exemple. Cela simplifie considérablement le processus d'accès à l'application, ce qui est
particulièrement avantageux pour les utilisateurs qui ne souhaitent pas ou ne peuvent pas utiliser les
magasins d'applications traditionnels.
Installation sur l'Écran d'Accueil : lorsque les utilisateurs visitent notre site web, ils ont la possibilité
d'installer notre application sur l'écran d'accueil de leur appareil. Cela crée une icône d'application
directe, offrant ainsi une expérience similaire à celle des applications natives. Cette fonctionnalité
améliore la visibilité de notre application et encourage les utilisateurs à y accéder fréquemment.
Etape de l’installation :
• Tout d'abord, ouvrir le navigateur web de notre choix sur notre appareil (par exemple,
Google Chrome, Mozilla Firefox, etc.).
40
• Saisir l'URL du site web de notre application dans la barre d'adresse du navigateur.
• Lors de la première visite sur le site, on voit une proposition d'installation de la PWA. Cette
proposition apparaît généralement sous forme d'icône ou de bouton dans la barre d'adresse
du navigateur ou en haut de l'écran.
• Cliquons sur l'icône ou le bouton proposant l'installation de la PWA pour confirmer notre
choix. Selon le navigateur que nous utilisons, nous pourrions également être invité à ajouter
l'application à notre écran d'accueil, tout comme une application native.
• Une fois que l'installation est confirmée, la PWA sera téléchargée et installée sur l’appareil.
Une icône apparaîtra généralement sur l’écran d'accueil ou dans le menu des applications,
ce qui permettra d'y accéder rapidement.
On doit créer un compte car l'inscription garantit que les données des utilisateurs sont stockées de
manière sécurisée et que seuls les utilisateurs autorisés ont accès à leur compte.
En ayant un compte utilisateur, il est plus facile de tracer l'origine des alertes. Cette fonctionnalité
est essentielle pour garantir l'intégrité du système et pour identifier les utilisateurs.
Etape de l’inscription : Lorsque les utilisateurs accèdent à l'application, ils sont dirigés vers la page
de connexion. Ils cliquent sur le bouton « S'Inscrire » et rediriger vers la page d’inscription pour
accéder au formulaire d'inscription. Dans le formulaire d'inscription, les utilisateurs doivent fournir
les informations requises telles que leur nom, prénom, téléphone et adresse. Une fois qu'ils ont
rempli tous les champs du formulaire, ils peuvent appuyer sur le bouton « Enregistrer » pour créer
leur compte. Une fois inscrits, les utilisateurs peuvent commencer à utiliser l'application et ont accès
à la fonctionnalité pour signaler des incidents criminels.
41
Figure 3.05 : La page de la création de compte utilisateur
Une fois que les utilisateurs ont terminé le processus d'inscription, ils peuvent accéder à leur compte
en toute simplicité grâce à la page de connexion. La connexion est une étape pour garantir la sécurité
et l'authentification des utilisateurs.
Les utilisateurs entrent leur numéro de téléphone dans le champ prévu, qui sert d'identifiant unique
pour accéder à leur compte. Ce numéro de téléphone est également utilisé pour la sécurité et la
vérification.
Une fois que le code de confirmation est accepté, l'utilisateur est redirigé vers la page d'accueil de
l'application, où il peut profiter de toutes les fonctionnalités de la plateforme.
42
Si l'utilisateur n'est pas connecté, il sera redirigé vers la page de connexion et devra se connecter
pour accéder à son compte. Cette fonctionnalité permet aussi de sécuriser les données importantes
de chaque utilisateur sur l’application.
• Bouton « Alerte »
L'un des éléments les plus importants de la page d'accueil est le bouton « Alerte ». Il s'agit d'un
bouton facilement accessible que les utilisateurs peuvent utiliser pour envoyer instantanément une
alerte en cas d'incident criminel ou d'activité suspecte. En appuyant sur ce bouton, les utilisateurs
déclenchent le processus de signalement d'incident.
Les utilisateurs ont la possibilité d'ajouter des détails supplémentaires sur l'incident qu'ils signalent.
Cela peut inclure une description de l'incident, des informations sur les suspects, des détails ou toute
autre information.
43
Cette fonctionnalité permet aux utilisateurs de fournir des informations précises aux autorités.
• Gestion de Profil
La gestion de profil permet à l’utilisateur de modifier les informations sur son profil.
Le client peut modifier son numéro de téléphone et ainsi que toutes les informations nécessaires,
notamment le numéro de téléphone, le district, la zone de district et la force.
44
• Déconnexion
Enfin, la déconnexion est une fonctionnalité essentielle située sur la page d'accueil. Elle permet aux
utilisateurs de se déconnecter en toute sécurité de leur compte. Cela garantit que lorsque quelqu'un
a terminé d'utiliser l'application, son compte reste sécurisé, même si d'autres personnes ont accès à
l'appareil.
45
En se connectant, les utilisateurs sont en mesure de bénéficier des privilèges qui leur sont accordés
en fonction de leur rôle. Le « Super Administrateur » a des privilèges étendus pour gérer l'ensemble
de l'application alors il redirige vers son interface, tandis qu'un « Opérateur » a des privilèges
spécifiques pour gérer les notifications des alertes, alors il redirige vers la notification. Cette
distinction des privilèges permet une gestion efficace de la plateforme.
Chacun ayant une fonction spécifique dans la gestion de notre application d'alerte criminelle.
• Tableau de bord
Le tableau de bord de l'administrateur dans l'application Alerte Criminelle est la première page à
laquelle l'administrateur a accès après s'être connecté. Il s'agit d'un élément central de l'interface
d'administration, conçu pour fournir un aperçu rapide des informations cruciales et des activités
importantes.
Dans le menu du tableau de bord, c'est là que nous conservons la liste des alertes passées.
• Notification
Une fois que l’ « Opérateur » est connecté il redirige vers le menu « Notification ».
Le menu « Notification » affiche une liste des nouvelles alertes signalées par les clients de
l'application. Chaque alerte est répertoriée avec des informations essentielles telles que la date et
l'heure de réception, l'emplacement géographique de l'alerte.
Cette section peut également afficher les commentaires laissés par les clients.
46
Figure 3.10 : Les listes des alertes
Lorsqu'un opérateur ou un administrateur clique sur une alerte qui vient d'arriver dans l'interface de
l'application Alerte Criminelle, un affichage détaillé de cette alerte s'ouvre. Cet affichage est conçu
pour fournir aux opérateurs toutes les informations pertinentes concernant l'incident signalé.
Les coordonnées de la personne qui a envoyé l'alerte sont affichées en toute transparence. Cela peut
inclure des informations telles que le nom, le numéro de téléphone, l'adresse e-mail ou d'autres
données de contact. Cette transparence permet aux opérateurs de savoir qui a envoyé l'alerte et de
pouvoir le contacter si nécessaire.
47
L'emplacement de l'incident est généralement affiché sur une carte géographique intégrée à
l'interface. Cette carte indique précisément où l'incident a été signalé. Les coordonnées GPS,
l'adresse ou d'autres informations de localisation sont utilisées pour afficher cet emplacement.
À partir de la Figure 3.12, il a la possibilité de changer le statut de l'alerte. Les statuts couramment
utilisés incluent « En cours », et enregistre et tous de suite un message de retour est arrivé aux clients
qui a envoyé l’alerte. Après l’envoi, il redirige vers la liste des alertes.
Dans ce menu, nous conservons la liste des administrateurs. Ils jouent des rôles distincts et essentiels
dans le bon fonctionnement de notre plateforme.
Pour l’opérateur, il consiste principalement à gérer la gestion des alertes signalées par les
utilisateurs.
Une fois qu'une alerte est reçue, il renvoi un retour et communiquer avec les intervenants pour faire
l’intervention.
48
• Gestion des groupes
Dans le menu « Gestion des Groupes » que nous stockons des informations essentielles sur les
différentes forces de l'ordre, telles que la police, la gendarmerie, et d'autres organisations similaires.
Ce menu permet une gestion centralisée des groupes, ce qui facilite et la communication entre ces
entités.
Dans le menu « Gestion des Districts », nous conservons la liste complète des districts. Chaque
district est une subdivision géographique importante pour notre système, car il permet de spécifier
précisément où les incidents se produisent, ce qui est essentiel pour une réponse rapide aux alertes.
49
• Gestions des zones des districts
Dans le menu « Gestion des zones des districts », nous conservons une liste complète des zones
spécifiques à l'intérieur de chaque district. Chaque district peut être divisé en plusieurs zones, ce qui
permet une localisation précise des incidents signalés.
• Forces
Dans le menu « Forces », nous conservons une liste exhaustive de toutes les forces de l'ordre qui
interviennent dans notre système de sécurité. Chaque force est associée à un district spécifique ainsi
qu'à une zone de district particulière, ce qui permet de déterminer précisément leur lieu.
50
• Gestion des utilisateurs
Dans le menu « Gestion des utilisateurs », nous offrons un aperçu complet de tous les utilisateurs
de l'application. L'accès à cette section est réservé au super administrateur, qui a le pouvoir d'ajouter
de nouveaux utilisateurs ou de supprimer des comptes existants.
Pour ajouter un nouvel utilisateur, on cliquer sur le bouton « Ajouter » situer en haut à droite de
l'écran. Dans cette action qu’on doit remplir les formulaires tels que le nom, le prénom, le login,
l'email, le grade, le groupe auquel il appartient, les privilèges associés, le district, la zone et la force.
Le bouton « Voire Liste » en haut à droite, permettant de consulter la liste complète des utilisateurs
enregistrés dans le système.
3.7 Conclusion
L’application Alerte Criminelle révélant sa complexité et sa capacité à répondre aux besoins de
sécurité publique. On a vu les mécanismes internes de l'application. Nous avons mis en évidence
comment elle facilite la communication et la collaboration entre les citoyens et les autorités
responsables de leur protection. Cependant, le véritable impact de cette application sur la sécurité
publique reste à explorer. Dans les chapitres à venir, nous allons voir plus profondément dans
l'évaluation des résultats concrets de l'application, en examinant de près les données, les retours
d'expérience des utilisateurs, afin de mieux comprendre comment elle contribue à un environnement
plus sûr et à une confiance accrue entre les citoyens et les autorités.
51
CHAPITRE 4
PRESENTATION – RESULTATS – INTERPRETATIONS : ETUDE DE CAS « ATTAQUE
A MAIN ARMEE »
4.1 Introduction
Ce chapitre marque une étape cruciale dans notre exploration de l'application « Alerte Criminelle ».
Après avoir examiné en détail son fonctionnement, ses technologies sous-jacentes et ses
mécanismes internes, nous nous tournons maintenant vers l’impact concret qu’elle a eu sur la
sécurité publique et les avantages qu’elle offre à tous les citoyens.
Dans ce chapitre, nous allons examiner en détail l’impact de notre application à travers l’analyse
d’une étude de cas concret. Cette étude de cas nous permettra de comprendre comment notre
application a le potentiel de changer la sécurité publique en permettant aux citoyens de signaler
rapidement des incidents graves.
Envoie alerte
Opérateur
Clients
Reçoivent
L'utilisation du numéro d'urgence local est l'une des méthodes les plus courantes pour signaler des
incidents criminels, dans la plupart des régions, un numéro de téléphone d'urgence est mis à
disposition du public pour signaler des crimes, des incidents dangereux ou des situations nécessitant
une intervention immédiate.
• Avantages
Le numéro d'urgence local est largement accessible et bien connu, ce qui permet aux individus de
signaler des incidents rapidement.
52
• Limitations
Manque de Détails : Les informations fournies par téléphone peuvent être limitées, l’appelant peut
décrire l’alerte mais c’est insuffisant, et si les forces détecte mal l’endroit où il y a l’alerte.
Surcharge : En cas de situations d'urgence massives, les lignes d'urgence peuvent être surchargées,
entraînant des temps d'attente plus longs.
Sécurité : Une préoccupation majeure concerne la sécurité des signalements. Dans certaines
situations, l'appelant pourrait être en danger s'il est entendu par des individus malintentionnés,
comme des criminels. Il est donc essentiel de prendre des précautions supplémentaires pour garantir
la confidentialité de l'appelant dans de telles circonstances.
L’attaque du camp de la nonne à Vakinankaratra s’est déroulée le mercredi soir, le 6 septembre 2023.
Des trois bandits portant une hache sont déjà entrés dans la cour. La nonne essaye de résister aux
attaquants, elle a crié à l’aide. Ce jour-là, la nonne a été blessée au combat.
Des dizaines de gangsters sont venus cambrioler la résidence de l’ancien directeur général de la
police nationale la nuit du Mardi 05 Septembre 2023. Un policier de garde a été blessé par les
assaillants et ils ont emporté le pistolet du victime mitrailleuse.
3em cas : Attaque à main armée du magasin Shop Liantsoa à Ankadindratoa Alasora
Quelqu’un a attaqué le magasin le soir du 26 Juillet 2023. Un homme a été tué par balle, c’est un
homme innocent. Il n’a pas encore été clairement défini le nombre d’auteurs et après l’attaque ils
ont échappé par la route vers Mahazoarivo.
Imaginons une situation où trois incidents criminels graves se produisent presque simultanément
dans une ville, nécessitant une intervention immédiate de la police. Cependant, le système
traditionnel d'appel téléphonique d'urgence présente des limitations importantes dans ce contexte.
53
Cas 1 : Attaque du camp de la nonne à Vakinankaratra (20h00)
Le témoin raconte l’incident, guider la police ou gendarme où est l’incident, alors ils ont une
discussion de 10min à peu près.
À 20h02, une autre attaque se produit où l'ancien directeur général de la police nationale est victime
d'une tentative de cambriolage.
Un témoin tente d'appeler la police, mais la ligne est encore occupée par le premier cas.
La tentative de cambriolage réussit car la police n'a pas été alertée à temps.
Cas 3 : Attaque à main armée du magasin Shop Liantsoa à Ankadindratoa Alasora (20h05)
À 20h05, un homme est tué lors d'une attaque dans un magasin, et des témoins essaient
désespérément d'appeler la police.
Cependant, toutes les lignes d'urgence sont occupées par les deux premiers cas, et les appels ne
peuvent pas être passés.
La police n'est alertée qu'après que les criminels ont quitté les lieux.
L'étude de cas menée pour évaluer l'impact de l'Application « Alerte Criminelle » sur la sécurité
publique a révélé plusieurs résultats significatifs :
• L'un des résultats les plus notables de cette étude a été la réduction significative des délais
de réponse aux incidents criminels. Avant l'application, lorsque plusieurs incidents se
54
produisaient simultanément, les lignes téléphoniques d'urgence étaient rapidement
saturées, ce qui entraînait des retards dans la notification des autorités. Cependant, grâce à
l'utilisation de l'Application Alerte Criminelle, les témoins ont pu signaler les incidents en
temps réel.
• Un résultat extrêmement positif de l'application a été le potentiel de sauver des vies. En
permettant aux témoins d'alerter rapidement les autorités, même lorsque les lignes
téléphoniques étaient occupées, des interventions plus rapides ont pu être menées.
En utilisant Firebase, nous pourrons envoyer des notifications en temps réel aux utilisateurs et aux
opérateurs chaque fois qu'un changement de statut d'alerte se produit (par exemple, lorsque l'alerte
55
passe de « en cours » à « terminée »). Cela garantit que toutes les parties concernées sont
immédiatement informées des développements.
Les utilisateurs à la possibilité de se connecter avec leur adresse e-mail en plus du numéro de
téléphone, nous augmentons la flexibilité de l'application. Cela peut être pratique pour ceux qui
préfèrent ne pas partager leur numéro de téléphone ou qui souhaitent avoir une alternative en cas de
problème avec leur numéro par exemple.
L’amélioration de l'interface utilisateur pour les opérateurs, comme d’utilisé une carte sur leurs
interface (gestion des alertes) et l’alerte apparait sur la carte grâce à un pop-up et en cliquant sur
cette icône les coordonnées de l’alerte s’affichent du côté gauche de l’écran.
4.5 Conclusion
En conclusion, ce chapitre a examiné en détail le développement, la mise en œuvre et les résultats
de l'Application Alerte Criminelle, un outil conçu pour renforcer la sécurité publique et la réponse
aux incidents criminels. Les objectifs principaux de ce projet étaient de créer une plateforme
accessible et efficace permettant aux citoyens de signaler rapidement les crimes et aux forces de
l'ordre de répondre de manière proactive à ces alertes.
Au cours de ce chapitre, nous avons abordé les différentes phases du projet, de la conception initiale
à la mise en œuvre pratique. Nous avons décrit les fonctionnalités clés de l'application, y compris la
possibilité de signaler des incidents, la gestion des alertes, et la communication entre les citoyens et
les opérateurs.
56
CONCLUSION GENERALE
Au fil de ces quatre chapitres, nous avons exploré en détail l’Application Alerte Criminelle et son
rôle essentiel. Notre parcours a débuté par une analyse approfondie des besoins en matière de
sécurité publique qui ont motivé la création de cette application. Nous avons souligné que
l'augmentation des activités criminelles constitue une préoccupation majeure pour notre société,
mettant en danger la sécurité des citoyens. Dans ce contexte, nous avons abordé la question de la
manière dont nous pouvons mettre en place un système d'alerte efficace permettant aux citoyens de
signaler rapidement les activités criminelles, favorisant ainsi une intervention rapide des autorités
compétentes et contribuant à la réduction de la criminalité.
Les aspects techniques de l’application, en choisissant CodeIgniter pour le backend, Vue.js pour le
frontend, et Leaflet.js pour les cartes interactives. Ces choix offrent une expérience utilisateur fluide
et une gestion efficace des données.
Notre étude de cas illustrative, présentée dans le dernier chapitre, a démontré comment l'Application
Alerte Criminelle peut avoir un impact significatif sur la sécurité publique en améliorant la
coordination entre les citoyens et les forces de l'ordre. Les exemples concrets d'attaques et de vols
à main armée ont montré comment l'application peut être un outil essentiel dans la résolution rapide
de ces incidents, ce qui contribue à la sécurité globale de la société.
L’Application Alerte Criminelle représente une solution moderne et efficace pour renforcer la
sécurité publique tout en favorisant la collaboration entre les membres de la société et les autorités
responsables de leur protection.
Notre application représente un pas important vers un avenir plus sûr, où la technologie joue un rôle
central dans la préservation de la sécurité et de la confiance au sein de la communauté. Elle témoigne
de notre engagement à faire de la sécurité publique une priorité, en utilisant les outils technologiques
les plus avancés pour y parvenir.
57
ANNEXES
A1.2 Bootstrap
Bootstrap est un framework open-source (cadre de travail) front-end largement utilisé pour la
conception de sites web et d'applications web. Il a été créé par Twitter et est maintenant maintenu
par une communauté de développeurs. Bootstrap simplifie considérablement le processus de
développement web en fournissant une collection de composants, de modèles et de styles CSS
préconçus que les développeurs peuvent utiliser pour créer rapidement des interfaces utilisateur
attrayantes et réactives.
58
modernes, VS Code offre un espace de travail flexible et riche en fonctionnalités pour écrire, éditer,
déboguer et gérer le code source de différentes technologies.
59
ANNEXE 2 : EXTRAIT DE CODE SOURCES
A2.1 : Au niveau administrateur
60
BIBLIOGRAPHIE
[1] M. LOUKAM, « Technologies et services Web ». Consulté le 09 Août 2023.
[3] A. Meliouh, « Introduction aux applications Web », Université de Msila : Faculté des
mathématiques et de l’informatique Département d’informatique, AU : 2019-2020.
[11] « Une Progressive Web App, c'est quoi ? - Définition, caractéristiques et cas d'utilisation »,
https://www.progressive-web-apps.fr/definition-progressive-web-apps-pwa, PWA : 2016 – 2017.
[12] « Une mise à jour majeure du réseau social pour la version mobile de son site web. »,
https://www.progressive-web-apps.fr/progressive-web-app-twitter-lite, PWA : 2016 – 2017.
61
[15] « C’est quoi une API ? Et à quoi ça sert ? », https://www.agencedebord.com/blog/api-
definition-utilisation. (Consulté le 11 Août 2023).
[21] « Application web : le guide pour comprendre de quoi cela retourne », https://www.cours-
gratuit.com/blog/application-web-le-guide-pour-comprendre-de-quoi-cela-retourne, Publié le 01
Mars 2022.
[23] B. Brahim « Généralités sur les bases de données », Dép. d’informatique - Faculté des
sciences de l’Ingénieur - Univ. de Batna – Algérie, Jun 2002.
[24] M. ANDRIANARISON, « Cours MERISE », Cours L2 – TCO, Dép. TCO – E.S.P.A., A.U. :
2020 – 2021.
[26] W. Luke, T. Laura, « Cours PHP & MySQL », 4e édition, Copyright © 2009 by Pearson
Education, Inc.
62
FICHE DE RENSEIGNEMENTS
Nom : RAKOTONDRANAIVO
E-mail : rak.sendramampionona@gmail.com
Titre du mémoire :
Nombres de pages : 64
Nombres de figures : 35
E-mail : zanisam43@gmail.com
63
RESUME
Notre travail consiste à concevoir et de réaliser un système d'alerte criminelle, visant à améliorer la
sécurité publique. Cette application a été créée d'aborder le problème de l'insécurité et du retard dans
l'intervention des autorités face à des activités criminelles. Elle permet aux citoyens de signaler
rapidement des incidents criminels et aux autorités d'intervenir de manière plus efficace. Nous avons
créé une application web, modélisée à partir du langage UML. Le Langage de programmation choisi
est le Framework PHP, CodeIgniter,et le système de gestion de base de données est MySQL.Ainsi,
L'application est fonctionnelle, bien qu'elle nécessite encore quelques ajustements pour atteindre
son plein potentiel.
ABSTRACT
Our work consists of designing and implementing a criminal alert system, aimed at improving public
safety. This application was created to address the problem of insecurity and delay in the
intervention of the authorities in the face of criminal activities. It allows citizens to quickly report
criminal incidents and allows authorities to intervene more effectively. We created a web
application, modeled from the UML language. The programming language chosen is the PHP
Framework, CodeIgniter, and the database management system is MySQL. Thus, the application is
functional, although it still requires some adjustments to reach its full potential.