Rapport de Staage 23-24
Rapport de Staage 23-24
Rapport de Staage 23-24
Par
Banaoues Ashraf
5, Avenue Taha Hussein – Tunis Tel. : 71 496 066 :الهاتف شارع طه حسين ـ تونس،5
B. P. 56, Bab Menara 1008 Fax : 71 391 166:فاكس 1008 باب منارة56 :. ب.ص
Dédicace
Je dédie ce projet à mes chers parents, mes professeurs et à tous mes collègues.
I
Remerciements
Avant d'entamer la rédaction de ce rapport, je saisis cette opportunité pour adresser mes
premiers remerciements à Monsieur Ahmed Aounallah , mon encadrant. Son encouragement
tout au long de ce projet ainsi que sa généreuse contribution en termes de formation et de
supervision ont grandement contribué à sa réalisation.
Mes sincères remerciements s'adressent également aux membres du jury, dont je suis honorée
qu'ils aient accepté d'évaluer notre travail. Votre participation donne une dimension
significative à mes efforts, et je vous en suis reconnaissante.
II
Table des matières
Introduction générale.................................................................................................................. 6
Chapitre 1. Présentation du cadre du projet ........................................................................ 7
1. Présentation de l’entreprise ........................................................................................ 7
Devagnos .............................................................................................................. 7
2. Contexte du projet ...................................................................................................... 8
.3 Description du travail demandé.................................................................................. 8
Chapitre 2. Etude détaillée ................................................................................................ 10
1. Spécification des besoins ......................................................................................... 10
1.1 Identification des acteurs .................................................................................... 10
1.2 Identification besoins fonctionnels..................................................................... 11
1.3 Identification des besoins non fonctionnels ....................................................... 12
2. Présentation du dictionnaire des données épuré ....................................................... 13
3. Règles de gestion ...................................................................................................... 14
4. Modèle conceptuel de données ................................................................................ 15
5. Modèle logique de données ...................................................................................... 16
Chapitre 3. Etude technique .............................................................................................. 19
1. Environnement matériel ........................................................................................... 19
2. Environnement logiciel ............................................................................................ 19
3. Méthode de travail .................................................................................................... 22
4. Modèle physique de données ................................................................................... 24
Chapitre 4. Réalisation et mise en œuvre .......................................................................... 26
1. Architecture globale de la solution........................................................................... 26
2. Réalisation du site web ............................................................................................. 26
2.1 Page d’accueil ................................................................................................. 27
2.2 Authentification .............................................................................................. 27
2.3 Inscription ....................................................................................................... 28
2.4 Profil de l’utilisateur ....................................................................................... 30
2.5 Dashboard du Développeur ............................................................................ 31
2.6 Lancement d’un nouveau projet ..................................................................... 33
Conclusion générale ................................................................................................................. 34
Bibliographie ............................................................................................................................ 35
III
Table des figures
IV
Table des tableaux
Tableau 1: Dictionnaire des données épuré.............................................................................. 14
Tableau 2: Règles de gestion .................................................................................................... 15
Tableau 3: Environnement matériel ......................................................................................... 19
Tableau 4: Environnement logiciel .......................................................................................... 22
V
Introduction générale
Ce stage d'été revêt une importance particulière dans mon parcours, car il m'a
permis de développer et de mettre en application les compétences et les
connaissances que j'ai acquises au cours de ma première année au cycle ingénieur
à l'École Nationale Supérieure d'Ingénieurs de Tunis. J'espère que ce rapport sera
une source d'inspiration pour les étudiants et les professionnels du domaine de
l'informatique, tout en reflétant mon engagement envers l'apprentissage continu,
l'innovation, et l'excellence.
6
Chapitre 1. Présentation du cadre du projet
Introduction
Dans cette section introductive, nous allons éclairer l'entreprise qui sert de toile de fond à
notre projet et offrir une vue d'ensemble des circonstances qui entourent notre mission. Cette
introduction vise à établir le contexte du travail qui nous a été confié.
1. Présentation de l’entreprise
Devagnos
Fondée en 2015 , Devagnos est spécialisée dans les solutions basées sur le web et les
applications mobiles. Nous offrons des solutions de pointe avec les dernières
technologies mondialement reconnues.
Implantée dans l'une des principales villes de Tunisie, Monastir, Devagnos a pour
mission de fournir des services sans faille à nos clients. Cela leur permet de construire
des projets et des campagnes durables et réussis plus facilement.
Son équipe expérimentée de développeurs et d'experts collabore de manière
transparente pour faciliter la mise en œuvre et la pérennité de leurs projets de
communication, de création de sites Internet, d’applicatifs web et de créativité
graphique..
7
Dans un paysage numérique en constante évolution, où la sécurité et l'innovation sont
primordiales, Devagnos reste à l'avant-garde des avancées technologiques. Elle intègre
systématiquement chaque projet de mesures de sécurité robustes et de solutions
ingénieuses, préparant ainsi l'avenir des entreprises de ses clients.
2. Contexte du projet
L'entreprise "Devagnos" a évolué au fil des ans pour devenir un acteur majeur de l'industrie du
développement de jeux vidéo et de sites web. Cette évolution s'accompagne d'une croissance
constante du nombre de clients, de projets, et de besoins variés. Les clients de Maher Dev sont
divers, allant des petites start-ups aux grandes entreprises, chacun ayant des exigences
spécifiques en matière de développement. Cependant, la gestion efficace des besoins et leur
conversion en spécifications techniques claires et compréhensibles sont devenus un défi majeur
dans ce contexte dynamique. Le besoin d'une solution permettant de rationaliser ce processus
est devenu évident. C'est dans ce contexte que le projet "Application Web pour la Recueil des
Besoins des Clients et leur Conversion en Spécifications Techniques" prend tout son sens, en
visant à améliorer la manière dont l'entreprise gère les besoins des clients et à renforcer sa
compétitivité sur le marché en garantissant une communication transparente et efficace.
• Analyse approfondie des besoins des clients pour la définition des fonctionnalités de
l'application.
• Conception de l'architecture de l'application, y compris l'interface utilisateur, les bases
de données, les fonctionnalités de collecte des besoins et de conversion en
spécifications techniques.
• Développement de l'application en utilisant des technologies web modernes,
garantissant la convivialité, la sécurité et la performance.
• Intégration de fonctionnalités de communication en temps réel pour la collaboration
entre les clients et l'équipe de développement.
8
• Mise en œuvre de mesures de sécurité et de confidentialité pour protéger les données
sensibles des clients.
• Tests rigoureux pour garantir la qualité de l'application.
• Formation et soutien des utilisateurs, y compris les clients et le personnel de
l'entreprise.
• Documentation complète du projet, y compris des manuels d'utilisation, des guides de
maintenance, et des rapports de suivi.
Conclusion
Ce premier chapitre joue un rôle fondamental pour établir les bases de notre travail à venir.
Dans ces pages initiales, nous avons présenté en détail l'entreprise qui nous a accueillis et avons
clarifié les contours du projet, ainsi que les responsabilités qui nous incombent. Alors que nous
aborderons le chapitre suivant, notre attention se portera sur une analyse approfondie du projet,
jetant ainsi les fondations nécessaires pour la suite de notre rapport de stage.
9
Chapitre 2. Etude détaillée
Introduction
Ce chapitre présente une spécification détaillée des besoins essentiels adressés par notre
application web "Recueil des Besoins des Clients et Initiation des Projets". Il inclut également
une version simplifiée du dictionnaire des données, les règles de gestion, ainsi que les modèles
conceptuel et logique de données (MCD et MLD).
La spécification des besoins représente le point de départ crucial pour tout projet de
développement d'application. Pendant cette phase, nous allons définir les exigences de notre
application et les regrouper en deux catégories : les besoins fonctionnels et les besoins non
fonctionnels.
L'identification des acteurs est une étape essentielle dans la spécification des besoins de
l’application. Il est primordial de comprendre qui interagira avec l'application et quel sera leur
rôle.
Un acteur peut être défini comme étant une abstraction d’un rôle joué par une entité externe au
système.
Dans le cadre de notre solution, nous avons identifié les acteurs suivants :
• Les Clients : Les clients de l'entreprise "Devagnos" seront les principaux utilisateurs de
cette application. Ils seront chargés de soumettre leurs besoins et de collaborer avec
l'équipe de développement pour les projets en cours.
10
• L'Équipe de Développement : Les développeurs, les chefs de projet et d'autres membres
de l'équipe interne de "Devagnos" joueront un rôle crucial dans la gestion des besoins
clients, la transformation de ces besoins en spécifications techniques et leur réalisation.
• Les Administrateurs : Les administrateurs de l'application auront pour tâche de gérer les
comptes d'utilisateurs, de garantir la sécurité des données, de superviser les projets et
d'assurer le bon fonctionnement de la plateforme.
• Les Responsables de Projet : Ils assureront la coordination des projets et veilleront à ce
que les spécifications techniques soient respectées.
Les besoins fonctionnels de l'application sont les fonctionnalités spécifiques que les acteurs
utilisent pour accomplir leurs tâches. Ils définissent comment l'application doit répondre aux
exigences des utilisateurs.
➢ La partie back-office :
11
• La transformation des besoins des clients en spécifications techniques claires et
compréhensibles.
➢ La partie front-office :
• Sécurité :
12
- Authentification : Mise en place d'un système d'authentification robuste avec gestion
des rôles et permissions.
• Performances :
• Convivialité : Une interface utilisateur intuitive et conviviale pour tous les acteurs de
l'application.
• Compatibilité et Conception Adaptative : Garantir que l'application est accessible et
fonctionnelle sur les appareils de bureau, les tablettes et les mobiles grâce à une
conception adaptative.
13
Id Projet Numérique (30) 30 Identifiant unique du
projet
Type Projet Caractère variable (20) 20 Type du projet
(web/jeu vidéo)
Description du Projet Texte (500) 500 Description du projet
soumis par le client
Date de Soumission du Date/Heure - Date de soumission du
Projet projet par le client
État du Projet Texte (20) 20 État actuel (en cours,
terminé, etc.)
Id Tâche Numérique (30) 30 Identifiant unique de la
tâche
Description de la Tâche Texte (500) 500 Description de la tâche
soumise par le client
État de la Tâche Texte (20) 20 État actuel de la tâche
(à faire, en cours,
terminé, etc.)
IdSpécifications Numérique (30) 30 Identifiant unique des
Techniques spécifications
techniques
Détails Techniques Texte (1000) 1000 Détails techniques
décrivant comment la
tâche doit être mise en
œuvre
3. Règles de gestion
Les règles de gestion sont importantes, car elles définissent les normes et les directives
essentielles pour la gestion des données. Elles garantissent la cohérence, l'intégrité et la sécurité
des informations stockées dans la base de données, contribuant ainsi à la fiabilité et à l'efficacité
du système.
14
Nom Description Type de règle
Chaque utilisateur du site est
identifié par son identifiant
Utilisateur unique, un nom, un prénom, Description
par son adresse mail unique,
un mot de passe et son poste.
Le Client est un utilisateur
inscrit dans le site identifié
Clients par son identifiant unique, un Description
nom, un prénom, par son
adresse mail unique, un mot
de passe.
Un Projet est décrit par son
identifiant unique, son Type,
Projet une description, un état et des Description
règles.
15
notre MCD, où les données sont représentées par les entités et les règles par les associations.
Cette représentation est visualisée dans la figure suivante.
tâches
se
i d_tâche <pi > Numéri que (30) <O> Heri tage_5 Heri tage_4
composer
descri pti on T exte (500) <O>
état_tâche T exte (20) <O> 1,n
avancement_tâche Numéri que (100) <O>
i d_tâche <pi >
... Heri tage_7
Heri tage_6
spec_techni que
détai l _techn i que T exte (50) <O>
16
Le modèle logique de données est la transformation concrète du modèle conceptuel de données.
Il est essentiel pour le développement de l'application, car il établit la structure précise dans
laquelle les données seront stockées dans la base de données.
Le MLD de notre étude de cas est présenté dans la figure ci-dessous.
Figure 3: Modèle logique de données
client
utilisateur
Heritage_1 id-util <pi> Numérique (30) <O>
id-util <pi> Numérique (30) <O>
Nom Caractère variable (50) <O>
Nom Caractère variable (50) <O>
Prenom Caractère variable (50) <O>
Prenom Caractère variable (50) <O>
AdMail Caractère variable (20) <O>
AdMail Caractère variable (20) <O>
Mdpasse Caractère variable (20) <O>
Mdpasse Caractère variable (20) <O>
Rôle Caractère variable (20) <O>
Rôle Caractère variable (20) <O>
Nom_entreprise Caractère variable (50) <O>
id-util <pi>
id-util <pi>
...
...
Heritage_2
Lancer
développeur
id-util <pi> Numérique (30) <O>
Nom Caractère variable (50) <O>
Prenom Caractère variable (50) <O>
AdMail Caractère variable (20) <O>
Projet
Mdpasse Caractère variable (20) <O>
Rôle Caractère variable (20) <O> id_projet <pi> Numérique (30) <O>
département Caractère variable (50) <O> id-util <fi> Numérique (30) <O>
type_projet Caractère variable (50) <O>
id-util <pi>
description_proj Texte (500) <O>
...
Date_soumission Date & Heure <O>
chargée par état_proj Texte (20) <O>
se composer
avancement_proj Numérique (100) <O>
id_projet <pi>
chargée par
...
id-util <pi,fi2> Numérique (30) <O> se composer
id_tâche <pi,fi1> Numérique (30) <O>
id_projet <pi,fi1> Numérique (30) <O>
Identifiant_1 <pi> id_tâche <pi,fi2> Numérique (30) <O> Heritage_5 Heritage_4
...
Identifiant_1 <pi>
...
se composer
chargée par
Heritage_7
tâches
id_tâche <pi> Numérique (30) <O>
description Texte (500) <O>
état_tâche Texte (20) <O>
avancement_tâche Numérique (100) <O>
id_tâche <pi>
...
Heritage_6
app mobile
id_projet <pi> Numérique (30) <O>
id-util Numérique (30)
type_projet Caractère variable (50) <O>
description_proj Texte (500) <O>
Date_soumission Date & Heure <O>
état_proj Texte (20) <O>
avancement_proj Numérique (100) <O>
sys_exploitation Caractère variable (50) <O>
id_projet <pi>
...
17
Conclusion
Dans ce chapitre, nous avons défini avec précision les besoins fonctionnels et non fonctionnels
du projet, identifié les acteurs clés, et créé un diagramme de cas d'utilisation ainsi qu'un
dictionnaire de données. Le Modèle Conceptuel de Données (MCD) a été élaboré pour
représenter les entités et leurs relations. Ces étapes nous ont dotés d'une base solide pour la
conception et la mise en œuvre de notre projet, et le prochain chapitre se concentrera sur les
aspects techniques et la création du Modèle Logique de Données (MLD).
18
Chapitre 3. Etude technique
Introduction
Dans ce chapitre, nous allons tout d’abord décrire l’environnement matériel et logiciel, ensuite
créer la base de données à partir du modèle conceptuel des données (MCD) et enfin procéder à
son alimentation.
1. Environnement matériel
Ce projet a été réalisé en utilisant un ordinateur ayant les caractéristiques suivantes :
Caractéristique PC
Ram 24 GO
2. Environnement logiciel
Le tableau 4 résume les logiciels que nous avons utilisés dans notre travail.
20
MySQL est un système de gestion de
base de données relationnelle
développé
par Oracle qui est basé sur un langage
de requête structuré (SQL). Avec
MySQL
MySQL, on peut créer des systèmes de
stockage de données rapides, puissants
et sécurisés. [7]
21
optimiser le retour sur investissement
dans
la pile technologique d’Oracle
Database [10].
3. Méthode de travail
❖ Scrum Agile
Pour structurer notre travail, nous avons adopté la méthodologie Scrum agile dans notre
approche de gestion de projet. Scrum favorise la collaboration, la flexibilité et la
communication au sein de l'équipe de développement. Il repose sur des cycles de travail appelés
"sprints", généralement d'une durée de deux à quatre semaines, au cours desquels l'équipe se
concentre sur des objectifs spécifiques.
22
Figure 4: Méthode Scrum
Nous avons utilisé la plateforme Trello pour subdiviser les tâches et estimer leur durée. Cette
approche nous a permis de mieux organiser notre travail et d'optimiser la gestion de projet.
Figure 5: Trello
23
❖ Git et GitHub
Nous avons également utilisé Git et GitHub pour le contrôle de version et la gestion de notre
code source.
Git est un système de gestion de versions décentralisé qui nous a permis de suivre les
modifications apportées au code et de collaborer efficacement au sein de l'équipe de
développement.
Figure 6: Git
GitHub, quant à lui, est une plateforme de développement collaborative basée sur Git, où nous
avons hébergé notre projet, suivi les problèmes, effectué des révisions de code et facilité la
collaboration avec d'autres contributeurs. Ces outils ont grandement contribué à la gestion
fluide de notre projet.
Figure 7: GitHub
24
cl i ent
uti l i sateur
i d-uti l NUMBER(30) <pk,fk>
i d-uti l NUMBER(30) <pk>
Nom VARCHAR2(50)
Nom VARCHAR2(50)
Prenom VARCHAR2(50)
Prenom VARCHAR2(50)
AdMai l VARCHAR2(20)
AdMai l VARCHAR2(20)
Mdpasse VARCHAR2(20)
Mdpasse VARCHAR2(20)
Rôl e VARCHAR2(20)
Rôl e VARCHAR2(20)
Nom_entrepri se VARCHAR2(50)
...
...
dével oppeur
i d-uti l NUMBER(30) <pk,fk>
Nom VARCHAR2(50)
Prenom VARCHAR2(50)
AdMai l VARCHAR2(20)
Proj et
Mdpasse VARCHAR2(20)
Rôl e VARCHAR2(20) i d_proj et NUMBER(30) <pk>
département VARCHAR2(50) i d-uti l NUMBER(30) <fk>
... type_proj et VARCHAR2(50)
descri pti on_proj CLOB
Date_soumi ssi on DAT E
état_proj CLOB
avancement_proj NUMBER(100)
se composer
...
chargée par i d_proj et NUMBER(30) <pk,fk1>
i d-uti l NUMBER(30) <pk,fk2> i d_tâche NUMBER(30) <pk,fk2>
i d_tâche NUMBER(30) <pk,fk1>
tâches
i d_tâche NUMBER(30) <pk>
descri pti on CLOB
état_tâche CLOB
avancement_tâche NUMBER(100)
...
web j eu vi déo
spec_techni que
i d_proj et NUMBER(30) <pk,fk> i d_proj et NUMBER(30) <pk,fk>
i d_tâche NUMBER(30) <pk,fk>
i d_templ ate NUMBER(30) <pk> i d-uti l NUMBER(30)
descri pti on CLOB
état_tâche CLOB i d-uti l NUMBER(30) type_proj et VARCHAR2(50)
type_proj et VARCHAR2(50) descri pti on_proj CLOB
avancement_tâche NUMBER(100)
descri pti on_proj CLOB Date_soumi ssi on DAT E
détai l _techn i que CLOB
... Date_soumi ssi on DAT E état_proj CLOB
état_proj CLOB avancement_proj NUMBER(100)
avancement_proj NUMBER(100) ...
domai ne CLOB
...
app mobi l e
i d_proj et NUMBER(30) <pk,fk>
i d-uti l NUMBER(30)
type_proj et VARCHAR2(50)
descri pti on_proj CLOB
Date_soumi ssi on DAT E
état_proj CLOB
avancement_proj NUMBER(100)
sys_expl oi tati on VARCHAR2(50)
...
Conclusion
Dans ce chapitre, nous avons présenté les étapes de développement de notre application en
exposant d’abord l’environnement matériel et logiciel ainsi que les choix technologiques et les
outils adoptés.
25
Chapitre 4. Réalisation et mise en œuvre
Introduction
26
2.1 Page d’accueil
La première page que les visiteurs découvriront en arrivant sur notre site est la page d'accueil.
Cette page est ouverte à tous les utilisateurs.
2.2 Authentification
27
Figure 11: Page d'authentification
2.3 Inscription
Cette figure représente l'interface par laquelle Nos Clients peuvent s'inscrire et enregistrer leurs
informations dans la base de données.
28
Après la création du compte, avec des informations valides, la page de connexion s’affiche
directement avec un message de validation. Le client peut désormais se connecter à notre
plateform à travers som mail et le mot de passe qu’il a créé.
29
En créant un nouveau compte, des messages d’erreurs peuvent être affichés dans des
différents cas :
30
Figure 16: Profil de l'utilisateur
31
Figure 17: Dashboard utilisateur
32
2.6Lancement d’un nouveau projet
En cliquant sur le Bouton « Get Started ! » dans la page d’accueil, et en sélectionnant le type
du Projet (un site web dans cet exemple), le système vous envoie à la page du lancement du
projet où on trouve un formulaire bien guidé pour définir les Principaux besoins du client
suivant des templates où une description fournie par le client.
33
Conclusion
Le dernier segment de ce chapitre s'est concentré sur la présentation des résultats obtenus avec
notre plateforme, notamment en ce qui concerne l'architecture et les interfaces de la solution
achevée.
Après une première évaluation, il est clair que nous pouvons ressentir une certaine satisfaction
quant à la performance de notre solution. Toutefois, nous reconnaissons également qu'il existe
des opportunités d'amélioration significatives pour mieux répondre aux besoins à une échelle
plus large et pour continuer à évoluer en adéquation avec les attentes des utilisateurs et les
développements technologiques.
Conclusion générale
34
Bibliographie
https://angular.io/
https://flask.palletsproject
s.com/en/2.2.x/
https://github.com/
https://www.w3schools.co
m/
https://material.angular.io/
https://getbootstrap.com/
https://www.mysql.com/fr/
35
Résumé
Ce projet réaliѕé au ѕein de Devagnos, ѕ’inѕcrit danѕ le cadre de notre Stage d’été au ѕein de
l’École Nationale Ѕupérieure d’Ingénieurѕ de Tuniѕ. Il conѕiѕte à concevoir et développer une
application web permettant aux clients de spécifier leurs besoins et initialiser leurs projets en
coordination avec les développeurs de l’entreprise afin de faciliter la communication . Pour le
conduire, nouѕ avonѕ utiliѕé la méthodologie Agile Ѕcrum et pour le réaliѕer nouѕ avonѕ utiliѕé
certains logiciels de développement web et de gestion de base de données comme HTML, CSS,
Angular, PHP, MySQL.
Motѕ cléѕ : Spécifier les besoins, initiation des projets, HTML, CSS, Angular, PHP , MySQL.
Abstract
This project, carried out at Devagnos, is part of our Summer Internship at the National School
of Engineers in Tunis. It involves designing and developing a web application that allows clients
to specify their needs and initiate their projects in coordination with the company's developers
to facilitate communication. To manage it, we used the Agile Scrum methodology and, for its
implementation, we used various web development and database management software such as
HTML, CSS, Angular, PHP, and MySQL.
Keywords: Specifying needs, project initiation, HTML, CSS, Angular, PHP, MySQL.
الملخص
. هو جزء من فترة التدريب الصيفي لدينا في المدرسة الوطنية للمهندسين بتونس، الذي تم تنفيذه في ديفاغنوس،هذا المشروع
.يشمل تصميم وتطوير تطبيق يتيح للعمالء تحديد احتياجاتهم وبدء مشاريعهم بالتنسيق مع مطوري الشركة لتسهيل التواصل
استخدمنا العديد من برامج تطوير الويب وإدارة قواعد البيانات مثل، ولتنفيذهAgile Scrum استخدمنا منهجية،إلدارته
.MySQL وPHP وAngular وCSS وHTML
MySQL ،PHP ،Angular ،CSS ،HTML ، بدء المشروع، تحديد االحتياجات:الكلمات الرئيسية
36