Rapport de Stage
Rapport de Stage
Préparé Par:
Fatma al Jabri
TITRE :
Je tiens à remercier chaleureusement Monsieur Mohamed Ali Saadaoui pour son supervision et
ses conseils précieux tout au long de mon stage au Centre National d'Informatique (CNI). Son
soutien a été déterminant dans la réalisation de la conception du système d'inscription des
stagiaires et du portail de gestion de projets.
Un grand merci à toute l’équipe de CNI pour leur accueil et leur collaboration, qui ont
grandement facilité mon intégration et mon apprentissage.
Cette expérience a été extrêmement enrichissante et m’a permis de développer des compétences
importantes en développement web, gestion de bases de données, et optimisation des processus
RÉSUMÉ
Ce rapport présente le stage effectué au Centre National d'Informatique (CNI) de Tunis, sous la
supervision de Monsieur Mohamed Ali Saadaoui, du [1 juillet] au [31juillet].
2|Page
Les outils utilisés incluaient StarUML pour les diagrammes UML, HTML/CSS pour la
conception des pages web, JavaScript pour les fonctionnalités côté client, PHP pour la logique
serveur, et MySQL pour la gestion des données.
1. ABSTRACT
This report summarizes the internship undertaken at the Centre National d'Informatique (CNI) in
Tunis under the supervision of Mr. Mohamed Ali Saadaoui from [Start Date] to [End Date]. The
internship focused on developing and improving ongoing projects, with a primary objective of
designing an online registration system for trainees and enhancing project management
processes.
Tools used during the internship included StarUML for UML diagrams, HTML/CSS for web
design, JavaScript for client-side interactions, PHP for server-side logic, and MySQL for data
management.
The internship provided valuable experience in web development, database management, and
process optimization. Challenges such as integrating different technologies and debugging were
addressed, contributing to a deeper understanding of development processes and best practices.
Overall, the internship was a rewarding experience that enhanced both technical skills and
practical knowledge in web development and project management.
3|Page
Table des matieres
5|Page
INTRODUCTION GENERAL
1. CADRE GENERAL
2. TRAVAIL DEMANDÉ
Le travail qui m'a été confié consistait en la conception et la mise en œuvre d'un système
d'inscription en ligne pour les stagiaires. Ce projet comprenait plusieurs étapes clés:
3. PLAN DU RAPPORT
1. Présentation du Projet
4. Développement
5. Documentation Technique
Specifications du system.
Instructions installation.
Guides pour les utilisateurs et les administrateurs.
6. Captures d'Écran
7. Conclusion
8. Annexes
Annexes fournissant des documents complémentaires, incluant les diagrammes UML, le code
source, la documentation technique, et les captures d'écran.
7|Page
Chapitre 1 :
ETUDE,
SPECIFICATION ET ANALYSE
DES BESOINS
8|Page
1.1 INTRODUCTION
Dans ce chapitre, nous allons examiner les besoins et les exigences du système d'inscription en
ligne pour les formations. Nous commencerons par étudier les systèmes existants pour
comprendre leurs points forts et leurs faiblesses. Ensuite, nous définirons les besoins du nouveau
système, en tenant compte des différents utilisateurs comme l'administrateur, le formateur et le
participant.
Actuellement, il existe plusieurs systèmes d'inscription en ligne pour les formations. Ces
systèmes varient en termes de fonctionnalités et de facilité d'utilisation. Certains sont simples et
efficaces, tandis que d'autres manquent de certaines fonctionnalités importantes, comme la
gestion des sessions ou la personnalisation des profils des utilisateurs.
1.2.2 CRITIQUE DE L'EXISTANT
9|Page
1.3 SPÉCIFICATION DES BESOINS
1) 1.3.1 INTRODUCTION
La spécification des besoins permet de définir ce que le système doit faire pour répondre aux
attentes des utilisateurs. Cette section décrit les besoins fonctionnels et non fonctionnels du
système d'inscription en ligne, en se basant sur les besoins des administrateurs, des formateurs et
des participants.
2) 1.3.2 SPECIFICATION DES BESOINS
Administrateur :
o Gestion des Sessions : L'administrateur doit pouvoir créer, modifier et supprimer
des sessions de formation, et consulter des rapports sur les inscriptions et la
participation.
o Gestion des Utilisateurs : L'administrateur doit pouvoir gérer les comptes des
formateurs et des participants, y compris l'ajout, la modification et la suppression
des utilisateurs.
o Paramétrage du Système : L'administrateur doit configurer les paramètres
généraux du système, comme les types de formation disponibles et les critères
d'inscription.
Formateur :
o Gestion des Sessions : Les formateurs doivent pouvoir voir et mettre à jour les
détails des sessions auxquelles ils sont associés.
o Suivi des Participants : Les formateurs doivent pouvoir accéder aux informations
des participants inscrits à leurs sessions et suivre leur progression.
o Accès aux Rapports : Les formateurs doivent pouvoir générer des rapports sur
les performances des participants et les sessions de formation.
Participant :
o Inscription aux Sessions : Les participants doivent pouvoir s'inscrire facilement
aux sessions de formation disponibles en utilisant un formulaire en ligne simple.
o Gestion de Profil : Les participants doivent pouvoir mettre à jour leurs
informations personnelles et consulter l'historique de leurs inscriptions.
o Consultation des Sessions : Les participants doivent pouvoir rechercher et filtrer
les sessions de formation selon différents critères (date, type de formation, etc.).
10 | P a g e
Gestion des Utilisateurs : Interfaces pour l'ajout, la modification, et la suppression des
utilisateurs (administrateurs, formateurs, participants).
Tableau de Bord : Des tableaux de bord pour les administrateurs et formateurs,
permettant de visualiser les statistiques de participation, les rapports de sessions, et les
informations des utilisateurs.
Notifications : Système de notifications par email pour informer les participants des
confirmations d'inscription, des rappels de sessions, et des mises à jour importantes.
11 | P a g e
Figure 1.1 :diagramme de cas d’utilisation Générale
Le diagramme de cas d'utilisation est un outil qui montre comment les utilisateurs interagissent
avec un système. Il aide à comprendre ce que chaque utilisateur, comme l'administrateur, le
formateur et le participant, peut faire dans le système.
Pour notre projet d'inscription en ligne aux formations, ce diagramme montre les principales
fonctions du système, comme :
En visualisant ces interactions, nous pouvons nous assurer que le système répondra bien aux
besoins de tous ses utilisateurs. Le diagramme de cas d'utilisation nous aide donc à planifier et à
organiser le développement du système de manière claire et efficace.
12 | P a g e
Voici un scénario simplifié pour un diagramme de cas d'utilisation d'authentification :
Voici un tableau décrivant le scénario d'authentification pour le cas d'utilisation de gestion des
stagiaires, comme montré dans le diagramme :
13 | P a g e
Action de l'acteur Réaction du système
14 | P a g e
Le scénario pour les cas d'utilisation "Enregistrer présence" et "Assigner notes" pour un
participant :
1. Ouvrir la page de
Affiche le formulaire de connexion.
connexion
15 | P a g e
Action de l'acteur Réaction du système
1. Ouvrir la page de
Affiche le formulaire de connexion.
connexion
Le scénario pour les cas d'utilisation "Consulter cycle", "Afficher participants", et "S'inscrire aux
cycles disponibles" pour un formateur :
16 | P a g e
Action de l'acteur Réaction du système
6. Naviguer vers la section "Afficher Affiche la liste des participants inscrits aux
participants" cycles.
17 | P a g e
Action de l'acteur Réaction du système
18 | P a g e
l'ordre des interactions et le flux de messages échangés pour accomplir une tâche spécifique. Ce
type de diagramme est essentiel pour visualiser et comprendre la dynamique des processus dans
un système.
19 | P a g e
1.8 Diagramme de séquence de suppression:
20 | P a g e
CHAPITRE II :
CONCEPTION
21 | P a g e
La conception d'une base de données est une étape clé dans le développement d'un système
d'information. Elle implique la structuration des données afin de répondre aux besoins de
l'application tout en assurant l'efficacité, l'intégrité, et la sécurité des données. Voici les
principales étapes de la conception d'une base de données :
Collecte des Exigences : Identifiez les besoins des utilisateurs et les exigences du
système. Quelles informations doivent être stockées! Comment seront-elles utilisées!
Modèle Conceptuel : Créez un modèle conceptuel des données, généralement sous forme
de diagramme entité-association (ERD), pour représenter les entités (tables), les attributs
(champs), et les relations entre-elle.
Définition des Tables : Créez des tables pour représenter les entités identifiées dans le
modèle conceptuel.
Définition des Colonnes : Spécifiez les colonnes de chaque table, en définissant les types
de données appropriés (VARCHAR, INT, DATE, etc.).
Clés Primaires : Définissez des clés primaires pour chaque table pour identifier de
manière unique chaque enregistrement.
Clés Étrangères : Définissez des clés étrangères pour établir des relations entre les tables
et assurer l'intégrité référentielle.
4. NORMALISATION
5. OPTIMISATION
22 | P a g e
Indexation : Créez des index sur les colonnes souvent utilisées dans les requêtes pour
améliorer les performances de recherche.
Partitionnement : Divisez les grandes tables en partitions plus petites pour améliorer les
performances et la gestion des données.
Dénormalisation : Dans certains cas, dénormaliser certaines parties de la base de
données peut améliorer les performances en réduisant le nombre de jointures nécessaires.
Contrôles d'Accès : Définissez des rôles et des permissions pour contrôler l'accès aux
données sensibles et assurer la sécurité.
Sauvegardes : Mettre en place des stratégies de sauvegarde régulières pour protéger les
données contre la perte ou la corruption.
Audits : Configurez des mécanismes d'audit pour suivre les accès et les modifications des
données.
7. VALIDATION ET TESTS
8. DOCUMENTATION
La conception d'une base de données est un processus critique qui affecte la performance et la
fiabilité du système d'information. Une bonne conception nécessite une compréhension
approfondie des besoins et une attention aux détails tout au long du processus.
23 | P a g e
1 DIAGRAMME DE CLASSE :
Un diagramme de classe est un outil qui illustre la structure d'un système logiciel en montrant les
classes, leurs attributs et méthodes, ainsi que leurs relations.
Classe :
o Nom : Identifie la classe (ex. : Utilisateur).
o Attributs : Caractéristiques ou propriétés de la classe (ex. : nom, email).
o Méthodes : Fonctions ou opérations que la classe peut réaliser (ex. : seConnecter
(), s'inscrire()).
Relations :
o Association : Lien entre les classes (ex. : un Utilisateur ayant plusieurs
Commandes).
o Héritage : Relation où une classe dérive d'une autre (ex. : Admin dérivant de
Utilisateur).
24 | P a g e
o Composition : Une classe contient d'autres classes de manière forte (ex. : un
Panier contenant des Articles).
25 | P a g e
Chapitre III
REALISATION
26 | P a g e
1) INTRODUCTION
Ce rapport détaille les étapes de la réalisation d'un système de gestion de cycles de formation
développé durant mon stage au Centre National d'Informatique (CNI). Le projet avait pour
objectif de concevoir et de mettre en œuvre un système en ligne permettant la gestion efficace
des cycles de formation, incluant les inscriptions des participants et la gestion des formations par
les administrateurs et formateurs.
ENVIRONNEMENT MATÉRIEL
SERVEUR :
- Mémoires: 64 GB DDR4
- Stockage: 2 TB SSD
STATIONS DE TRAVAIL :
- Mémoire : 32 GB DDR4
ENVIRONNEMENT LOGICIEL
SYSTÈME D'EXPLOITATION :
PHP ET MYSQL : PHP a été choisi pour sa simplicité et sa forte intégration avec MySQL,
facilitant ainsi la gestion des bases de données. MySQL a été sélectionné pour sa robustesse et sa
capacité à gérer un grand nombre de requêtes simultanées.
HTML5, CSS3, ET JAVASCRIPT : Ces technologies ont été utilisées pour créer une interface
utilisateur réactive et interactive, offrant une expérience utilisateur optimale.
BOOTSTRAP :Le framework CSS Bootstrap a été utilisé pour accélérer le développement de
l'interface utilisateur, en fournissant des composants pré-construits et un système de grille
flexible.
OUTILS DE DÉVELOPPEMENT
VISUAL STUDIO CODE :Cet éditeur de code a été choisi pour sa légèreté, ses nombreuses
extensions et son intégration facile avec les systèmes de contrôle de version comme Git.
PHP MYADMIN : Cet outil a été utilisé pour la gestion de la base de données MySQL, offrant
une interface graphique conviviale pour la création et la gestion des tables et des requêtes SQL.
STARUML : Utilisé pour la création des diagrammes UML, facilitant la modélisation des
différentes fonctionnalités et l'architecture du système.
28 | P a g e
ÉTAPES DE DÉVELOPPEMENT DE L'APPLICATION WEB
INTERFACES DE L'APPLICATION
29 | P a g e
PAGE D'INSCRIPTION : Permet aux participants de s'inscrire aux formations en fournissant
leurs informations personnelles.
30 | P a g e
PAGE DE CONNEXION : Permet aux utilisateurs de se connecter pour accéder à leur espace
personnel.
31 | P a g e
4. TABLEAU DE BORD DE L'ADMINISTRATEUR : Interface pour gérer les cycles de
formation, les utilisateurs et les inscriptions.
Ces interfaces ont été conçues pour être intuitives et faciles à utiliser, garantissant une expérience
utilisateur fluide et efficace.
32 | P a g e
Conclusion
Mon stage au Centre National d'Informatique (CNI) a été une expérience enrichissante et
formative. Travaillant sur le développement d'un système de gestion des cycles de formation en
ligne, j'ai eu l'opportunité de mettre en pratique et d'élargir mes compétences en développement
web, gestion de bases de données et conception de systèmes.
Au cours de ce stage, j'ai conçu et mis en œuvre un système complet intégrant des fonctionnalités
telles que l'inscription des participants, la gestion des formations et le suivi des inscriptions. La
réalisation des UML diagrammes, l'utilisation de PHP pour le backend et de MySQL pour la
gestion des données ont été des aspects clés du projet. J'ai également travaillé avec phpMyAdmin
pour administrer les bases de données, ce qui a renforcé mes compétences en gestion de bases de
données relationnelles.
Le projet m'a permis de développer une compréhension approfondie des processus de gestion des
formations et de créer des interfaces utilisateur intuitives pour différents types d'utilisateurs, tels
que les administrateurs et les formateurs. La conception des interfaces a été axée sur la simplicité
et l'efficacité, visant à offrir une expérience utilisateur fluide et agréable.
Ce stage m'a non seulement permis d'acquérir une expérience pratique précieuse, mais aussi
d'approfondir ma connaissance des technologies web et de la gestion de projets informatiques.
Les compétences et les connaissances acquises seront un atout précieux dans ma future carrière
professionnelle.
Je tiens à remercier mon superviseur, MOHAMED ALI SAADAOUI , ainsi que toute l'équipe du
CNI pour leur soutien et leur encadrement tout au long de cette période. Cette expérience a été
extrêmement bénéfique pour mon développement professionnel et personnel.
33 | P a g e
Bibliographie
1. Livres :
o Welling, Luke, et Laura Thomson. PHP and MySQL Web Development. Addison-
Wesley, 2016.
Un guide complet sur le développement avec PHP et MySQL, couvrant les
aspects fondamentaux ainsi que des techniques avancées.
o Robbins, Jennifer. Learning Web Design: A Beginner's Guide to HTML, CSS,
JavaScript, and Web Graphics. O'Reilly Media, 2022.
Ce livre offre une introduction approfondie à la conception web, incluant
HTML, CSS, JavaScript, et les graphiques web.
2. Sites Web :
o W3Schools. W3Schools Online Web Tutorials. https://www.w3schools.com.
Une plateforme d'apprentissage en ligne qui fournit des tutoriels et des
références sur HTML, CSS, JavaScript, PHP, et plus encore.
o Stack Overflow. Stack Overflow Community. https://stackoverflow.com.
Une communauté de développeurs où vous pouvez poser des questions,
trouver des réponses et discuter de divers problèmes techniques.
o phpMyAdmin. Documentation phpMyAdmin. https://www.phpmyadmin.net/docs/
o
La documentation officielle de phpMyAdmin, utile pour comprendre
l'administration des bases de données et la gestion des tables.
34 | P a g e