République Tunisienne
Ministère de l’Enseignement Supérieur
et de la Recherche Scientifique
Génie
Université de Sfax Informatique Industrielle
Ecole Nationale d’Electronique et des
Télécommunications de Sfax
RAPPORT DE STAGE D’ETE
Présenté à
L’Ecole Nationale d’Electronique et des
Télécommunications de Sfax
Génie Informatique Industrielle
par
Malek douki
Conception et réalisation de la partie
Backend d’une application de recherche de
logement « ikri »
Effectuée au sein de
Année Universitaire : 2022-2023
TABLE DE MATIERE
INTRODUCTION GENERALE : .................................................................................. 5
Chapitre : Cadre général ................................................................................................. 6
INTRODUCTION ....................................................................................................... 7
I. CADRE DE PROJET ............................................................................................... 7
II. PRESENTATION DE L’ORGANISME D’ACCUEIL ......................................... 7
II.1. Présentation du la société ............................................................................... 7
III. CONTEXTE .......................................................................................................... 7
III.1. Présentation du projet .................................................................................. 7
Analyse de l’existence ................................................................................... 8
III.3. Critique de l’existence ................................................................................ 10
III.4. Proposition de solutions .............................................................................. 12
CONCLUSION .......................................................................................................... 12
Chapitre : Réalisation .................................................................................................... 13
Introduction ................................................................................................................ 14
I. SPRINT 1 : Gestion d’authentification .................................................................. 14
I.1 Analyse du besoin ............................................................................................ 14
I.2 Description du sous cas d’utilisation Authentification ................................ 14
I.3 Diagramme de séquence Authentifier : login ............................................... 15
I.4 Diagramme d’activité du cas d’utilisation ” Inscription ” .......................... 15
I.5 Réalisation ........................................................................................................ 16
I.5.1 Login : ........................................................................................................ 16
I.5.2 Registre....................................................................................................... 18
II. SPRINT 2 : géré publication et annonce ............................................................... 19
II.1 Description de sous cas d’utilisation «géré publication et annonce » ....... 19
II.2 Diagramme de cas d’utilisation «géré publication et annonce » ............... 20
II.3 Diagramme de séquence « ajouter annonce » ............................................. 20
II.4 Réalisation ...................................................................................................... 21
Conclusion ................................................................................................................. 22
CONCLUSION GENERALE :..................................................................................... 23
LISTE DES FIGURES
Figure 1: logo beecoders ................................................................................................. 7
Figure 2: Groupe location Monastir ................................................................................ 8
Figure 3: Groupe location Sfax ....................................................................................... 8
Figure 4: groupe location Tunis ...................................................................................... 9
Figure 5: interface TECNOCASA ................................................................................ 10
Figure 6 : interface Menzili........................................................................................... 10
Figure 7 : diagramme de clase "authentifier" ............................................................... 15
Figure 8: diagramme de séquence s'authentifier ........................................................... 15
Figure 9: Diagramme d’activité du cas d’utilisation ” Inscription ” ............................ 16
Figure 10 : capture Postman si le login est positive ..................................................... 17
Figure 11 : vérification d'existence de user par enregistrement base de donnée .......... 17
Figure 12 : capture Postman si login négative .............................................................. 17
Figure 13 : registre d'un utilisateur ............................................................................... 18
Figure 14 : registre avec même nom ............................................................................. 18
Figure 15 : registre avec même nom d'utilisateur ......................................................... 19
Figure 16 : cas d'utilisation géré publication et annonce .............................................. 20
Figure 17 : Diagramme de séquence publier une annonce ........................................... 20
Figure 18 : capture postman authorization ................................................................... 21
Figure 19 : ajouter annonce........................................................................................... 21
LISTE DES TABLEAUX
Tableau 1: Mettre en œuvre des solutions existantes ............................................................... 11
Tableau 2 : tableau descriptif du sous cas d'utilisation «géré publication et annonce » Erreur !
Signet non défini.
INTRODUCTION GENERALE :
Trouver un logement est une nécessité de vie, mais ces jours-là trouver un appartement
ou un colocataire devient une mission de plus en plus très difficile surtout pour les internautes
vue le charge concentré sur les grands gouvernorats. Les méthodes traditionnelles existantes
comme facebook présente quelques fois des trafics et une grande difficulté de recherche.
Dans ce contexte s’inscrit l’objet de ce présent projet, qui nous a été proposé par la société
« bee coders », dans le cadre d’un stage de 2éme. Nous sommes appelés à concevoir et à
développer une application web pour la conception et la réalisation de la partie Backend d’une
application web pour location des appartements « ikri » afin d’améliorer la qualité des
recherches et de faciler ce mécanisme.
Ce rapport est composé de trois chapitres qui reflètent l’évolution du développement de
notre projet. Le premier chapitre intitulé Contexte général du projet mettra l’accent sur le cadre
général du projet, il est consacré à la présentation de l’entreprise au sein de laquelle nous avons
effectué notre projet ainsi que l’étude de l’existant, puis la problématique étudiée et la solution
que nous allons proposer.
Le deuxième chapitre intitulé Analyse et spécification des besoins est consacrée à la
présentation des différentes exigences de notre application. La première partie de ce chapitre
comporte la définition des besoins fonctionnels et non fonctionnels du projet .Ensuite, nous
décrirons également, la méthodologie adoptée pour réaliser notre solution. Ainsi l’étude
technique consacrée à présenter l’environnement de développement, les choix techniques, et
dernièrement l’architecture physique et logique de notre application.
Dans le troisième chapitre détaillera un premier sprint pour la gestion d’authentification
et un deuxième pour la gestion de publication et des annonces . Finalement, nous récapitulerons
notre travail avec une conclusion générale.
Chapitre : Cadre
général
INTRODUCTION
Afin de réussir les phases de conception et de développement, nous estimons qu’une étude
préalable doit être élaborée. Pour ceci, nous allons débuter par une présentation de cadre général
du projet et l’organisme d’accueil au sein duquel nous avons effectué notre stage. Ensuite nous
présentons les solutions existantes en dégageant la problématique correspondante.
I. CADRE DE PROJET
Ce projet intitulé « Conception et réalisation de la partie Backend d’une application de
recherche de logement (ikri) » s’englobe dans le cadre d’un projet de stage technicien au sein
de la société Bee coders.
II. PRESENTATION DE L’ORGANISME D’ACCUEIL
Pour réaliser ce travail nous sommes amenés à introduire l’organisme d’accueil
Beecoders dans lequel nous avons effectué notre stage.
II.1. Présentation du la société
Beecoders fondée en 2020, est une entreprise de services numérique spécialisée dans le
développement web et mobile (Android et IOS), le design web, le consulting IT et les
formations à distance.
La figure 1.1 représente le logo de la société beecoders
Figure 1: logo beecoders
III. CONTEXTE
III.1. Présentation du projet
Ikri est une application destinée non seulement pour les locateurs et les colocataires mais
aussi pour les gens qui veulent loyer ses appartements. L’application permet de consulter les
offres disponibles (annonces) ou de créer votre propre publication. Grace aux contraintes
imposées aux utilisateurs, en cour de la création de compte et au moment de publication de
contenu, et à la rubrique avis le risque de fraude diminue.
Chaque utilisateur a son propre compte pour gérer facilement ses favoris, ses publications,
ses réclamations.
Analyse de l’existence
En Tunisie, dans le temps le process de location c’est fait par la manière classique. Il
existe des groupes facebook pour, presque, chaque gouvernorat où les chercheurs peuvent
trouver leurs besoins.
Figure 2: Groupe location Monastir
Figure 3: Groupe location Sfax
Figure 4: groupe location Tunis
Aussi la 2éme méthode c’est sur place ou par les numéros écrit sur les murs dans des
endroits stratégiques.
De plus il y a quelque bureau de locations.
Mais, aujourd’hui il y a des solutions informatiques qui commencent à concurrencer les
méthodes classiques déjà cités précédemment.
Tel que :
- TECNOCASA : groupe d’agences immobilières qui fait un site web juste pour
consulter les offres de ve0nté et de location disponible dans chaque gouvernorat.
Figure 5: interface TECNOCASA
- Menzili : site web seulement pour la consultation des annonces de location maison
Figure 6 : interface Menzili
III.3. Critique de l’existence
Avantages Inconvénients
Méthode
-Il y a quelque groupe -Il n’y a pas de censure donc le
Groupe
qui possède d’un grand risque de cas de fraude augmente et
facebook
nombre. d’ailleurs plusieurs cas sont
enregistrés.
-Difficulté de recherche donc
plusieurs temps perdus
-Il y a des gens qui ne préfèrent
pas les réseaux sociaux.
-facile de trouver les -Détruit l’image de gouvernorat.
Les numéros
numéros. -Aide seulement en cas de
sur les murs
recherche d’appartement mais aucun
intérêt si vous chercher seulement une
place ou un binôme.
-Aucun stress il suffit -Très cher, c’est une
Bureau de
de dire les caractéristiques exploitation claire.
location
que vous voulez. -Aide seulement en cas de
recherche d’appartement mais aucun
intérêt si vous chercher seulement une
place ou un binôme.
- site claire depuis 9 -site seulement pour la
TECNOCASA
ans donc une base solide consultation des offres existante, il n’y
-protection contre les a pas la possibilité de publication
risques d’arnaque - payer le frais de la publication
-possibilité de filtrage de l’offre par cette l’agence
des offres
-protection contre les -site seulement pour la
Menzili
risques d’arnaque consultation des offres existante, il n’y
-possibilité de filtrage a pas la possibilité de publication
des offres - payer le frais de la publication
de l’offre par cette l’agence
Tableau 1: Mettre en œuvre des solutions existantes
Notre étude a montré que les solutions du marché ne sont pas assez suffisant et présente
plusieurs inconvénients qu’il exige une intervention.
III.4. Proposition de solutions
Pour lutter contre les inconvénients cités précédemment, nous avons proposé une
application web bien sécurisée qui répond exactement au besoin de citoyens. Pour ce faire nous
essayons de réaliser une application fiable qui fournit une recherche plus facile et efficace en
évitons toute sort de trafic ou d’exploitation braqué sur les chercheurs. Cette plateforme met en
contact directe les locateurs, les colocataires et les bailleurs donc l’utilisateur gagne de l’argent
car c’est gratuit et gagne de temps grâce au service de recherche.
CONCLUSION
Dans ce chapitre nous avons commencé par la présentation du cadre général du projet où
nous avons présenté l’entreprise d’accueil. Ensuite, nous avons dégagé la problématique à
travers l’étude de l’existence. Par la suite, nous avons proposé la solution en suivant les outils
existants sur le marché.
Chapitre :
Réalisation
Introduction
Au cours des chapitres précédents, on a détaillé les spécifications fonctionnelles à travers
le diagramme de cas d’utilisation. Maintenant nous entamons la conception et la réalisation de
différentes itérations de l’application.
I. SPRINT 1 : Gestion d’authentification
I.1 Analyse du besoin
En tant que « ikri » user, je souhaite m’authentifier à l’application en toute sécurité, pour
cela, on doit réaliser les taches suivantes :
- Concevoir la table des utilisateurs
- Affecter les rôles correspondants
- Développer le service d’authentification : pouvoir se connecter, utiliser spring
security et JWT pour gérer l’authentification.
I.2 Description du sous cas d’utilisation Authentification
Administration, utilisateur de « ikri »
Acteurs
Saisir email et mot de passe (si
scénario de base
l’utilisateur a déjà un compte)
Saisir email, nom d’utilisateur, mot de
passe, et téléphone (si c’est un nouvel
utilisateur)
Obtenir l’access token et le refresh
Postcondition
token (si l’utilisateur a déjà un compte)
Accéder à la plateforme (si c’est un
nouvel utilisateur).
Mot de passe ou email not valide (si
Exception
l’utilisateur a déjà un compte)
Nom d’utilisateur ou email already
existe (si c’est un nouvel utilisateur).
Le diagramme de classe dans la figure 7, permet de fournir une représentation abstraite
des objets du système qui vont interagir pour réaliser le cas d’utilisation présenté ci-dessous.
Figure 7 : diagramme de clase "authentifier"
I.3 Diagramme de séquence Authentifier : login
Le diagramme de séquence de la figure 11, illustre un mécanisme d’accès à une ressource
Rest à travers un client. Pour la sécurité de notre application on a opté pour JWT. En effet, pour
pouvoir accéder à la ressource Rest, le client doit avoir un token valide (non expiré) avec les
autorisations d’accès.
Figure 8: diagramme de séquence s'authentifier
I.4 Diagramme d’activité du cas d’utilisation ” Inscription ”
La phase d’inscription est indispensable pour accéder aux services de l’application. Ce
processus d’inscription d’un nouvel passager peut être résumé dans le diagramme d’activités .
Figure 9: Diagramme d’activité du cas d’utilisation ” Inscription ”
I.5 Réalisation
I.5.1 Login :
La première étape à suivre afin d’accéder aux fonctionnalités de l’application est
l’authentification. En effet chaque utilisateur dispose d’un login et d’un mot de passe qui lui
permet de se connecter à l’outil. Ou il peut juste créer un compte.
Figure 10 : capture Postman si le login est positive
Figure 11 : vérification d'existence de user par enregistrement base de donnée
Pour utiliser notre token, il faut tout d'abord le créer. Pour cela, il est nécessaire de
s'authentifier avec l’email et le mot de passe auprès de l’application afin que celle-ci nous
renvoie le token. Une fois le token obtenu, nous pouvons faire appel à nos URL sécurisées en
envoyant le token avec notre requête. Un contrôle de saisie prendra place pour vérifier la
cohérence des données saisies puis les données seront vérifiées dans la base de données. En cas
de succès, l’utilisateur sera redirigé vers la page d’accueil.
Figure 12 : capture Postman si login négative
Dans le cas contraire, si au moins l’un des données (email ou mot de passe) n’est pas
correct le serveur génère un status 403 qui signifie autorisation forbidden.
I.5.2 Registre
On essais d’ajouter un nouveau utilisateur
Figure 13 : registre d'un utilisateur
Si on répète la même opération avec le même email un message d’erreur s’affichera.
Figure 14 : registre avec même nom
Si on répète la même opération avec le même nom d’utilisateur un message d’erreur
s’affichera
Figure 15 : registre avec même nom d'utilisateur
II. SPRINT 2 : géré publication et annonce
II.1 Description de sous cas d’utilisation «géré publication et annonce »
«géré publication et annonce »
Nom du cas d’utilisation
« ikri » user
Acteur
Utilisateur préalablement connecté
Précondition
(rôle utilisateur)
Remplir le formulaire de la publication
à publier (pour louer un appartement)
Ecrire le contenu de l’annonce
(généralement pour chercher colocataire)
La publication (ou l’annonce) est
Scénario nominal
publié dans ce cas le contenu ajouté s’ajoute
au liste d’activité de cet utilisateur et
l’utilisateur peuvent supprimer/ modifier/
consulter
La page d’accueil est affichée
Post condition
Tableau 2: tableau descriptif du sous cas d'utilisation «géré publication et annonce »
II.2 Diagramme de cas d’utilisation «géré publication et annonce »
Nous avons détaillé le cas d’utilisation « poster publication et annonce »
Figure 16 : cas d'utilisation géré publication et annonce
II.3 Diagramme de séquence « ajouter annonce »
Le diagramme de séquence présentée dans la figure ci-dessous 17 illustre le déroulement
de l’opération « publier annonce ».
Figure 17 : Diagramme de séquence publier une annonce
II.4 Réalisation
Figure 18 : capture postman authorization
L’utilisateur doit tout d’abord s’authentifier à l’application, après login un token est
généré automatiquement par le JWT et qu’avec c’est token l’utilisateur peut accéder à son
compte pour publier.
Figure 19 : ajouter annonce
Conclusion
Tout au long de ce chapitre, nous avons réussi à produire un premier Sprint pour la gestion
d’authentification et un deuxième pour la gestion des annonces et publications.
CONCLUSION GENERALE :
Depuis des années, l’Humanité connaît une évolution exponentielle qui ne fait que
s’accroître avec l’essor des nouvelles technologies. Ces nouveautés ont toutes pour but
d’améliorer le quotidien et les conditions de vie de chacun en répondant aux besoins de notre
époque. En effet, Ces nouvelles technologies permettent de faciliter la vie des gens.
Pour cette raison, tout au long de ce projet nous avons conçu de développé une application
web permettant d’organiser le process de logement en Tunisie qui devient de plus en plus
difficile vue la croissance démographique et la migration des citoyens pour les nécessités de
vie. Grâce à notre application, l’utilisateur peut consulter la liste des offres de louer disponible
dans n’importe quel gouvernorat, et pour gagner de temps il peut filtrer les offres par prix ou
par gouvernorat, aussi s’il cherche seulement une place il peut consulter la liste des publications,
et bien sûr c’est un espace pour les bailleurs aussi. Notre travail, intitulé le développement de
la partie Backend d’une application de logement « Ikri » serre à gagner en terme de temps,
d’effort et d’argent. Tout au long de ce rapport, nous avons présenté les différentes étapes de la
réalisation de notre système. D’abord, nous avons présenté le cadre général du projet et nous
avons donné quelques exemples des solutions marchandes et une solution de la société à fin de
dégager nos besoins. Ensuite, nous avons analysé et spécifié les besoins fonctionnels et non
fonctionnels. Après, nous avons présenté l’environnement de travail en précisant l’ensemble
des logiciels, des technologies et des outils utilisés. Enfin, nous détaillé notre conception et
nous avons inséré quelques capture de réalisation.