Vous êtes sur la page 1sur 73

N° d’ordre : 028 / STI / TCO Année Universitaire : 2022 / 2023

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)

Par : RAKOTONDRANAIVO Sendra Tsilavina Mampionona

MISE EN ŒUVRE D’UN SYSTEME D’ALERTE


CRIMINELLE
Soutenu le Jeudi 05 Octobre 2023 devant la Commission d’Examen composée de :

Président :

M. ANDRIAMIASY Zidora

Examinateur :

M. RATSIMBAZAFY Tsiory

Directeur de mémoire :

M. RASAMOELINA Jacques Nirina


REMERCIEMENTS
Je rends grâce à Dieu pour m’avoir donné le courage, la volonté et la santé durant la réalisation de
ce travail.

Ma profonde gratitude s’adresse particulièrement aux personnes suivantes :

À Monsieur RAVELOMANANA Mamy Raoul, Professeur Titulaire Agrégé et Président de


l’Université d’Antananarivo ;

À Monsieur RAKOTOSAONA Rijalalaina, Directeur de l’Ecole Supérieur Polytechnique


d’Antananarivo, Responsable du Domaine Sciences de l’Ingénieur à l’École Supérieure
Polytechnique d’Antananarivo ;

À Monsieur RAJAONARISON Tianandrasana Roméo, Docteur HDR, Responsable de la mention


Télécommunication à l’École Supérieure Polytechnique d’Antananarivo ;

À Monsieur ANDRIAMIASY Zidora, Maitre de Conférences au sein du Département


Télécommunication, qui me fait l’honneur de présider le jury de ce mémoire ;

À Monsieur RASAMOELINA Jacques Nirina, Assistant d’Enseignement Supérieure et de


Recherche au sein de la Mention Télécommunication, Directeur de ce mémoire, m’a accordé du
temps afin que ce mémoire soit mené à terme. J’exprime ma gratitude et mes reconnaissances pour
ses conseils, ses directives et ses sympathies. Et à Madame RABENANDRASANA Herinandrianina
Angelique, Ingénieur en Télécommunication IT & Security Focal Point de Transparency
International Madagascar, Encadreur professionnel qui malgré ses lourdes responsabilités m’a
toujours prodigué ses conseils et ses critiques constructifs durant l’élaboration de ce travail ;

À Monsieur RATSIMBAZAFY Tsiory, Docteur en Télécommunication, membre du jury, qui a


accepté d’examiner ce mémoire malgré ses innombrables occupations ;

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

TABLE DE MATIERES ................................................................................................................. ii

NOTATIONS .................................................................................................................................. vi

INTRODUCTION GENERALE ................................................................................................... 1

CHAPITRE 1 ENVIRONNEMENT WEB ............................................................................... 2

1.1 Introduction ...................................................................................................................... 2

1.2 Généralités sur le web ...................................................................................................... 2

1.2.1 Définition .................................................................................................................... 2

1.2.2 Historique ................................................................................................................... 2

1.2.3 Les concepts de base ................................................................................................... 3

1.3 Le site web ......................................................................................................................... 4

1.3.1 Définition .................................................................................................................... 4

1.3.2 Classification des sites web ........................................................................................ 4

1.4 Développement d’application web .................................................................................. 6

1.4.1 De quoi s’agit-il ? ....................................................................................................... 6

1.4.2 Historique de l’application web ................................................................................. 7

1.4.3 Définition .................................................................................................................... 7

1.4.4 Les caractéristiques d’une application web ............................................................... 7

1.4.5 L'utilisation d'une application web ........................................................................... 8

1.4.6 Principes de fonctionnement...................................................................................... 8

1.4.7 Quelques différents types d’application web ............................................................. 9

1.4.8 L’application web progressive .................................................................................... 9

1.4.9 Les avantages des applications web ..........................................................................11

1.4.10 Architecture client-serveur....................................................................................... 12

1.4.11 La technologie utilisée pour une application web ................................................... 13

ii
1.4.12 Les étapes de la création d’une application web ..................................................... 16

1.5 Différence entre site web et application web ................................................................ 17

1.6 Conclusion ....................................................................................................................... 18

CHAPITRE 2 MISE EN PLACE DE LA BASE DE DONNEES ......................................... 19

2.1 Introduction .................................................................................................................... 19

2.2 Notions générales d’une base de données ..................................................................... 19

2.2.1 Données et informations .......................................................................................... 19

2.2.2 Base de données........................................................................................................ 19

2.2.3 Objectifs d’une base de données .............................................................................. 20

2.2.4 Rôle d’une Base de données .................................................................................... 20

2.3 Systèmes de gestion de bases de données ...................................................................... 21

2.3.1 Définition .................................................................................................................. 21

2.3.2 Fonctions principales d’un SGBD........................................................................... 21

2.3.3 Les différents types d’utilisateurs d’un SGBD ........................................................ 22

2.3.4 Avantages des systèmes de gestion de base de données........................................... 23

2.4 Modèle de données .......................................................................................................... 24

2.4.1 Modèle relationnel .................................................................................................... 24

2.4.2 Modèle entité relation ............................................................................................... 24

2.4.3 Modèle de données semi-structuré........................................................................... 24

2.4.4 Modèle de données relationnel objet ....................................................................... 25

2.5 Mise en œuvre d’un système de gestion de base de données ....................................... 25

2.5.1 Modèle Conceptuel des Données ............................................................................. 25

2.5.2 Modèle logique des données..................................................................................... 26

2.5.3 Modèle Physique des Données ................................................................................. 26

2.6 Fonctionnement de la base de données de l’application ............................................. 27

2.6.1 Serveur Laragon ....................................................................................................... 27

iii
2.6.2 phpMyAdmin ............................................................................................................ 28

2.6.3 Modélisation en langage UML ................................................................................ 29

2.6.4 Diagramme de cas d’utilisation ............................................................................... 30

2.6.5 Diagramme de classe ................................................................................................ 31

2.7 Conclusion ....................................................................................................................... 36

CHAPITRE 3 MISE EN ŒUVRE ET FONCTIONNEMENT DU SYSTEME ................. 37

3.1 Introduction .................................................................................................................... 37

3.2 Présentation du thème .................................................................................................... 37

3.2.1 Définition d’une Alerte criminelle ........................................................................... 37

3.2.2 Contexte du thème .................................................................................................... 37

