Sie sind auf Seite 1von 30

Projet de fin de formation - Intramic 2010/2011

Institut Spécialisé dans les Métiers de l’ Offshoring et les Nouvelles Technologies de


l’Information et de la Communication (ISMONTIC) TANGER
Bd des FAR( Route de Rabat) (Lotissement Marjane) 90 000 Tanger Tél. : 0539380871

Rapport de projet
Intramic – Intranet pour l’ISMONTIC

Encadré par :
 Mr. Youssef YAZIDI

Réalisé par :
 Taha ZOUHAIR
 Soukaina EL ATIQUI

ISMONTIC de Tanger 1
Projet de fin de formation - Intramic 2010/2011

Remerciements

Nous tenons à remercier tout le corps des formateurs de


l’ISMONTIC à Tanger, et plus particulièrement Mr. Youssef
YAZIDI qui nous a encadré tout au long de ce projet, et qui nous
apporté de précieuses informations concernant ce projet.
Ce travail est le fruit de nos deux années de formation dans
l’institut et représente les efforts de tous les formateurs qui nous ont
enseignés pendant ces deux années.
Merci à tous ceux qui ont contribué de près ou de loin à la
réalisation de ce projet.

ISMONTIC de Tanger 2
Projet de fin de formation - Intramic 2010/2011

1. Contexte général.................................................................................................................
● L’ISMONTIC...............................................................................................................
● Besoins à satisfaire....................................................................................................

2. Présentation du projet :
● Les différents services du site.........................................................................................
● Technologies utilisées……………………………………………………………………….
● Les personnes ciblées...................................................................................................

3. Modélisation de la Base de données


● Diagramme de cas d’utilisation.................................................................................
● MCD...........................................................................................................................
● MLD...........................................................................................................................
● Script de création de la base de données.................................................................

4. Fonctionnalités basiques :
● Connexion …………………………………………………………………………
● Communication …………………………………………………………………...
● Messagerie interne
● Messagerie instantanée
● Profils
● Publication d’éléments……………………………………………………………..
● Articles
● Cours
● Liens
● Commentaires

5. Fonctionnalités étendues :
●L’administration …………………………………………………………………………..
● Gestion des utilisateurs………………………………………………………….
● Gestion des éléments publiés……………………………………………………
● Gestion des emplois du temps …………………..……………………………..
● Les formateurs……………………………………………………………………………
● Publication des cours ……………………………………………………………
● Programmation des examens…………………………………………………..
● Saisie des notes………………………………………………………………….
● Description détaillée des scénarios
● Les maquettes des pages principales…………………………………….......
● Captures d’écran………………………………………………………………...
6. Conclusion …………………………………………………………………………………..

ISMONTIC de Tanger 3
Projet de fin de formation - Intramic 2010/2011

1. Contexte général

● L’ISMONTIC :

l’ISMONTIC (Institut Spécialisé des Métiers de l’Offshoring et des Nouvelles Technologies de


l’Information et de la Communication).

● Besoins à satisfaire :
 Un point d'accès unique pour trouver l’information
 La structuration des informations selon son type.
 La personnalisation en fonction des centres d'intérêts et du rôle dans l’institut
 La sécurité d’accès aux informations
 Une interface Web accessible sur tous les terminaux
 La centralisation des documentations et des cours
 Possibilité d’utiliser le système sur des applications bureau ou mobiles

2. Présentation du projet :

● Les différents services du site :

Ce système aura comme objectif principal de satisfaire les besoins de l’institut à travers la
réalisation des fonctionnalités suivantes :
 Une messagerie interne entre les différents membres.
 Messagerie instantanée sur le site-web.
 La possibilité de publier des éléments (liens, articles, messages) sur les profils.
 Partage des cours par les formateurs.
 Une partie d’administration.
 Affichage des emplois du temps.
 La programmation des dates d’examen
 La saisie des notes
 Les modules enseignés par les différents formateurs

● Les technologies utilisées :

Les pages Web seront dotées de technologies HTML, CSS, JavaScript, et JSP pour le côté
dynamique, ainsi que AJAX pour envoyer des requêtes sans avoir à actualiser la page.
Les pages dynamiques seront interprétés par un serveur d’application Glassfish ou Apache
Tomcat.
On utilisera un système de gestion de base de données relationnel, Oracle version 10g.

Logiciel de contrôle de version :


Tout au long de la programmation, nous avons utilisé le logiciel Mercurial pour le contrôle de
version, ce logiciel qui permet de travailler à plusieurs sur le même projet nous a été d’une
grande utilité.
J’encourage de ce fait, qu’il soit enseigné dans le module (Gestion de projet).

● Les personnes ciblées :

ISMONTIC de Tanger 4
Projet de fin de formation - Intramic 2010/2011

Le système Intranet est destiné aux stagiaires d’une part et aux personnes travaillantes dans
l’institut d’autre part, qu’ils soient formateurs ou dans l’administration.

3. Modélisation de la Base de données :

● Diagramme de cas d’utilisation

ISMONTIC de Tanger 5
Projet de fin de formation - Intramic 2010/2011

ISMONTIC de Tanger 6
Projet de fin de formation - Intramic 2010/2011

● MCD

ISMONTIC de Tanger 7
Projet de fin de formation - Intramic 2010/2011

