Présentation du projet
§ Contexte
Ce projet a été réalisé à
l’occasion de projet de fin de module à la programmation web.
§ Description
Un forum est un
espace de discussion publique (ou au moins ouvert à plusieurs participants).
Les discussions y sont archivées ce qui permet une communication asynchrone
(c'est ce qui différencie les forums de la messagerie instantanée), Notre forum proposera les fonctionnalités
suivante :
ü Possibilité de s'inscrire pour avoir un
pseudo, et grâce auquel on peut poster de nouveaux sujets, ou bien répondre.
ü Possibilité de modifier ou de supprimer ses
propres messages, en cas de fautes d'orthographe.
ü Possibilité de consulter une page qui affiche
des informations sur les membres (profil), et de pouvoir modifier le sien.
ü Possibilité de recevoir et d'envoyer des
messages privés aux autres membres.
III.
Déroulement du projet
1.Planification prévu
N°
|
Nom
|
Livrables
|
Durée
|
Début
|
Fin
|
|||
1
|
|
|
5 jours
|
24/12/12
|
28/12/12
|
|||
2
|
règles de gestion :
·
Identifier les entité
·
quoi faire le système
|
2- Maquette sur papier
|
2 jours
|
31/12/12
|
01/01/13
|
|||
3
|
entités principale :
·
les relations entre les
entités principales
|
3- Maquette sur papier
|
2 jours
|
31/12/12
|
01/01/13
|
|||
4
|
Conception
|
4-Diagrammes UML
|
7 jours
|
02/01/13
|
10/01/13
|
|||
5
|
5- Maquette sur papier
|
1 jours
|
07/01/13
|
07/01/13
|
||||
6
|
besoin graphique :
·
le nombre des page JSP,Servlet,class le
|
6-Document world
|
2 jours
|
11/01/13
|
14/01/13
|
|||
7
|
Maquette :
·
Tracer les pages (Les
formulaires, liens menu…)
|
7-des images
|
4 jours
|
15/01/13
|
18/01/13
|
|||
8
|
Outils développement :
·
Logiciel de programmation
|
8-les logiciels utilisé
|
1 jours
|
11/01/13
|
11/01/13
|
|||
9
|
BD(Mysql) :
·
réaliser le Fichier SQL pour la base de données (database.sql) et
Fichier SQL pour remplir la base de données de Tests (data.sql).
|
9-Fichier SQL
database.sql et data.sql.
|
3 jours
|
21/01/13
|
23/01/13
|
|||
10
|
Développement :
·
Partie du code
|
10-Application web
|
13 jours
|
24/01/13
|
11/02/13
|
|||
11
|
Tests finaux pour l'application :
·
Test la fonctionnalité de
l’application
|
11-Rapport
|
4 jours
|
12/02/13
|
15/02/13
|
2.Planification
a.
Diagramme Pert
b.
Diagramme Gantt
3.Conception(UML2)
c.
Diagramme de class
d.
Diagramme de cas
e.
Diagramme de séquencE
a)
Apprenant
b)
Enseignant
c)
Administrateur
4.Les matériel technique et pédagogique
A l’aide de intelligence artificiel le système
détecter le niveau des apprenants et
Effectuer un
ensemble des action pour affecter chez
l’apprenant le suivi du cours corresponde , la même méthode pour évaluer que
l’apprenant peut accéder a un autre niveau de cours.
-
La
méthode pédagogique pour l’ensemble des catégories des cours doit être la plus
ludique possible et alterner des types d’apprentissages différents (alternance
de théorie et de pratique). Les méthodes pédagogiques sont inscrites à titre
informatif mais elles peuvent évaluer en fonction des propositions qui seront
faites.
-
Les
supports existants seront transmis au prestataire pour alimenter le contenu de
la formation et servir de base à la conception des cours.
-
Chaque
cours de formation fera l’objet d’une évaluation finale permettant de mesurer
les acquis professionnels du apprenant. Un taux de réussite minimum est attendu
pour chaque cours. En cas de non obtention de ce résultat, le apprenant devra
revoir les points qu’il n’a pas assimilés.
-
Toutefois,
la non-atteinte de ce résultat ne doit pas empêcher le apprenant de réaliser un
autre cours en parallèle.
** Voici l’encapsulation du test
pour le niveau et pour l l’évaluation
La même processus pour l’évaluation.
5. Etude
fonctionnelle
a.
Coté apprenante
L’utilisateur peut créer un compte pour accéder aux cours disponibles, il peut aussi modifier les informations de son profil (email, mot de passe, avatar … etc.)
La gestion de la progression permet le suivi de l’apprenant, à la fin d’un cours ou d’une formation l’apprenant valide sa progression, il peut aussi évaluer ce cours ou cette formation et poster des commentaires.
b.
Coté administrative
le back office comprend trois types
d’utilisateurs :
Les
enseignants
ils peuvent ajouter des cours, définir leurs styles et leurs niveaux, ces derniers ne seront pas visible qu’après la validation des administrateurs, et consulter l’évaluation et les commentaires des apprenants.
ils peuvent ajouter des cours, définir leurs styles et leurs niveaux, ces derniers ne seront pas visible qu’après la validation des administrateurs, et consulter l’évaluation et les commentaires des apprenants.
Les administrateurs
la gestion des apprenants, la gestion des enseignants, et la gestion et validation des cours et formations, la consultation des rapports et statistiques. La gestion du contenu de la page d’accueil.
la gestion des apprenants, la gestion des enseignants, et la gestion et validation des cours et formations, la consultation des rapports et statistiques. La gestion du contenu de la page d’accueil.
6. Plan du
site
c.
Accès visiteur
Le visiteur peut accéder à la page d’accueil contenant une description
général du site ainsi que l’actualité de tout ce qui concerne les guitaristes,
et les nouvelles mises à jour apportées dans le site, toutes les pages
visiteurs contiennent une barre d’authentification.
Une page de F.A.Q contienne les questions les plus fréquents avec leurs
réponses respectives.
Une page de contact permet
d’envoyer des emails à l’administrateur pour des suggestions et
informations.
Une page d’inscription dans laquelle le visiteur peut saisir son login,
mot de passe, email, cordonnées, etc.…
Une page représentant un sitemap définissant les différentes pages du
site.
d.
Accès Apprenant
·
Après l’authentification,
l’apprenant peut accéder à une page qui contiennent liste de cours divisés en
trois phase selon le niveau de l’apprenant :
Phase 1 : cette phase contienne des QCM pour détecter le niveau de l’apprenant.
Phase 2 : cette phase contienne des cours soulent le niveau du apprenant.
Phase 1 : cette phase contienne des QCM pour détecter le niveau de l’apprenant.
Phase 2 : cette phase contienne des cours soulent le niveau du apprenant.
Phase 3 : cette phase offre à l’apprenant de différentes exercices
à apprendre et à maitriser.
Dans la page ou l’apprenant consulte un
cours quelconque il peut commenter le cours, l’évaluer ou voir sa description,
et quand celui-ci termine ce cours il peut valider son statut de
progression.
·
l’apprenant peut modifier
certaines informations de son profil soit en changeant son mot de passe, son
email, avatar (image perso), etc.
·
toutes les pages du site
contiennent une barre de recherche permet aux apprenants à tout moment de faire
une recherche sur toutes les pages du site.
e.
Accès enseignants
·
Page de liste des cours et
formations ->
« cours et formations »
·
Page de création de cours -> « ajouter cours »
·
Page de création de
formation -> « créer formation »
·
Page de mise à jour cours
-> « modifier cours »
·
Page de mise à jour
formation -> « modifier formation »
·
Page de profil -> « modifier profil »
- L’ enseignant
peut ajouter des cours ou/et formations en spécifiant un ensemble d’informations,
une description du cours ou/et formation, et le niveau de difficulté.
L’opération de l’ajout cours/formation ne sera mise en ligne que par une
validation de l’administration. Après cette validation, le
cours/formation ajouté apparaitra
dans l’actualité dans la page d’accueil.
- L’enseignant à
la possibilité de modifier ses cours/formations et cela nécessite aussi
une validation administrative
- Un autre
espace est consacré au enseignants,
c’est celui d’ajouter des articles (news) qui seront présentés dans la
page d’accueil.
- Une page
est consacré à consulter, modifier et changer les informations
personnelles de son profil
f.
Accès administrateur
Les actions de l’administrateur
dans le site se divisent en 3 parties :
·
Gestion des
apprenants : l’administrateur peut accéder à une page qui contienne la
liste des apprenants avec leurs niveaux de progression, il peut bloquer un
apprenant, lui envoyer un message privé ou consulter son profil et il a le
droit de supprimer son avatar et ses commentaires.
·
Gestion des enseignants:
l’administrateur à le droit de consulter tous les cours et formations ajoutés par les enseignants, visionner leurs
contenus et en suite les valider ou non, il peut aussi accéder au cours déjà
validé, consulter son évaluation et les commentaires postés par les apprenants
ainsi que la suppression de ces derniers.
·
Gestion du contenu :
L’administrateur à la possibilité de changer ou supprimer le contenu de la page
d’accueil, les articles postés par les enseignants dans la liste des news et la liste des styles dans le menu.
7.Développement
Technologie utiliser :
a. J2EE model MVC
J2EE est une plate-forme
fortement orientée serveur pour le développement et l'exécution d'applications
distribuées. Elle est composée de deux parties essentielles :
ü un ensemble de spécifications pour une infrastructure dans
laquelle s'exécutent les composants écrits en Java : un tel environnement se
nomme serveur d'application.
ü un ensemble d'API qui peut être obtenu et utilisé séparément.
Pour être utilisées, certaines nécessitent une implémentation de la part d'un
fournisseur tiers.
Sun propose une implémentation
minimale des spécifications de J2EE : le J2EE SDK. Cette implémentation permet
de développer des applications respectant les spécifications mais n'est pas
prévue pour être utilisée dans un environnement de production. Ces
spécifications doivent être respectées par les outils développés par des
éditeurs tiers.
L'utilisation de J2EE pour
développer et exécuter une application propose plusieurs avantages :
ü une architecture d'application basée sur les composants qui
permet un découpage de l'application et donc une séparation des rôles lors du
développement.
ü la possibilité de s'interfacer avec le système d'information
existant grâce à de nombreuses API : JDBC, JNDI, JMS, JCA ...
ü la possibilité de choisir les outils de développement et le ou
les serveurs d'applications utilisés qu'ils soient commerciaux ou libres
J2EE permet une grande
flexibilité dans le choix de l'architecture de l'application en combinant les
différents composants. Ce choix dépend des besoins auxquels doit répondre
l'application mais aussi des compétences dans les différentes API de J2EE.
L'architecture d'une application se découpe idéalement en au moins trois tiers
:
ü la partie cliente : c'est la partie qui permet le dialogue avec
l'utilisateur. Elle peut être composée d'une application standalone, d'une
application web ou d'applets
ü la partie métier : c'est la partie qui encapsule les traitements
(dans des EJB ou des JavaBeans) •
ü la partie données : c'est la partie qui stocke les données •
MVC :
ü Dans la pratique, on cherche toujours à
séparer la logique du métier et la logique de présentation.
ü En optant pour le modèle MVC (Modèle,
Vue, Contrôleur), Java met à votre disposition des différents composants qui
vous permettent de répondre à ce critère.
Modèle MVC pour une application web
java :
Pour une
application web, le modèle MVC est implémenté comme suit :
Modèle:
Le modèle
qui représente la partie la plus importante d’une application, se charge
d’implémenter la logique du métier.
Avant son
implémentation, le modèle fait l’objet d’une conception approfondie en
élaborant les différents diagrammes UML.
Dans
java, le modèle peut être implémenté soit en utilisant :
ü
Les
java beans
ü
Les
EJB
1.
Modèle
avec les java beans
Ø
Les
java Beans sont déduits directement du diagramme de classes.
Ø
Chaque
java Bean représente une classe du modèle.
Ø
Cette
classe et caractérisé par :
ü
des
attributs (propriétés et attributs d’associations avec les autres classes) qui
sont souvent privés,
ü
les
accesseurs (get...), mutateurs (set...)
ü
des
méthodes métiers qui assurent les différents traitements du métier et la
persistance de ces objets (souvent dans une base de données relationnelle).
Ø
Les
java beans doivent s’exécuter dans la même JVM que les autres parties de
l’application, à savoir les contrôleurs et les vues.
Autrement
dit, dans le même environnement du conteneur de servlet (Tomcat). Ceci peut
poser un problème de montée en charge au niveau de l’environnement de
l’application web.
2. Contrôleur : Servlet
Ø
Les
servlets peuvent jouer le rôle du contrôleur. Ce dernier se charge de :
ü
Recevoir
les différentes requêtes http des utilisateurs,
ü
Récupérer
les données de ces requêtes,
ü
Stocker
ces données dans un objet intermédiaire associé à la requête et appelé form
bean (bean de formulaire)
ü
S’assurer
de la validation de ces données.
ü
Faire
appel au modèle, qui se charge du traitement, en lui transmettant les données
de la requête.
ü
Récupérer
les résultats éventuels retournés par le modèle.
ü
Stocker
ces résultats dans le form bean
ü
Stocker
le form bean dans la session de courante.
ü
Faire
une redirection vers une page JSP qui va se charger de l’affichage de la des
résultats relatif à la réponse http.
3. Les Vues : JSP
Ø
Les
vues sont implémentées par les pages JSP. Une page JSP se charge de :
ü
Récupérer
les données des résultats stockés, préalablement par le contrôleur, dans le form bean.
ü
Afficher
ces résultats dans les parties dynamiques de la page HTML (ou XML)
ü
Afficher
les autres parties statiques, de la vue, qui vont permettre à l’utilisateur
d’envoyer d’autres requêtes vers le contrôleur via des formulaires ou des liens
hypertextes ou autres.
ü
Chaque
vue de l’application est représentée par une page JSP. Elle peut matérialiser
un ou plusieurs cas d’utilisation de
l’application web.
b. Mysql
MySQL dérive
directement de SQL (Structured Query Language) qui est un langage de requête
vers les bases de données exploitant le modèle relationnel. Il en reprend la
syntaxe mais n'en conserve pas toute la puissance puisque de nombreuses
fonctionnalités de SQL n'apparaissent pas dans MySQL (sélections imbriquées,
clés étrangères...)
Le serveur de base de données MySQL est très souvent utilisé avec le langage de création de pages web dynamiques : PHP,JSP. Il sera discuté ici des commandes MySQL utilisables via PHP dans les conditions typiques d'utilisation dans le cadre de la gestion d'un site personnel hébergé gratuitement (par exemple sur Free.fr).
Le serveur de base de données MySQL est très souvent utilisé avec le langage de création de pages web dynamiques : PHP,JSP. Il sera discuté ici des commandes MySQL utilisables via PHP dans les conditions typiques d'utilisation dans le cadre de la gestion d'un site personnel hébergé gratuitement (par exemple sur Free.fr).
c. UML
UML (en anglais
Unified Modeling Language ou « langage de modélisation unifié ») est
un langage
de modélisation graphique à base de pictogrammes.
Il est apparu dans le monde du génie
logiciel, dans le cadre de la « conception orientée objet ».
Couramment utilisé dans les projets logiciels, il peut être appliqué à toutes
sortes de systèmes ne se limitant pas au domaine informatique 1.
UML est l'accomplissement de la
fusion de précédents langages de modélisation objet : Booch, OMT, OOSE. Principalement issu
des travaux de Grady Booch, James
Rumbaugh et Ivar Jacobson, UML est à présent un standard
défini par l'Object Management Group (OMG).
d. CSS
CSS :Cascading Style
Sheets. Sert à gérer la présentation des pages web :
Pourquoi CSS ?
ü Pour séparer le
contenu de la mise en forme des pages web.
ü Rendre la charte
graphique du site Web plus cohérente.
ü Faciliter les mises
à jour de la présentation des sites Web.
ü Donne plus de
possibilités que HTML…
Comment ?
ü En définissant un ou
plusieurs styles
ü Deux manières :
·
Interne (les styles sont définis à
l’intérieur de la page)
·
Externe (les styles sont définis dans un
fichier séparé puis relié à la page Web)
IV.
Conclusion
Durant la réalisation de ce projet j'ai pu suivre les différentes étapes
de la conception et de la réalisation de ce travail qui fait l'objet d'une
démarche de réalisation progressive .une démarche qui a commencé par
l'établissement d'un cahier de charge et qui s'est soldée à la fin par la
réalisation d’une conception du projet. En fin, à améliorer mon savoir être
ainsi que mon savoir-faire, et comprendre certaines règles du jeu qui assure la
réussite dans le travail, j’ai également pu résoudre plusieurs problèmes
auxquels j’ai été confronté.