3.2.3 Importance du Thème .............................................................................................. 37

3.2.4 Objectifs du projet .................................................................................................... 37

3.3 Les technologies utilisées ................................................................................................ 38

3.3.1 CodeIgniter ............................................................................................................... 38

3.3.2 VueJS ........................................................................................................................ 39

3.3.3 Leaflet JS .................................................................................................................. 39

3.4 Installation de l’application ........................................................................................... 40

3.5 Application au niveau utilisateur .................................................................................. 41

3.6 Application au niveau administrateur .......................................................................... 45

3.6.1 Page d’authentification ............................................................................................ 45

3.6.2 Page de redirection du Super Administrateur ......................................................... 46

3.7 Conclusion ....................................................................................................................... 51

CHAPITRE 4 PRESENTATION – RESULTATS – INTERPRETATIONS : ETUDE DE


CAS « ATTAQUE A MAIN ARMEE » ....................................................................................... 52

4.1 Introduction .................................................................................................................... 52

4.2 Signalement d'une alerte ................................................................................................ 52

iv
4.3 Présentation de l’étude de cas : l’impact sur la sécurité publique ............................. 53

4.3.1 Exemple des cas pratique ......................................................................................... 53

4.3.2 Résultats de la présentation ..................................................................................... 54

4.3.3 Interprétation des Résultats ..................................................................................... 55

4.3.4 Avantages de l'utilisation de l'application ............................................................... 55

4.4 Les recommandations et les perspectives futures pour l'application « Alerte


Criminelle ». ............................................................................................................................... 55

4.5 Conclusion ....................................................................................................................... 56

CONCLUSION GENERALE ...................................................................................................... 57

ANNEXES ...................................................................................................................................... 58

ANNEXE 1 : LES AUTRES OUTILS DE DEVELOPPEMENT WEB .................................. 58

A1.1 Langage de balisage d’hypertexte (HTML) .................................................................. 58

A1.3 Visual Studio Code (VS Code) ......................................................................................... 58

A1.3.1Définition ..................................................................................................................... 58

A1.3.2Les caractéristiques clés de Visual Studio Code ......................................................... 59

A1.3.3La compatibilité de VSCode ........................................................................................ 59

ANNEXE 2 : EXTRAIT DE CODE SOURCES ........................................................................ 60

A2.1 : Au niveau administrateur .............................................................................................. 60

A2.2 : Au niveau utilisateur ...................................................................................................... 60

BIBLIOGRAPHIE ........................................................................................................................ 61

FICHE DE RENSEIGNEMENTS ............................................................................................... 63

v
NOTATIONS
Abreviations

API Application Programming Interface

BDD Base De Données

CAPTCHA Completely Automated Public Turing test to tell Computers and Humans Apart

CERN Centre Européen pour la Recherche Nucléaire

CGI Common Gateway Interface

CSS Cascading Style Sheets

E-R Entité-Relation

FTP File Transfert protocol

HTML HyperText MarkupLanguage

HTTP Hypertext Transfer Protocol

HTTPS Hypertext Transfer Protocol Secure

ID Identifiant

IP Internet Protocol

JS JavaScript

JSON JavaScript Object Notation

LMD Logiciel de Management de Données

MCD Modèle Conceptuel des Données

MERISE Méthode d'Étude et de Réalisation Informatique pour les Systèmes d'Entreprise

MLD Modèle logique des données

MPD Modèle Physique des Données

MVC Model-View-Controller

NCSA National Center for Supercomputing Applications

vi
PHP Hypertext Preprocessor

PWA Progressive Web Application

SCSS Syntactically Awesome Style Sheets

SGBD Système de Gestion de Base de Données

SGBDH Système de Gestion de Base de Données Hiérarchique

SGBDR Système de Gestion de Base de Données Relationnels

SMS Short Message Service

SPA Single Page Application

SQL Structured Query Language

UML Unified Modeling Language

URL Uniform Resource Locator

WWW Word Wide Web

XHTML Extensible HTML

XML eXtensible Markup Language

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 Généralités sur le web


1.2.1 Définition
Le Web est un système d'information mondial et interconnecté qui facilite l'accès et le partage de
documents et de ressources sur Internet. Il représente une composante essentielle d'Internet, qui est
le réseau mondial reliant de nombreux ordinateurs entre eux. Grâce au Web, les utilisateurs peuvent
naviguer, consulter des pages, accéder à des informations, et partager des données à travers le
monde. [1]

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]

• HTTP : est le protocole de communication communément utilisé pour transférer les


ressources du Web. HTTPS est la variante sécurisée de ce protocole.
• URL : est une chaine de caractères respectant un schéma de construction bien précise. Il
permet d’accéder à une ressource donnée, via internet. Dans le web cette ressource est un
document ou un fragment.
• Hyper lien : est une référence dans un système hypertexte permettant de passer
automatiquement d’un document consulté a un document lié. Les hyperliens sont notamment
utilisés dans le world wide web pour permettre le passage d’une page web à une autre d’un
simple clic. Un hyperlien a une source (origine) et une destination (cible).
• Hyper Text : Un système HyperText est un système contenant des nœuds liés entre eux par
des hyperliens permettant de passer automatiquement d’un nœud a un autre. Un nœud est
une unité minimale d’informations.
• HTML et XHTML : ce sont les langages informatiques permettant de décrire le contenu d’un
document (titres, paragraphes…) et d’y inclure des hyperliens. Un document HTML est un
document décrit avec le langage HTML. Les documents HTML sont les ressources les plus
consultées du Web.
• Un serveur Web est un hôte sur lequel fonctionne un serveur HTTP (ou serveur Web). Un
serveur Web héberge les ressources qu’il dessert.
• Un navigateur Web : c’est un logiciel client HTTP conçu pour accéder aux ressources du
Web. Sa fonction de base est de permettre la consultation des documents HTML disponibles
sur les serveurs HTTP. Le support d’autres types de ressource et d’autres protocoles de
communication dépend du navigateur considéré.
• Page web : Une page web est une ressource du World Wide Web conçue pour être consulter
par des visiteurs à l’aide d’un navigateur web. Techniquement, une page web est souvent
constituée d’un document en HTML et d’images.
• Un éditeur HTML (ou éditeur Web) est un logiciel conçu pour faciliter l’écriture de
documents HTML et de pages Web en général.

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é.

1.3 Le site web