● MLD

ISMONTIC de Tanger 8
Projet de fin de formation - Intramic 2010/2011

 Script de création de la base de données

/*==============================================================*/
/* Table : ARTICLE */
/*==============================================================*/
create table ARTICLE (
ID_ARTICLE INTEGER not null,
ID_ELEMENT INTEGER not null,
SUJET_ARTICLE VARCHAR2(100),
CORPS_ARTICLE VARCHAR2(2048),
constraint PK_ARTICLE primary key (ID_ARTICLE)
);

/*==============================================================*/
/* Index : ELEMENT_EST_AT_FK */
/*==============================================================*/
create index ELEMENT_EST_AT_FK on ARTICLE (
ID_ELEMENT ASC
);

/*==============================================================*/
/* Table : CLE_PASSWORD */
/*==============================================================*/
create table CLE_PASSWORD (
ID_CP INTEGER not null,
ID_USER INTEGER not null,
CLE_CP VARCHAR2(32),
DATE_CP DATE,
constraint PK_CLE_PASSWORD primary key (ID_CP)
);

/*==============================================================*/
/* Index : USER_PASS_KEY_FK */
/*==============================================================*/
create index USER_PASS_KEY_FK on CLE_PASSWORD (
ID_USER ASC
);

/*==============================================================*/
/* Table : COMMENTER_PUBLICATION */
/*==============================================================*/
create table COMMENTER_PUBLICATION (
ID_COMMENTAIRE INTEGER not null,
ID_USER INTEGER not null,
ID_ELEMENT INTEGER not null,
DATE_COMMENTAIRE DATE,
IP_COMMENTAIRE VARCHAR2(15),
CORPS_COMMENTAIRE VARCHAR2(500),
constraint PK_COMMENTER_PUBLICATION primary key (ID_COMMENTAIRE)
);

/*==============================================================*/
/* Index : COMMENTER_PUBLICATION_PK */
/*==============================================================*/
create unique index COMMENTER_PUBLICATION_PK on COMMENTER_PUBLICATION (
ID_COMMENTAIRE ASC
);

/*==============================================================*/
/* Index : AJOUTER_COM_FK */
/*==============================================================*/
create index AJOUTER_COM_FK on COMMENTER_PUBLICATION (
ID_USER ASC
);

/*==============================================================*/
/* Index : CONCERNE_COM_PUB_FK */
/*==============================================================*/
create index CONCERNE_COM_PUB_FK on COMMENTER_PUBLICATION (
ID_ELEMENT ASC

ISMONTIC de Tanger 9
Projet de fin de formation - Intramic 2010/2011

);

/*==============================================================*/
/* Index : COMMENTER_PUBLICATION2_FK */
/*==============================================================*/
create index COMMENTER_PUBLICATION2_FK on COMMENTER_PUBLICATION (
ID_USER ASC,
ID_ELEMENT ASC,
ID_COMMENTAIRE ASC
);

/*==============================================================*/
/* Table : COURS */
/*==============================================================*/
create table COURS (
ID_COURS INTEGER not null,
NOM_COURS VARCHAR2(100),
FICHIER_COURS VARCHAR2(50),
constraint PK_COURS primary key (ID_COURS)
);

/*==============================================================*/
/* Table : ENSEIGNER */
/*==============================================================*/
create table ENSEIGNER (
ID_MODULE INTEGER not null,
ID_GROUPE INTEGER not null,
ID_FORMATEUR INTEGER not null,
ID_SALLE INTEGER not null,
ID_PERIODE INTEGER not null,
JOUR_SEANCE INTEGER,
HEURE_SEANCE INTEGER,
constraint PK_ENSEIGNER primary key (ID_MODULE, ID_GROUPE, ID_FORMATEUR, ID_SALLE, ID_PERIODE)
);

/*==============================================================*/
/* Index : ENSEIGNER_FK */
/*==============================================================*/
create index ENSEIGNER_FK on ENSEIGNER (
ID_MODULE ASC
);

/*==============================================================*/
/* Index : ENSEIGNER2_FK */
/*==============================================================*/
create index ENSEIGNER2_FK on ENSEIGNER (
ID_GROUPE ASC
);

/*==============================================================*/
/* Index : ENSEIGNER3_FK */
/*==============================================================*/
create index ENSEIGNER3_FK on ENSEIGNER (
ID_FORMATEUR ASC
);

/*==============================================================*/
/* Index : ENSEIGNER4_FK */
/*==============================================================*/
create index ENSEIGNER4_FK on ENSEIGNER (
ID_SALLE ASC
);

/*==============================================================*/
/* Index : ENSEIGNER5_FK */
/*==============================================================*/
create index ENSEIGNER5_FK on ENSEIGNER (
ID_PERIODE ASC
);

/*==============================================================*/

ISMONTIC de Tanger 10
Projet de fin de formation - Intramic 2010/2011

/* Table : EXAMEN */
/*==============================================================*/
create table EXAMEN (
ID_EXAMEN INTEGER not null,
ID_TYPE_EXAMEN INTEGER not null,
BAREME_EXAMEN INTEGER,
constraint PK_EXAMEN primary key (ID_EXAMEN)
);

