Projet-E-learning-J2EE



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 :





         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
Nom
Livrables
Durée
Début
Fin
1

Analyse des besoin :
·         Bien comprendre les fonctionnalités à implémenter

1- cahier de charge détaillé.

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
·          réaliser les diagrammes UML pour l’application
·          diagrammes de classe, séquence ,cas
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


                 Visiteur











 
  

E.         DIAGRAMME DE SÉQUENCE

a)         Membre





b)         Visiteur



         
       


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.
     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.
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 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).
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 : BoochOMTOOSE. Principalement issu des travaux de Grady BoochJames 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)






       I.            Programmation :
1)      Visiteur et membre :
a.      Accueil


b.      Sujet


c.       Ajouter sujet



d.      Catégorie


e.      Inscription

                                          


f.        Authentification

                      
    


g.      Réponse



2)      Administrateur
h.      Ajouter catégorie

                                    
     

i.        Ajouter forum





j.        Supprimer membre

 


k.      Supprimer message



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