1.3.1 Définition
Un site internet est un ensemble de pages web qui sont reliées entre elles et accessibles par
l’intermédiaire d’un navigateur web. Il est généralement construit avec des langages de
programmation tels que HTML, CSS, JavaScript et PHP. Un site web peut contenir des informations,
des images, des vidéos, des fichiers, des applications et bien plus encore. [2]

1.3.2 Classification des sites web


Nous pouvons les regrouper en différentes catégories en fonction de leurs objectifs, de leur contenu
et de leur structure. Voici quelques-unes des classifications courantes :

1.3.2.1 Les sites web statiques


On appelle site web statique la création d’un site internet composé de pages web statiques. Une page
est dite statique lorsque son contenu est fixe, invariable quel que soit l’utilisateur qui la consulte,
contrairement aux pages d’un site web dynamique dont le contenu s’affiche en fonction d’une
demande de l’utilisateur. [3]

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.

Figure 1.01 : Site web statique

1.3.2.2 Les site web dynamiques


Un site web dynamique est un site dont le contenu peut être généré dynamiquement, c’est à dire que
ce contenu s’affichera en fonction de l’utilisateur qui le consulte ou d'autres paramètres. Les sites
web dynamiques sont créés dans des langages plus complexes que les sites web statiques (ou site
vitrine) et incluent l’utilisation de bases de données, ce qui offre bien plus de possibilités de
développement que pour un site web statique.[3]

Les avantages d’un site web dynamique :

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

1.4 Développement d’application web


Dans le monde interconnecté d'aujourd'hui, les applications web sont devenues des outils
omniprésents qui transforment la manière dont nous interagissons avec l'information, les services et
les entreprises en ligne.

1.4.1 De quoi s’agit-il ?


L'un des aspects essentiels pour clarifier complètement le concept d’application web est d'aborder
le développement d'applications web. Le développement mentionné ici fait référence à la création
de l'application, une étape qui implique l'utilisation de solutions de programmation pour définir à la
fois son apparence visuelle et les fonctionnalités qu'elle offrira.

Figure 1.03 : Schéma de l’architecture d’une application web

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.

Le nombre grandissant de documents publiés a rendu rapidement les moteurs de recherche


nécessaires pour les retrouver : l'utilisateur entre un mot clé, le serveur Web effectue la recherche,
puis envoie le résultat sous forme d'un document.

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]

1.4.4 Les caractéristiques d’une application web


Voici les principales caractéristiques de l'application web :

• Elles nécessitent un développement unique pour tout appareil. Un seul développement en


HTML5 suffit pour n’importe quel système d’exploitation.

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]

1.4.5 L'utilisation d'une application web


L'utilisation d'une application web dépend de son but, de ses fonctionnalités. L'utilisateur commence
par accéder à l'application web en utilisant un navigateur web. Il peut taper l'URL de l'application
dans la barre d'adresse ou cliquer sur un lien. Si l'application nécessite un compte utilisateur,
l'utilisateur peut s'inscrire en fournissant des informations personnelles, s'il a déjà un compte, il peut
simplement se connecter. Une fois connecté, l'utilisateur peut naviguer à travers l'interface de
l'application en utilisant des liens, des boutons et des menus. L'utilisateur peut utiliser les
fonctionnalités de l'application en fonction de son objectif. Les utilisateurs peuvent gérer leur
compte en mettant à jour leurs informations personnelles, en modifiant leur mot de passe ou en
supprimant leur compte si nécessaire. Lorsque l'utilisateur a terminé sa session, il peut se
déconnecter de l'application

1.4.6 Principes de fonctionnement


Elle est en général basée sur HTML, JavaScript ou PHP et CSS ou SCSS. Étant donné qu’une telle
application est chargée depuis un serveur Web et exécutée via un navigateur Web, il n’y
a donc aucune installation à prendre en charge. Néanmoins l’utilisation d’un signet ou raccourci
permet l’accès direct à l’application depuis le bureau ou l’écran d’accueil d’un appareil mobile.

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.

• Applications Web dynamiques

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.

• Applications à page unique

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.

• Applications Web progressives

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]

1.4.8 L’application web progressive


Le projet développé dans ce mémoire utilise comme type d’application web progressive. On va voir
en détail l’application web progressive.

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]

1.4.8.2 Un peu d’histoire


L’histoire des PWA remonte aux années 2000, lorsque les technologies web ont évolué de documents
statiques (HTML) à des solutions dynamiques exécutées côté serveur (PHP).

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 !

1.4.8.3 Les caractéristiques techniques de la PWA [10]


• Sécurisée : utilise le HTTPS
• Rapide
• Utilisable hors-ligne
• Avec un ou plusieurs services workers pour faire fonctionner des tâches en arrière-plan.

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]

1.4.9 Les avantages des applications web


Examinons les nombreux avantages offerts par cette application web, qui la distinguent comme une
solution précieuse dans le monde numérique moderne.

• 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.

De nombreuses applications fonctionnent selon un environnement client-serveur. Cela signifie que


des machines clients (des machines faisant partie du réseau) contactent un serveur, une machine
généralement très puissante en termes de capacité d’entrée-sortie, qui leur fournit des services. Ces
services sont des programmes fournissant des données telles que l’heure ; des fichiers, une
connexion, etc. [13]

1.4.10.2 Compréhension Approfondie du Modèle Client-serveur


Le modèle de communication Client-serveur est orienté vers la fourniture de services par un
Processus serveur à un processus client. Un échange consiste donc en la transmission d’une Requête
à un serveur, qui exécute l’opération demandée et envoi en retour la réponse.

Nous Définissons ci-dessous plus précisément ces concepts de bases.

• 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

1.4.11 La technologie utilisée pour une application web


1.4.11.1 Le côté client dans une Application Web (Front-end)
Il s’agit de la programmation de tous les éléments que l’utilisateur voit sur les sites web et les
applications web. Le développeur front se spécialise dans le développement web au niveau du client.
Son travail consiste à placer des éléments graphiques qui serviront de repère à l’utilisateur final sur
l’interface. Ainsi, sa prise en main sera facilitée. C’est au développeur front-end que revient la
création des animations, des interactions, du responsive design, etc.

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.

1.4.11.2 Le côté serveur dans une application Web (Back-end)


Une belle interface ne sert à rien si une équipe de développement back-end n’intervient pas sur
l’application et le serveur du site web ainsi que sur celui de l’application mobile. Même si le
développeur back-end agit en coulisse et qu’il est invisible pour l’utilisateur final, sans son travail,
l’application ne verra pas le jour.

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.