/*==============================================================*/
/* Index : TYPE_EXAMEN_FK */
/*==============================================================*/
create index TYPE_EXAMEN_FK on EXAMEN (
ID_TYPE_EXAMEN ASC
);

/*==============================================================*/
/* Table : EXAMINER */
/*==============================================================*/
create table EXAMINER (
ID_GROUPE INTEGER not null,
ID_MODULE INTEGER not null,
ID_FORMATEUR INTEGER not null,
ID_SALLE INTEGER not null,
ID_EXAMEN INTEGER not null,
DATE_EXAMEN DATE,
constraint PK_EXAMINER primary key (ID_GROUPE, ID_MODULE, ID_FORMATEUR, ID_SALLE, ID_EXAMEN)
);

/*==============================================================*/
/* Index : EXAMINER_FK */
/*==============================================================*/
create index EXAMINER_FK on EXAMINER (
ID_GROUPE ASC
);

/*==============================================================*/
/* Index : EXAMINER2_FK */
/*==============================================================*/
create index EXAMINER2_FK on EXAMINER (
ID_MODULE ASC
);

/*==============================================================*/
/* Index : EXAMINER3_FK */
/*==============================================================*/
create index EXAMINER3_FK on EXAMINER (
ID_FORMATEUR ASC
);

/*==============================================================*/
/* Index : EXAMINER4_FK */
/*==============================================================*/
create index EXAMINER4_FK on EXAMINER (
ID_SALLE ASC
);

/*==============================================================*/
/* Index : EXAMINER5_FK */
/*==============================================================*/
create index EXAMINER5_FK on EXAMINER (
ID_EXAMEN ASC
);

/*==============================================================*/
/* Table : FILLIERE */
/*==============================================================*/
create table FILLIERE (
ID_FILLIERE INTEGER not null,
CODE_FILLIERE VARCHAR2(7),
NOM_COMPLET_FILLIERE VARCHAR2(200),

ISMONTIC de Tanger 11
Projet de fin de formation - Intramic 2010/2011

constraint PK_FILLIERE primary key (ID_FILLIERE)


);

/*==============================================================*/
/* Table : FORMATEUR */
/*==============================================================*/
create table FORMATEUR (
ID_FORMATEUR INTEGER not null,
ID_USER INTEGER not null,
NOM_FORMATEUR VARCHAR2(50),
MATRICULE__FORMATEUR VARCHAR2(20),
constraint PK_FORMATEUR primary key (ID_FORMATEUR)
);

/*==============================================================*/
/* Index : USER_FORMATEUR_FK */
/*==============================================================*/
create index USER_FORMATEUR_FK on FORMATEUR (
ID_USER ASC
);

/*==============================================================*/
/* Table : GROUPE */
/*==============================================================*/
create table GROUPE (
ID_GROUPE INTEGER not null,
ID_FILLIERE INTEGER not null,
NUM_GROUPE INTEGER,
NIVEAU_GROUPE INTEGER,
constraint PK_GROUPE primary key (ID_GROUPE)
);

/*==============================================================*/
/* Index : EST_DE_FILLIERE_FK */
/*==============================================================*/
create index EST_DE_FILLIERE_FK on GROUPE (
ID_FILLIERE ASC
);

/*==============================================================*/
/* Table : LIEN */
/*==============================================================*/
create table LIEN (
ID_LIEN INTEGER not null,
ID_ELEMENT INTEGER not null,
URL_LIEN VARCHAR2(500),
COMMENTAIRE_LIEN VARCHAR2(200),
constraint PK_LIEN primary key (ID_LIEN)
);

/*==============================================================*/
/* Index : ELEMENT_EST_LK_FK */
/*==============================================================*/
create index ELEMENT_EST_LK_FK on LIEN (
ID_ELEMENT ASC
);

/*==============================================================*/
/* Table : MESSAGE */
/*==============================================================*/
create table MESSAGE (
ID_MESSAGE INTEGER not null,
ID_USER INTEGER not null,
ID_SUJET INTEGER not null,
UTI_ID_USER INTEGER not null,
CORPS_MESSAGE VARCHAR2(1024),
DATE_MESSAGE DATE,
IP_MESSAGE VARCHAR2(15),
LECTURE_MESSAGE SMALLINT,
constraint PK_MESSAGE primary key (ID_MESSAGE)
);

ISMONTIC de Tanger 12
Projet de fin de formation - Intramic 2010/2011

/*==============================================================*/
/* Index : POSTE_FK */
/*==============================================================*/
create index POSTE_FK on MESSAGE (
ID_USER ASC
);

/*==============================================================*/
/* Index : A_LE_SUJET_FK */
/*==============================================================*/
create index A_LE_SUJET_FK on MESSAGE (
ID_SUJET ASC
);

/*==============================================================*/
/* Index : RECOIE_MP_FK */
/*==============================================================*/
create index RECOIE_MP_FK on MESSAGE (
UTI_ID_USER ASC
);

/*==============================================================*/
/* Table : MESSAGE_INSTANTANE */
/*==============================================================*/
create table MESSAGE_INSTANTANE (
ID_MSG_INST INTEGER not null,
ID_USER INTEGER not null,
UTI_ID_USER INTEGER not null,
CORPS_MSG_INST VARCHAR2(350),
DATE_MSG_INST DATE,
constraint PK_MESSAGE_INSTANTANE primary key (ID_MSG_INST)
);

/*==============================================================*/
/* Index : ENVOIE_INST_FK */
/*==============================================================*/
create index ENVOIE_INST_FK on MESSAGE_INSTANTANE (
ID_USER ASC
);

/*==============================================================*/
/* Index : RECOIE_INST_MSG_FK */
/*==============================================================*/
create index RECOIE_INST_MSG_FK on MESSAGE_INSTANTANE (
UTI_ID_USER ASC
);

/*==============================================================*/
/* Table : MODULE */
/*==============================================================*/
create table MODULE (
ID_MODULE INTEGER not null,
NOM_MODULE VARCHAR2(150),
CODE_MODULE VARCHAR2(4),
constraint PK_MODULE primary key (ID_MODULE)
);

/*==============================================================*/
/* Table : PASSER */
/*==============================================================*/
create table PASSER (
ID_EXAMEN INTEGER not null,
ID_STAGIAIRE INTEGER not null,
NOTE_EXAMEN INTEGER,
constraint PK_PASSER primary key (ID_EXAMEN, ID_STAGIAIRE)
);

/*==============================================================*/
/* Index : PASSER_FK */
/*==============================================================*/

ISMONTIC de Tanger 13
Projet de fin de formation - Intramic 2010/2011

create index PASSER_FK on PASSER (


ID_EXAMEN ASC
);

/*==============================================================*/
/* Index : PASSER2_FK */
/*==============================================================*/
create index PASSER2_FK on PASSER (
ID_STAGIAIRE ASC
);

/*==============================================================*/
/* Table : PERIODE */
/*==============================================================*/
create table PERIODE (
ID_PERIODE INTEGER not null,
DEBUT_PERIODE DATE,
FIN_PERIODE DATE,
constraint PK_PERIODE primary key (ID_PERIODE)
);

/*==============================================================*/
/* Table : PUBLICATION */
/*==============================================================*/
create table PUBLICATION (
ID_ELEMENT INTEGER not null,
ID_USER INTEGER not null,
ID_TYPE_PUBLICATION INTEGER not null,
IP_ELEMENT VARCHAR2(12),
DATE_ELEMENT DATE,
constraint PK_PUBLICATION primary key (ID_ELEMENT)
);

/*==============================================================*/
/* Index : PARTAGER_FK */
/*==============================================================*/
create index PARTAGER_FK on PUBLICATION (
ID_USER ASC
);

/*==============================================================*/
/* Index : TYPE_PUBLICATION_FK */
/*==============================================================*/
create index TYPE_PUBLICATION_FK on PUBLICATION (
ID_TYPE_PUBLICATION ASC
);

/*==============================================================*/
/* Table : PUBLIE */
/*==============================================================*/
create table PUBLIE (
ID_USER INTEGER not null,
ID_ELEMENT INTEGER not null,
CORPS_PUBLICATION VARCHAR2(350),
constraint PK_PUBLIE primary key (ID_USER, ID_ELEMENT)
);

/*==============================================================*/
/* Index : PUBLIE_FK */
/*==============================================================*/
create index PUBLIE_FK on PUBLIE (
ID_USER ASC
);

/*==============================================================*/
/* Index : PUBLIE2_FK */
/*==============================================================*/
create index PUBLIE2_FK on PUBLIE (
ID_ELEMENT ASC
);

ISMONTIC de Tanger 14
Projet de fin de formation - Intramic 2010/2011

/*==============================================================*/
/* Table : PUBLIER */
/*==============================================================*/
create table PUBLIER (
ID_MODULE INTEGER not null,
ID_COURS INTEGER not null,
ID_FORMATEUR INTEGER not null,
DATE_COURS DATE,
IP_COURS VARCHAR2(15),
constraint PK_PUBLIER primary key (ID_MODULE, ID_COURS, ID_FORMATEUR)
);

/*==============================================================*/
/* Index : PUBLIER_FK */
/*==============================================================*/
create index PUBLIER_FK on PUBLIER (
ID_MODULE ASC
);

/*==============================================================*/
/* Index : PUBLIER2_FK */
/*==============================================================*/
create index PUBLIER2_FK on PUBLIER (
ID_COURS ASC
);

/*==============================================================*/
/* Index : PUBLIER3_FK */
/*==============================================================*/
create index PUBLIER3_FK on PUBLIER (
ID_FORMATEUR ASC
);

/*==============================================================*/
/* Table : SALLE */
/*==============================================================*/
create table SALLE (
ID_SALLE INTEGER not null,
ID_TYPE_SALLE INTEGER not null,
CODE_SALLE VARCHAR2(15),
EFFECTIF_SALLE INTEGER,
constraint PK_SALLE primary key (ID_SALLE)
);

/*==============================================================*/
/* Index : SALLE_EST_DE_TYPE_FK */
/*==============================================================*/
create index SALLE_EST_DE_TYPE_FK on SALLE (
ID_TYPE_SALLE ASC
);

/*==============================================================*/
/* Table : STAGIAIRE */
/*==============================================================*/
create table STAGIAIRE (
ID_STAGIAIRE INTEGER not null,
ID_USER INTEGER not null,
ID_GROUPE INTEGER not null,
DATE_INSCRIPTION_S DATE,
NO_INSCRIPTION_S VARCHAR2(12),
constraint PK_STAGIAIRE primary key (ID_STAGIAIRE)
);