c) Comment fonctionne une API ?


Les API permettent d'accéder aux fonctions ou aux données d'une application à distance à partir
d'une autre application, par l'intermédiaire d'une interface applicative standard. Le logiciel sollicité
reçoit une requête dans un langage universel. Ce langage employé par les API permet au logiciel
cible de comprendre la requête, puis de transmettre les données demandées.

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

d) Les différents types d'API


• Les APIs internes dites privées qui ne sont pas accessibles à un tiers et ne serviront qu’à
l’amélioration de la communication entre des équipes en faisant se parler les différents
logiciels utilisés.
• Les APIs partenaires sont mises à la disposition d’un groupe bien défini d’utilisateurs
externes. C’est le cas, entre autres, lorsqu’un partenariat se crée entre 2 entreprises ayant des
expertises métiers complémentaires. Une licence sera souvent mise en place pour
l’utilisation de l’interface de programmation.
• Les APIs ouvertes, aussi appelées APIs publiques, sont accessibles à toute organisation.
C’est notamment le choix qu’a fait Axial Ys pour permettre à ses clients d’intégrer aisément
sa suite logicielle Saas à leurs outils métiers.
• Les APIs composites vont quant à elles pouvoir combiner plusieurs interfaces de
programmation pour traiter des comportements complexes ou interdépendants. Elles vont
ainsi améliorer la vitesse d’exécution des requêtes et donc les performances d’un
logiciel.[18]

e) Architecture d'une API


Les API se composent de trois parties :

Utilisateur : la personne qui fait une demande

Client : l'ordinateur qui envoie la demande au serveur

Serveur : l'ordinateur qui répond à la demande

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]

1.4.11.4 La communication entre front-end et back-end


La communication entre le front-end et le back-end d'une application web est semblable à une
conversation fluide où le front-end envoie des requêtes pour demander des informations ou effectuer
des actions, tandis que le back-end répond en fournissant les données nécessaires ou en confirmant
l'exécution réussie des opérations, assurant ainsi une expérience utilisateur cohérente et
interactive.[20]

1.4.12 Les étapes de la création d’une application web


Il est nécessaire de prendre par quelques étapes pour aboutir à une application web prête à être
utilisée.[21]

• 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]

1.5 Différence entre site web et application web


Il existe de nombreuses autres distinctions entre les sites web et les applications web, bien que
certaines soient moins significatives. Par exemple, les applications web reposent sur des bases de
données et un programme qui explore ces bases pour afficher des informations aux utilisateurs,
tandis que les sites web sont principalement construits à partir de contenus statiques.

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.

2.2 Notions générales d’une base de données


2.2.1 Données et informations
Le terme « données » peut être défini comme des faits connus qui pourraient être enregistrés et
stockés sur un support informatique. Il est également défini comme des faits bruts à partir desquels
les informations requises sont produites.

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.

2.2.2 Base de données


Une BDD est un ensemble organisé de données modélisant les objets d’une partie du monde réel et
servant de support à une application informatique. C’est une collection de données interdépendantes
stockées pour servir une ou plusieurs applications de manière optimale. Il est également défini
comme une collection de données liées logiquement, stockées ensemble et conçues pour répondre
aux besoins d'information d'une organisation.[22]

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.

Ceux-ci sont décrits brièvement comme suit :

• 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.

2.2.3 Objectifs d’une base de données


Parmi les principaux objectifs visés par une base de données, on peut citer :

2.2.3.1 Partage de l’information


Une base de données permet le partage d’un ensemble unique d’informations par plusieurs
utilisateurs. Cependant, il faut que cette mise en commun soit faite tout en préservant la vue
particulière que chaque utilisateur peut avoir des informations, et en s’assurant que la simultanéité
des traitements qui peuvent être effectués ne risque pas de dégrader l’intégrité de la base de données.

2.2.3.2 Organisation des données indépendamment des programmes


Afin de construire une base de données structurée, non redondante et partageable, il est essentiel de
transcender les traitements spécifiques d'utilisateurs ou de programmes. L'organisation des données
doit se baser sur leur nature et leurs liens réels, assurant ainsi une indépendance entre les données
et les programmes. Cette approche favorise la réutilisation des données et la flexibilité d'utilisation,
sans nécessiter de modifications majeures. Elle améliore également l'efficacité de la gestion de
l'information et permet une évolutivité accrue des systèmes informatiques.

2.2.4 Rôle d’une Base de données


Contrairement aux approches classiques, la création d’une base de données qui soit partagée par
plusieurs utilisateurs est le reflet d’une évolution dans la gestion de l’entreprise. Son rôle est de
rendre possible :

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.

Ceci a pour avantages :

• 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 Systèmes de gestion de bases de données


L’exploitation d’une base de données nécessité la mise en place d’un système informatique appelé
communément : système de gestion de base de données.

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]

2.3.2 Fonctions principales d’un SGBD


Le SGBD remplit les cinq fonctions principales suivantes :

• 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]

2.3.3 Les différents types d’utilisateurs d’un SGBD


Il s’agit donc de voir les différents rôles que doivent jouer un individu ou un groupe d’individus
pour concevoir, créer, mettre en œuvre et exploiter une base de données.

2.3.3.1 L’administrateur de la base de données


On désigne ainsi la ou les personnes chargées d’établir une description des données constituant la
base. Souvent, on utilise le terme ‘‘ Administrateur de l’entreprise’’ pour désigner les personnes
chargées de la description formelle des données de la base pour souligner l’ouverture vers le monde
réel de ce rôle, et on réserve le terme ‘‘Administrateur de la base’’ pour désigner les personnes
chargées de l’aspect plus technique de la création de la base : choix de l’organisation des fichiers,
des structures de mémoires secondaires, des méthodes d’accès aux données, etc.

2.3.3.2 L’administrateur d’application


Il est chargé de décrire la portion de la base de données concernée par une application particulière.
En effet, dans la pratique chaque application n’est concernée que par une portion plus ou moins
importante des données de la base. Cette description sera utilisée par les programmes qui vont
constituer l’application en question. Ces derniers ne verront donc la base de données que par cette
description.

2.3.3.3 Le programmeur d’application