/*==============================================================*/
/* Index : STAGIAIRE_USER_FK */
/*==============================================================*/
create index STAGIAIRE_USER_FK on STAGIAIRE (
ID_USER ASC
);

/*==============================================================*/

ISMONTIC de Tanger 15
Projet de fin de formation - Intramic 2010/2011

/* Index : APPARTIENT2_FK */
/*==============================================================*/
create index APPARTIENT2_FK on STAGIAIRE (
ID_GROUPE ASC
);

/*==============================================================*/
/* Table : STATUT */
/*==============================================================*/
create table STATUT (
ID_STATUT INTEGER not null,
ID_ELEMENT INTEGER not null,
CORPS_STATUT VARCHAR2(200),
constraint PK_STATUT primary key (ID_STATUT)
);

/*==============================================================*/
/* Index : PUBLICATION_STATUT_FK */
/*==============================================================*/
create index PUBLICATION_STATUT_FK on STATUT (
ID_ELEMENT ASC
);

/*==============================================================*/
/* Table : SUJET */
/*==============================================================*/
create table SUJET (
ID_SUJET INTEGER not null,
TITRE_SUJET VARCHAR2(100),
DELETED_BY_SUJET INTEGER,
constraint PK_SUJET primary key (ID_SUJET)
);

/*==============================================================*/
/* Table : TYPE_EXAMEN */
/*==============================================================*/
create table TYPE_EXAMEN (
ID_TYPE_EXAMEN INTEGER not null,
NOM_TYPE_EXAMEN VARCHAR2(200),
constraint PK_TYPE_EXAMEN primary key (ID_TYPE_EXAMEN)
);

/*==============================================================*/
/* Table : TYPE_PUBLICATION */
/*==============================================================*/
create table TYPE_PUBLICATION (
ID_TYPE_PUBLICATION INTEGER not null,
NOM_TYPE_PUBLICATION VARCHAR2(20),
constraint PK_TYPE_PUBLICATION primary key (ID_TYPE_PUBLICATION)
);

/*==============================================================*/
/* Table : TYPE_SALLE */
/*==============================================================*/
create table TYPE_SALLE (
ID_TYPE_SALLE INTEGER not null,
NOM_TYPE_SALLE VARCHAR2(50),
constraint PK_TYPE_SALLE primary key (ID_TYPE_SALLE)
);

/*==============================================================*/
/* Table : USER_GROUP */
/*==============================================================*/
create table USER_GROUP (
ID_GROUP INTEGER not null,
NOM_GROUP VARCHAR2(50),
LEVEL_GROUP INTEGER,
constraint PK_USER_GROUP primary key (ID_GROUP)
);

/*==============================================================*/

ISMONTIC de Tanger 16
Projet de fin de formation - Intramic 2010/2011

/* Table : USER_NOTIF_PUB */
/*==============================================================*/
create table USER_NOTIF_PUB (
ID_NOTIFICATION INTEGER not null,
ID_USER INTEGER not null,
ID_ELEMENT INTEGER not null,
UTI_ID_USER INTEGER not null,
DATE_NOTIFICATION DATE,
ETAT_NOTIFICATION SMALLINT,
constraint PK_USER_NOTIF_PUB primary key (ID_NOTIFICATION)
);

/*==============================================================*/
/* Index : DECLENCHE_FK */
/*==============================================================*/
create index DECLENCHE_FK on USER_NOTIF_PUB (
UTI_ID_USER ASC
);

/*==============================================================*/
/* Index : USER_NOTIF_PUB_FK */
/*==============================================================*/
create index USER_NOTIF_PUB_FK on USER_NOTIF_PUB (
ID_ELEMENT ASC
);

/*==============================================================*/
/* Index : USER_NOTIF_PUB2_FK */
/*==============================================================*/
create index USER_NOTIF_PUB2_FK on USER_NOTIF_PUB (
ID_ELEMENT ASC
);

/*==============================================================*/
/* Table : UTILISATEUR */
/*==============================================================*/
create table UTILISATEUR (
ID_USER INTEGER not null,
ID_GROUP INTEGER not null,
LOGIN_USER VARCHAR2(30),
PASSWORD_USER VARCHAR2(32),
EMAIL_USER VARCHAR2(35),
NAME_USER VARCHAR2(30),
LAST_NAME_USER VARCHAR2(30),
BIRTHDAY_USER DATE,
LAST_ACTIVE_USER DATE,
constraint PK_UTILISATEUR primary key (ID_USER)
);

/*==============================================================*/
/* Index : APPARTIENT_FK */
/*==============================================================*/
create index APPARTIENT_FK on UTILISATEUR (
ID_GROUP ASC
);

/*==============================================================*/
/* Index : USER_NOTIF_FK */
/*==============================================================*/
create index USER_NOTIF_FK on UTILISATEUR (
ID_USER ASC
);

alter table ARTICLE


add constraint FK_ARTICLE_ELEMENT_E_PUBLICAT foreign key (ID_ELEMENT)
references PUBLICATION (ID_ELEMENT);

alter table CLE_PASSWORD


add constraint FK_CLE_PASS_USER_PASS_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

ISMONTIC de Tanger 17
Projet de fin de formation - Intramic 2010/2011

alter table COMMENTER_PUBLICATION


add constraint FK_COMMENTE_AJOUTER_C_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

alter table COMMENTER_PUBLICATION


add constraint FK_COMMENTE_CONCERNE__PUBLICAT foreign key (ID_ELEMENT)
references PUBLICATION (ID_ELEMENT);

alter table ENSEIGNER


add constraint FK_ENSEIGNE_ENSEIGNER_MODULE foreign key (ID_MODULE)
references MODULE (ID_MODULE);

alter table ENSEIGNER


add constraint FK_ENSEIGNE_ENSEIGNER_GROUPE foreign key (ID_GROUPE)
references GROUPE (ID_GROUPE);

alter table ENSEIGNER


add constraint FK_ENSEIGNE_ENSEIGNER_FORMATEU foreign key (ID_FORMATEUR)
references FORMATEUR (ID_FORMATEUR);

alter table ENSEIGNER


add constraint FK_ENSEIGNE_ENSEIGNER_SALLE foreign key (ID_SALLE)
references SALLE (ID_SALLE);

alter table ENSEIGNER


add constraint FK_ENSEIGNE_ENSEIGNER_PERIODE foreign key (ID_PERIODE)
references PERIODE (ID_PERIODE);

alter table EXAMEN


add constraint FK_EXAMEN_TYPE_EXAM_TYPE_EXA foreign key (ID_TYPE_EXAMEN)
references TYPE_EXAMEN (ID_TYPE_EXAMEN);

alter table EXAMINER


add constraint FK_EXAMINER_EXAMINER_GROUPE foreign key (ID_GROUPE)
references GROUPE (ID_GROUPE);

alter table EXAMINER


add constraint FK_EXAMINER_EXAMINER2_MODULE foreign key (ID_MODULE)
references MODULE (ID_MODULE);

alter table EXAMINER


add constraint FK_EXAMINER_EXAMINER3_FORMATEU foreign key (ID_FORMATEUR)
references FORMATEUR (ID_FORMATEUR);

alter table EXAMINER


add constraint FK_EXAMINER_EXAMINER4_SALLE foreign key (ID_SALLE)
references SALLE (ID_SALLE);

alter table EXAMINER


add constraint FK_EXAMINER_EXAMINER5_EXAMEN foreign key (ID_EXAMEN)
references EXAMEN (ID_EXAMEN);

alter table FORMATEUR


add constraint FK_FORMATEU_USER_FORM_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

alter table GROUPE


add constraint FK_GROUPE_EST_DE_FI_FILLIERE foreign key (ID_FILLIERE)
references FILLIERE (ID_FILLIERE);

alter table LIEN


add constraint FK_LIEN_ELEMENT_E_PUBLICAT foreign key (ID_ELEMENT)
references PUBLICATION (ID_ELEMENT);

alter table MESSAGE


add constraint FK_MESSAGE_A_LE_SUJE_SUJET foreign key (ID_SUJET)
references SUJET (ID_SUJET);

alter table MESSAGE


add constraint FK_MESSAGE_POSTE_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

ISMONTIC de Tanger 18
Projet de fin de formation - Intramic 2010/2011

alter table MESSAGE


add constraint FK_MESSAGE_RECOIE_MP_UTILISAT foreign key (UTI_ID_USER)
references UTILISATEUR (ID_USER);

alter table MESSAGE_INSTANTANE


add constraint FK_MESSAGE__ENVOIE_IN_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

alter table MESSAGE_INSTANTANE


add constraint FK_MESSAGE__RECOIE_IN_UTILISAT foreign key (UTI_ID_USER)
references UTILISATEUR (ID_USER);

alter table PASSER


add constraint FK_PASSER_PASSER_EXAMEN foreign key (ID_EXAMEN)
references EXAMEN (ID_EXAMEN);

alter table PASSER


add constraint FK_PASSER_PASSER2_STAGIAIR foreign key (ID_STAGIAIRE)
references STAGIAIRE (ID_STAGIAIRE);

alter table PUBLICATION


add constraint FK_PUBLICAT_PARTAGER_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

alter table PUBLICATION


add constraint FK_PUBLICAT_TYPE_PUBL_TYPE_PUB foreign key (ID_TYPE_PUBLICATION)
references TYPE_PUBLICATION (ID_TYPE_PUBLICATION);

alter table PUBLIE


add constraint FK_PUBLIE_PUBLIE_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

alter table PUBLIE


add constraint FK_PUBLIE_PUBLIE2_PUBLICAT foreign key (ID_ELEMENT)
references PUBLICATION (ID_ELEMENT);

alter table PUBLIER


add constraint FK_PUBLIER_PUBLIER_MODULE foreign key (ID_MODULE)
references MODULE (ID_MODULE);

alter table PUBLIER


add constraint FK_PUBLIER_PUBLIER2_COURS foreign key (ID_COURS)
references COURS (ID_COURS);

alter table PUBLIER


add constraint FK_PUBLIER_PUBLIER3_FORMATEU foreign key (ID_FORMATEUR)
references FORMATEUR (ID_FORMATEUR);

alter table SALLE