Il est chargé d’élaborer les programmes pour exploiter la base de données en fonction de la
description qui a été faite par l’administrateur d’application. Le programmeur d’application utilise
le LMD offert par le SGBD ainsi que d’autres sous-programmes conservés généralement dans une
librairie.

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.

2.3.4 Avantages des systèmes de gestion de base de données


Par rapport à un simple système de stockage de fichier, voici qq avantages des SGBDs :

• 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é.

2.4.1 Modèle relationnel


Le modèle relationnel utilise une collection de tables pour représenter à la fois les données et les
relations entre ces données. Chaque table a plusieurs colonnes et chaque colonne a un nom unique.
Les tables sont également appelées relations.

Le modèle relationnel est un exemple de modèle basé sur des enregistrements.

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]

2.4.2 Modèle entité relation


Le modèle de données entité-relation (E-R) utilise une collection d'objets de base, appelés entités,
et des relations entre ces objets. Une entité est une « chose » ou un « objet » dans le monde réel qui
se distingue des autres objets. Le modèle de relation entité-relation est largement utilisé dans la
conception de bases de données.

2.4.3 Modèle de données semi-structuré


Le modèle de données semi-structuré permet la particularisation de données de même type. C’est-
à-dire, les éléments (individuels) de données du même type peuvent avoir différents ensembles
d'attributs.

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.

Le JSON et le XML sont des moyens de représentation de données semi-structurées largement


utilisées.

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.

2.5 Mise en œuvre d’un système de gestion de base de données


La construction d'une base de données commence par une phase d'analyse. Cela se fait au moyen
de méthodes d'analyse comme Merise3 ou UML4. Cette analyse conceptuelle permet de se
représenter le fonctionnement du système d'informations pour lequel on cherche à construire une
base de données.

2.5.1 Modèle Conceptuel des Données


Le Modèle Conceptuel des Données (ou Modèle entité-association), permet de représenter la
structure du système d'information, du point de vue des données, et définit également les
dépendances ou relations entre ces différentes données.

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 :

• pourvu d'une existence propre


• conforme aux besoins de gestion de l'entreprise

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

2.5.2 Modèle logique des données


Le MLD consiste à décrire la structure de données utilisée sans faire référence à un langage de
programmation. Il s'agit donc de préciser le type de données utilisées lors des traitements.

Ainsi, le modèle logique est dépendant du type de base de données utilisé.

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.

2.5.3 Modèle Physique des Données


Construire le MPD consiste à transformer le MLD en une suite de relations. Cette étape finalise le
processus de traitement des données. L’implémentation des bases de données peut être réalisée de
façon optimale.

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]

2.6 Fonctionnement de la base de données de l’application


2.6.1 Serveur Laragon
Dans le cadre de notre projet visant à développer l'application, le choix d'un environnement de
développement adéquat revêt une importance décisive. Nous avons opté pour Laragon en tant que
plateforme logicielle pour simplifier le processus de développement, de test et de démarrage de
notre application web.

2.6.1.1 Définition de Laragon


Laragon est une plateforme logicielle gratuite conçue pour simplifier le développement et la gestion
d'applications web en utilisant des technologies populaires de développement web telles que PHP,
Apache, MySQL, MariaDB, et plus encore. Il est principalement utilisé sur les systèmes
d'exploitation Windows et offre un environnement pratique aux développeurs pour créer, tester et
déployer des applications web en local. [25]

Figure 2.02 : Logo Laragon

2.6.1.2 Pourquoi Laragon ?


Laragon est une solution logicielle largement reconnue pour sa facilité d'utilisation et sa
compatibilité avec les technologies de développement web les plus populaires, notamment PHP,
Apache, MySQL, et MariaDB. En choisissant Laragon, nous avons cherché à tirer parti de ses
fonctionnalités avancées, de sa convivialité et de sa stabilité, ce qui nous permet de concentrer notre
attention sur la conception et le développement de l'application sans les tracas liés à la configuration
du serveur.

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.

2.6.2.1 Définition de phpMyAdmin


PhpMyAdmin est un logiciel libre écrit en PHP qui a pour mission de s’occuper de l’administration
d’un serveur de base de données MySQL ou MariaDB. Il peut être utilisé pour réaliser la plupart
des tâches d’administration, ceci incluant la création de base de données, l’exécution de demandes,
et l’ajout de comptes utilisateur. [26]

Figure 2.03 : Logo phpMyAdmin

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.

Importation et exportation de données : nous avons utilisé les fonctionnalités d'importation et


d'exportation de phpMyAdmin pour migrer des données entre notre environnement de
développement local et le serveur de production, ce qui nous a permis de maintenir la cohérence des
données à chaque étape du développement.

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.

2.6.3 Modélisation en langage UML


Le diagramme UML est un outil essentiel pour modéliser la structure, et le comportement de notre
système logiciel. Il nous permet de représenter graphiquement les différentes composantes de notre
application.

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.

2.6.4 Diagramme de cas d’utilisation


Le diagramme de cas d'utilisation est une représentation visuelle. Il offre une vue d'ensemble des
interactions entre une application et ses utilisateurs. Ce diagramme met l'accent sur les
fonctionnalités fournies par notre plateforme et la manière dont les utilisateurs interagissent avec
ces fonctionnalités. L'objectif de ce diagramme de cas d'utilisation est de définir, de manière claire,
les différentes fonctionnalités offertes par l’application du point de vue de l'utilisateur.

Envoie alerte

Utilisateur « include » « include »

Inscrire
Authentifier

« include »

Modification profile

Figure2.04 : Diagramme de cas d’utilisation l’application côté client.

30
Remplir formulaire

S’inscrire

Utilisateur

S’authentifier

Saisir numéro téléphone


et code d’accès

Figure2.05 : Diagramme de cas d’utilisation inscription côté client.

Envoie ALERTE

S’authentifier Changer de profil

Utilisateur

Déconnexion

Figure 2.06 : Diagramme de cas d’utilisation envoi alerte et mis à jour

2.6.5 Diagramme de classe


Le diagramme de classe a été utilisé pour représenter la structure statique de notre système. Nous
avons identifié les principales classes du système, telles que les clients, les alertes, les districts, etc.,
Ainsi que les attributs et les relations entre ces classes. Cette visualisation nous a permis de
concevoir une base de données qui renvoie avec précision la structure de notre application.

31
Figure 2.07 : Diagramme de classe

2.6.5.1 Explication du Diagramme