add constraint FK_SALLE_SALLE_EST_TYPE_SAL foreign key (ID_TYPE_SALLE)
references TYPE_SALLE (ID_TYPE_SALLE);

alter table STAGIAIRE


add constraint FK_STAGIAIR_APPARTIEN_GROUPE foreign key (ID_GROUPE)
references GROUPE (ID_GROUPE);

alter table STAGIAIRE


add constraint FK_STAGIAIR_STAGIAIRE_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

alter table STATUT


add constraint FK_STATUT_PUBLICATI_PUBLICAT foreign key (ID_ELEMENT)
references PUBLICATION (ID_ELEMENT);

alter table USER_NOTIF_PUB


add constraint FK_USER_NOT_DECLENCHE_UTILISAT foreign key (UTI_ID_USER)
references UTILISATEUR (ID_USER);

alter table USER_NOTIF_PUB


add constraint FK_USER_NOT_NOTIF_PUB_PUBLICAT foreign key (ID_ELEMENT)

ISMONTIC de Tanger 19
Projet de fin de formation - Intramic 2010/2011

references PUBLICATION (ID_ELEMENT);

alter table USER_NOTIF_PUB


add constraint FK_USER_NOT_USER_NOTI_UTILISAT foreign key (ID_USER)
references UTILISATEUR (ID_USER);

alter table UTILISATEUR


add constraint FK_UTILISAT_APPARTIEN_USER_GRO foreign key (ID_GROUP)
references USER_GROUP (ID_GROUP);

-- Séquences utilisées dans la base de données :


create sequence cle_password_seq;
create sequence com_seq;
create sequence pm_seq;
create sequence subject_seq;
create sequence notif_seq;
create sequence pub_seq;
create sequence lien_seq;
create sequence statut_seq;
create sequence msg_pr_seq;

ISMONTIC de Tanger 20
Projet de fin de formation - Intramic 2010/2011

4. Fonctionnalités basiques :
● Connexion :

Le site n’est accessible qu’aux personnes inscrites, aucune partie du site n’est
destinée aux utilisateurs anonymes.
Les utilisateurs du site doivent s’authentifier avec leur login et leur mot de passe,
qui leur est fournit à l’avance par l’administration.
Un système de récupération par email du mot de passe est prévu aux personnes
qui ont oubliés leur code secret.
Á la connexion de l’utilisateur, ce dernier est redirigé par défaut vers la page
d’accueil.
Tout accès non-authentifié vers les pages du site, va rediriger le visiteur vers la
page de login, et une fois connecté l’utilisateur est redirigé vers la page initialement
demandée.
● Communication :

o Les messages privés :

Chaque utilisateur peut envoyer des messages privés (MPs), à un seul destinataire à
la fois. Les messages font partie d’un sujet, qui sera initié par le premier message
envoyé.
Á l’affichage d’un sujet quelconque, les MPs sont affichés par ordre croissant de
publication, avec le nom et prénom de l’utilisateur et la date de post du message.
Les messages seront ajoutés via un formulaire d’ajout rapide, en bas des messages
sur la page du sujet, sans avoir à actualiser la page (AJAX).

○ -Messagerie instantanée :

Les utilisateurs pourront entrer en conversation à deux, en cliquant sur le nom de la


personne avec laquelle on souhaite discuter, depuis une liste des membres
connectés, présente sur toutes les pages du site-web.
Chaque conversation s’ouvre dans une fenêtre pop-up distincte.

o Les profils :

Chaque utilisateur a un profil consultable par les autres membres du site,


cette page contient toutes les informations sur l’utilisateur en question, ainsi que ses
activités tel que (changement d’information, partage d’un lien, rédaction d’un
article,etc)
Les autres utilisateurs peuvent laisser un message sur le profil d’autres utilisateurs,
le message sera ensuite visible à tous les visiteurs de la page.

● Publication d’éléments :

○ Articles
Les utilisateurs peuvent également poster des articles, ces derniers ont un sujet et un
corps.

ISMONTIC de Tanger 21
Projet de fin de formation - Intramic 2010/2011

L’ajout d’un nouvel article, ajoutera automatiquement une activité sur le profil de celui
qui l’a rédigé.

o Cours

Seuls les formateurs peuvent publier des cours, ces cours concernant un et un seul
module. Les cours publiés apparaîtront par la suite sur leur page de profil, ou dans
une partie réservée aux cours.
Pour parcourir la partie des cours, on spécifie deux critères : module et formateur.

o Liens

Chaque utilisateur pourra partager une adresse URL en la postant directement sur
son profil.
Au partage du lien, l’utilisateur pourra laisser un commentaire spécifiant la nature du
lien ou donner davantage d’informations sur son contenu.
Le lien ajouté sera visible sur la page de profil, ainsi que sur la page d’accueil
des autres utilisateurs.

o Commentaires

Tout élément doit être identifié par un numéro unique et peut être commenté
par plusieurs utilisateurs.
Á l’ajout d’un nouveau commentaire, les personnes ayant postés déjà commenté le
même élément seront notifiés de ce nouveau message.

ISMONTIC de Tanger 22
Projet de fin de formation - Intramic 2010/2011

5. Fonctionnalités étendues :