Le but principal d'un diagramme de classe, qui fait partie de la modélisation UML, est de représenter
la structure statique d'un système logiciel. Plus précisément, un diagramme de classe permet de
visualiser les classes, les attributs, et les relations entre ces éléments dans un système. Voici les
principaux objectifs d'un 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.

• Identification des Classes

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 ».

• Définition des Attributs

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.

« Alertes » : IdAlerte, IdClient, IdUser, Details, IdDistrict, IdDistrictZone, IdForce, Statut.

« Groupes » : IdGroupe, nomGroupe.

« Districts » : IdDistrict, nomDistrict.

« District_zones » : Id DistrictZones, nomZone, IdDistrict.

« Forces » : IdForce, nomForce, IdGroupe, IdDictrict, IdDistrictZone.

« Privileges » : IdPrivilege, nomPrivilege

« Users » : IdUser, Nom, Prenom, Login, Email, Password, Grade, IdGroupe, IdDistrict,
IdDistrictZone, IdForce, IdPrivilege.

• Relations entre les Classes

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.

2.6.5.2 Description des classes du système


Pour mieux comprendre la structure et l'organisation de notre application, examinons de près le
schéma de la base de données que nous avons élaboré.

• 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 »

Chaque enregistrement dans la table « privilèges » représente un administrateur. Cela inclut


généralement des membres du personnel chargés de surveiller et de gérer le bon fonctionnement de
l'application, ainsi que de prendre des décisions importantes liées à la sécurité et à l'administration
globale. La table permet d'identifier rapidement tous les administrateurs actifs de la plateforme. Cela
simplifie la gestion des comptes administratifs et garantit que seuls les utilisateurs autorisés ont
accès à des fonctionnalités spécifiques, telles que la gestion des utilisateurs, la gestion des alertes
ou la modification des paramètres de l'application. Les données de cette table sont essentielles pour
gérer les accès et les responsabilités des administrateurs. Les administrateurs peuvent être ajoutés,
supprimés ou leurs privilèges peuvent être modifiés en utilisant cette table comme point de
référence.

• 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 »

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.

3.2 Présentation du thème


3.2.1 Définition d’une Alerte criminelle
Une alerte criminelle est une notification ou un message émis pour signaler une activité ou un
incident criminel. Il peut s'agir d'une alerte envoyée par des témoins ou des victimes d'un crime pour
informer les autorités de l'application de la loi de l'incident en cours ou passé.

3.2.2 Contexte du thème


La montée de la criminalité, en particulier les vols et les intrusions, exige une réponse proactive
pour garantir la sécurité. C'est dans ce contexte que notre projet a pris forme. Nous avons cherché à
profiter la technologie moderne pour résoudre un problème persistant : la confidence efficace entre
les citoyens et les forces de l'ordre.

3.2.3 Importance du Thème


L'importance de notre thème réside dans sa capacité à renforcer la sécurité publique tout en
favorisant la confiance et la collaboration entre les membres de la société et les autorités
responsables de leur protection. La rapidité de réaction en cas d'incident criminel peut faire la
différence entre la prévention d'un crime et sa résolution. En donnant aux témoins la possibilité de
signaler rapidement des activités suspectes, notre application vise à diminuer le taux de criminalité
et à déployer la perception de sécurité.

3.2.4 Objectifs du projet


Les objectifs de notre projet sont variés. Tout d'abord, nous cherchons à développer une application
accessible à tous, quel que soit leur niveau de compétence technologique. Ensuite, nous aspirons à
rapprocher la police et la population en facilitant la transmission d'informations décisives. Notre
objectif ultime est d'améliorer la sécurité publique en réduisant les temps de réponse des autorités
aux incidents signalés.

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.

3.3.1.2 Raison du choix CodeIgniter


On a choisi CodeIgniter car il est reconnu pour sa simplicité et sa légèreté. Il offre une structure
minimale et ne nécessite pas une courbe d'apprentissage dure, ce qui le rend idéal pour les projets
de taille moyenne et les développeurs qui souhaitent un Framework facile à prendre en main.
CodeIgniter est optimisé pour des performances élevées.

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.

Figure 3.01 : Logo CodeIgniter

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.

3.3.1.3 Architecture MVC

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.

Figurer 3.02 : Architecture MVC

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.

Il simplifie le processus de construction d'applications web en permettant aux développeurs de


structurer leur code de manière modulaire et de réagir efficacement aux changements de données en
temps réel. Vue.js se concentre sur la création de composants réutilisables, facilitant ainsi le
développement et la maintenance des applications web.

Figure 3.03 : Logo Vue.JS

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.

Figure 3.04 : Logo Leaflet JS

3.4 Installation de l’application


Une des fonctionnalités essentielles de notre application Alerte Criminelle est sa capacité à être
installée progressivement (PWA). Cette approche révolutionnaire de développement web offre de
nombreux avantages à nos utilisateurs.

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.

Voyons comment est cette application au niveau des administrateurs :

3.5 Application au niveau utilisateur


Dans cette partie, nous allons commencer l'interface de l'application du point de vue des utilisateurs,
concernant sur les fonctionnalités et les interactions disponibles pour les clients d'Alerte Criminelle.
Voici un aperçu des principales fonctionnalités de l'interface utilisateur :

3.5.1.1 Page d’inscription


Avant de pouvoir profiter de toutes les fonctionnalités de notre plateforme, les utilisateurs doivent
s'inscrire à créer leur compte personnel.

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

3.5.1.2 Page de connexion


En cliquant sur « Se connecter », l’utilisateur sera redirigé vers la page de connexion.

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 le numéro de téléphone saisi, l'application génère automatiquement un code de


confirmation unique. Ce code est envoyé par SMS au numéro de téléphone de l'utilisateur. Il s'agit
d'une mesure de sécurité supplémentaire pour s'assurer que seule la personne ayant accès au numéro
de téléphone peut se connecter. L'utilisateur saisit le code de confirmation reçu par SMS dans le
champ dédié sur la page de connexion.

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.

Figure 3.06 : La page de connexion

3.5.1.3 Page d'accueil


Une fois connectés, les utilisateurs sont redirigés vers la page d'accueil de l'application. C'est ici que
les utilisateurs ont accès à toutes les fonctionnalités principales et peuvent interagir avec
l'application de différentes manières.

• 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.

• Ajout de détails à l'Alerte

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.

Figure 3.07 : La page d’accueil

• 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.

Figure 3.08 : La page de changement du profil

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.

3.6 Application au niveau administrateur


Cette partie s’inclinera sur les aspects techniques de notre application. Dans notre système, l'accès
et les responsabilités des utilisateurs sont différenciés en fonction de leur rôle, grâce à ce que nous
appelons les « Privilèges », nous accordons les privilèges à différents types d'utilisateurs pour
assurer une gestion efficace de la plateforme tels que Super administrateur, Opérateur et chaque
utilisateur a des rôles avec leurs responsabilités.

3.6.1 Page d’authentification


Cette fonctionnalité permet à l’administrateur de se connecter c’est-à-dire d'ouvrir une session afin
d'avoir accès à son compte. Pour se connecter, l’administrateur doit diriger vers la page de connexion
et saisir correctement son identifiant et son mot de passe. Ici nous avons trois types de compte tels
que « Super administrateur », « Opérateur », et « Responsable », et après connexion ils seront
redirigés vers la page spécifique selon leurs types.

Figure 3.09 : La page de connexion côté administrateur

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.

3.6.2 Page de redirection du Super Administrateur


Dans la partie gauche de l'interface, on trouve une liste de menus tels que

• Gestion des privilèges


• Dashboard
• Notification
• Gestions des groupes
• Gestion des districts
• Gestions des zones de district
• Force
• Gestion des utilisateurs

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.

Figure 3.11 : La page de l’information du client

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.

• Gestion des privilèges

Dans ce menu, nous conservons la liste des administrateurs. Ils jouent des rôles distincts et essentiels
dans le bon fonctionnement de notre plateforme.

Quant à le Super Administrateur, il a pour responsabilité de gérer, superviser, et prendre des


décisions importantes au sein du système. Il peut créer, modifier et supprimer des comptes
d'utilisateurs, attribuer des rôles et des autorisations aux utilisateurs.

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.

Figure 3.12 : La listes des privilèges

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.

Figure 3.13 : Liste des groupes de la force de l’ordre

• Gestion des districts

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.

Figure 3.14 : Liste des districts

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.

Figure 3.15 : Liste des zones des districts

• 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.

Figure 3.16 : Liste des zones des Forces

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.

Figure 3.17 : Liste des utilisateurs

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.

L’objectif de ce chapitre est de démontrer comment l’application va au-delà d’une simple


application technologique pour devenir un acteur majeur de l’impact social, en rapprochant les
citoyens des autorités et en contribuant à la prévention et à la résolution des incidents criminels.

4.2 Signalement d'une alerte

Envoie alerte
Opérateur
Clients

Reçoivent

Figure 4.01 : Requête Client-Serveur

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.

4.3 Présentation de l’étude de cas : l’impact sur la sécurité publique


4.3.1 Exemple des cas pratique
1er cas : L’attaque du camp de la nonne à Vakinankaratra.

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.

2em cas : Attaque à main armée à Antsapandrano Ilafy

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)

À 20h00, l'attaque du camp de la nonne débute, et un témoin appelle immédiatement le numéro


d'urgence de la police.

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.

Cas 2 : Attaque à main armée à Antsapandrano Ilafy (20h02)

À 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.

4.3.2 Résultats de la présentation


Cette étude de cas illustre clairement les limites du système téléphonique traditionnel en cas de
situations d'urgence multiples. Les lignes téléphoniques d'urgence peuvent rapidement devenir
saturées, retardant ainsi la réponse des autorités et compromettant la sécurité publique. C'est ici que
l'application Alerte Criminelle entre en jeu, offrant une solution plus efficace pour signaler et gérer
les incidents.

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.

4.3.3 Interprétation des Résultats


L'analyse des résultats de l'étude de cas met en évidence plusieurs conclusions importantes quant à
l'impact de l'Application Alerte Criminelle sur la sécurité publique. Ces conclusions soulignent
l'importance de cette application en tant qu'outil essentiel pour améliorer la réponse aux incidents
criminels et renforcer la sécurité.

4.3.4 Avantages de l'utilisation de l'application


• L'utilisation de l'application « Alerte Criminelle » élimine la nécessité d'une conversation en
temps réel avec un opérateur, ce qui permet aux citoyens de signaler des incidents en
quelques secondes seulement. Cela réduit considérablement le temps nécessaire pour
signaler un incident, garantissant ainsi une réponse plus rapide des autorités.
• En évitant l'occupation de la ligne téléphonique d'urgence, l'application permet à davantage
de citoyens de signaler des incidents en même temps sans rencontrer de congestion. Cela
garantit que chaque signalement est pris en compte sans délai.
• Les alertes générées par l'application peuvent contenir des informations détaillées sur la
situation, ce qui permet aux autorités de mieux comprendre la gravité de l'incident avant leur
arrivée sur les lieux. Cela peut contribuer à une meilleure préparation des forces de l'ordre.

4.4 Les recommandations et les perspectives futures pour l'application « Alerte


Criminelle ».
Intégrer un service de messagerie (comme Twilio) permettra d'améliorer la communication avec les
utilisateurs de l'application. Cela peut être particulièrement utile pour informer rapidement les
utilisateurs des mises à jour importantes, des changements de statut de leurs alertes ou pour leur
fournir des informations critiques en temps réel.

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.

L'intégration d'un système de CAPTCHA contribuera à renforcer la sécurité de l'application en


empêchant les robots automatisés d'accéder au système. Les utilisateurs devront résoudre un défi
CAPTCHA pour prouver qu'ils sont des êtres humains, ce qui réduira les risques liés aux activités
malveillantes.

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.

Le processus d’installation de l’application en tant qu’application web progressive (PWA) rendre


accessible à un large public. Le fonctionnement de l’application du point de vue de l’utilisateur, en
mettant en évidence l’interface utilisateur et le flux d’alertes de l’utilisateur au niveau
administrateur.

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

ANNEXE 1 : LES AUTRES OUTILS DE DEVELOPPEMENT WEB


A1.1 Langage de balisage d’hypertexte (HTML)
HTML, acronyme de HyperText Markup Language (en français, Langage de balisage hypertexte),
est le langage de programmation standard utilisé pour créer et structurer le contenu des pages web.
Il s'agit d'un langage de balisage, ce qui signifie qu'il utilise des balises pour décrire la structure
logique d'une page web, comme les titres, les paragraphes, les listes, les images, les liens
hypertextes, etc.