L’administration :
● Gestion des utilisateurs :
La seule manière d’ajouter des utilisateurs est de le faire via la partie
administration, l’utilisateur est par la suite notifié de son inscription et un mot de
passe lui est généré.
Il est possible de modifier ou de supprimer les utilisateurs depuis la partie
administration.
Un utilisateur est affecté à un groupe d’utilisateurs , et selon son appartenance à un
groupe quelconque il pourrait administrer ou modérer selon le niveau d’accès(level)
de son groupe.

● Gestion des éléments publiés :


Les éléments publiés peuvent être modérés ou édités par les administrateurs, aussi
bien les stagiaires ayant un niveau d’accès relativement élevé. ils peuvent
également modérer le contenu des autres utilisateurs, ainsi tout contenu illicite ou
spam sera enlevé plus rapidement.
Les liens et les messages sur les profils, ne sont pas modifiables , ils peuvent
seulement être supprimés par les personnes ayant droit. Les articles en revanche peuvent
être édités et la dernière modification sera stocké ainsi qu’une mention « Dernière
modification par : Pseudo , Le 1er Janvier 2011 à 08 : 13 » sera gardée en bas de l’article.
● Gestion des emplois du temps :
Les données concernant les emplois du temps vont êtres saisies par l’administration.
Un module est enseigné par un formateur avec un groupe dans une séance identifiée par
un jour de la semaine et heure (1ère à 4ème). L’administration peut modifier l’emploi du
temps avec la précision de la période de validité (une date de début et date de fin).

ISMONTIC de Tanger 23
Projet de fin de formation - Intramic 2010/2011

Les formateurs :
● Publication des cours :
Un formateur publie un cours en format DOC ou PDF, chaque cours est affecté à
un module choisi à partir de la liste des modules.
Les publications seront accessibles par les stagiaires intéressées via le profil du
formateur, ou éventuellement une page qui répertorie les cours par module.
Le formateur peut par la suite éditer son cours, soit en modifiant le titre du cours ou
le module auquel il est affecté ou carrément le fichier.

● Programmation des examens :


Chaque formateur peut définir un examen, avec une date, un groupe et un module
ainsi que la salle où il fera l’examen.
Les listes de choix ne seront remplis qu’avec les données qui concernent ce
formateur.
Il enregistrera également le barème pour chaque examen , pour éviter qu’une note
supérieure à la note maximale ne soit enregistrée .

● Saisie des notes :


En définissant les critères (groupe, module), le formateur verra une liste des
examens passés lui appartenant, après au choix d’un examen il sera amené vers
une autre page pour saisir les notes pour chaque stagiaire.
Les notes saisies ne doivent pas dépasser le barème renseigné.

ISMONTIC de Tanger 24
Projet de fin de formation - Intramic 2010/2011

● Description détaillée des scénarios :


○ Les maquettes des pages principales

Page d’accueil de l’Intranet

C’est la page à laquelle l’utilisateur est redirigé après sa connexion au système, les activités
de tous les autres membres y sont affichés ainsi que les notifications sur les commentaires
faits sur vos publications ou après vos commentaires sur d’autres publications.

Vous pouvez sélectionner d’afficher que les publications d’un groupe d’utilisateurs, ou le
groupe de stagiaires auquel vous appartenez.

Le menu est le même sur quasiment toutes les pages, avec la liste des connectés et le
nombre de messages.

ISMONTIC de Tanger 25
Projet de fin de formation - Intramic 2010/2011

Exemple d’un profil d’un membre

Le profil de l’utilisateur permet de voir ses publications, et aussi la possibilité d’ajouter une
nouvelle publication (statut ou lien).

Une icône en guise de lettre, permet de contacter l’utilisateur via sa boite de réception.

ISMONTIC de Tanger 26
Projet de fin de formation - Intramic 2010/2011

o Les captures d’écran

Page de connexion

Récupération de mot de passe oublié

Redéfinition du mot de passe

ISMONTIC de Tanger 27
Projet de fin de formation - Intramic 2010/2011

Page d’accueil

Affichage du profil

ISMONTIC de Tanger 28
Projet de fin de formation - Intramic 2010/2011

Affichage d’une publication sur le profil

Nouveau message

ISMONTIC de Tanger 29
Projet de fin de formation - Intramic 2010/2011

6. Conclusion :

Quand le formateur nous a proposé ce sujet, nous avons tout de suite


accepté, d’une part parce que c’est un projet qui nous concerne de près dans l’institut
et d’autre part parce que c’est un travail qui pourra être déployé dans le centre de
formation.

Nous avons appris à mieux maitriser le JSP, et parallèlement les technologies


web, ainsi que la familiarisation avec l’outil de contrôle de version Mercurial, qui nous
a été d’une très grande utilité pour une meilleure progression dans le projet.

Le travail en groupe rencontrait des difficultés au début, mais on a pu


dépasser ces problèmes en abordant une politique commune de groupe. Les
conseils des formateurs nous ont été indispensables pour surpasser les problèmes
techniques.

Nous espérons que plus tard d’autres stagiaires vont étendre les
fonctionnalités de ce projet, en achevant toutes les parties proposés par le cahier des
charges, nous espérons également que ce projet marquera le début d’une initiative
pour implémenter les applications des stagiaires dans les centres de formation de
l’OFPPT.

ISMONTIC de Tanger 30