Figure A1.01 : Logo HTML

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.

Figure A1.02 : Logo Bootstrap

A1.3 Visual Studio Code (VS Code)


A1.3.1Définition
Visual Studio Code (VS Code) est un environnement de développement intégré léger, gratuit et open
source développée par Microsoft. Conçu pour répondre aux besoins des développeurs de logiciels

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.

Figure A1.03 : logo du Visual Studio Code

A1.3.2Les caractéristiques clés de Visual Studio Code


• Polyvalence : VSCode prend en charge une variété de langages de programmation et de
technologies, ce qui le rend adaptable à différents types de projets, qu'ils soient frontend,
backend, mobile, web, ou autres.
• Débogage Intégré : VSCode propose un système de débogage intégré qui permet aux
développeurs d'identifier et de résoudre les erreurs plus rapidement et efficacement.
• Terminal Intégré : VSCode propose un terminal intégré qui vous permet d'exécuter des
commandes directement depuis l'IDE.
• Extensions : Le marché des extensions de VSCode propose des milliers d'extensions créées
par la communauté et les développeurs tiers. Ces extensions ajoutent des fonctionnalités
spécifiques, allant de la coloration syntaxique avancée à l'intégration avec des services
cloud.

A1.3.3La compatibilité de VSCode


La compatibilité de VSCode est l'une de ses caractéristiques les plus appréciées, car il est conçu
pour être adaptable à une variété de langages de programmation et de technologies. Voici quelques
points clés concernant la compatibilité de VSCode :

• Langages de Programmation : VSCode prend en charge une large gamme de langages de


programmation couramment utilisés. Que vous travailliez avec JavaScript, Python, Java,
PHP, C++, ou bien d'autres langages.
• Extensions : Une des forces majeures de VSCode réside dans son écosystème d'extensions.
Des milliers d'extensions sont disponibles via le marché VSCode, ce qui nous permet
d'ajouter des fonctionnalités spécifiques pour le langage. Ces extensions vont de la coloration
syntaxique aux outils de débogage, en passant par des intégrations avec des plateformes.
• Systèmes d'Exploitation : VSCode est compatible avec plusieurs systèmes d'exploitation, y
compris Windows, macOS et Linux.

59
ANNEXE 2 : EXTRAIT DE CODE SOURCES
A2.1 : Au niveau administrateur

Figure A2.01 : District.php

A2.2 : Au niveau utilisateur

Figure A2.02 : Alert.vue

60
BIBLIOGRAPHIE
[1] M. LOUKAM, « Technologies et services Web ». Consulté le 09 Août 2023.

[2] « Création de site internet », https://www.taktilcommunication.com/glossaire/projets-et-


sites-internet/site-web.html, 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.

[4] « Application Web - Définition et Explications », https://www.techno-science.net/glossaire-


definition/Application-Web.html#ref_2, (Consulté le 09 Août 2023).

[5] M. Nicolas, « Définition d'une application web », (Publié le 30 avril 2019).

[6] « Développement d'une application web »,https://fr.yeeply.com/blog/5-types-developpement


d-applications-web/, (Consulté le 09 Août 2023).

[7] « Qu’est-ce qu’une application Web ? », https://groupeshift.ca/fr/blog/qu-est-ce-qu-une-


application-web/, (Consulté le 14 Sept 2023).

[8] D. Yoan « Progressives Web App », https://www.yoma-web.com/conseils referencement/


developpement-web/quest-ce-quune-pwa-progressives-web-app, Publié le 19 Oct 2020.

[9] « Les Progressive Web App (PWA) : Définition, fonctionnalités et fonctionnement »,


https://tous-les-jeudis.fr/les-progressive-web-app-pwa-definition-fonctionnalites-fonctionnement/,
Publié le 17 janvier 2023, mis à jour le 17 Avril 2023.

[10] « Pourquoi utiliser une progressive web app ? », https://www.next-decision.fr/wiki/la-


progressive-web-app-pwa, Publié le 06 Nov 2018.

[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.

[13] « Architecture client-serveur », https://www.geonov.fr/architecture-client-serveur/, Publié le


2017.

[14] O. GARDARIN, « Le client Serveur », Edition Eyrolles, 1996.

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).

[16] « Une API, qu'est-ce que c'est ? », https://www.redhat.com/fr/topics/api/what-are-


application-programming-interfaces, Publié le 19 Mai 2022.

[17] « Qu'est-ce qu'une API et comment l'utiliser ? », https://blog.hubspot.fr/website/application-


programming-interface, Publié : Oct 2022.

[18] « Intégration d'applications et d'API », https://www.talend.com/fr/resources/rest-api/,


(Consulté le 12 Août 2023).

[19] « Architecture API », https://geekflare.com/fr/api-architecture-explained/, mis à jour le 31


Mai 2023.

[20] « Qu’est-ce que le développement frontend et backend », https://easypartner.fr/blog/front-


end-et-back-end-quelles-sont-les-differences, Publié le 01 Juin 2022.

[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.

[22] M. ANDRIANARISON, « Base de données », Cours L2 – TCO, Dép. TCO – E.S.P.A.,


A.U. : 2020 – 2021.

[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.

[25] B. Louis « Définition de Laragon », https://bility.fr/definition-laragon/, Carré des Affaires


by CCI ; F-62100 Calais, France.

[26] W. Luke, T. Laura, « Cours PHP & MySQL », 4e édition, Copyright © 2009 by Pearson
Education, Inc.

62
FICHE DE RENSEIGNEMENTS
Nom : RAKOTONDRANAIVO

Prénoms : Sendra Tsilavina Mampionona

Adresse : Lot CF 149 bis Ambodiafontsy

E-mail : rak.sendramampionona@gmail.com

Tel : + 261 34 51 353 94

Titre du mémoire :

MISE EN ŒUVRE D’UN SYSTEME ALERTE CRIMINELLE

Nombres de pages : 64

Nombres de figures : 35

Mots clés : Alerte, Sécurité, Criminelle, Application Web Progressive, Publique

Directeur de mémoire : Monsieur RASAMOELINA Jacques Nirina

E-mail : zanisam43@gmail.com

Tel : +261 34 44 946 12

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.

Mots Clés : Alerte, Sécurité, Criminelle, Application Web Progressive, Publique

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.

Keywords : Alert, Security, Criminal, Progressive Web Application, Public

Vous aimerez peut-être aussi