-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRapport_Team5 (1).html
335 lines (295 loc) · 17.1 KB
/
Rapport_Team5 (1).html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rapport de projet</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
max-width: 1400px;
background-color:white;
}
header{
background-color: rgba(15, 95, 224, 0.635);
margin-top: 0px;
}
.Formalite{
text-align: center;
padding-top: 15px;
}
.p1{
margin-top: 0;
}
.div1{
width: auto;
display: flex;
justify-content: space-between;
align-items: flex-end;
}
.MembreSpan{
text-decoration: underline;
padding-bottom: 15px;
font-size: 19px;
}
.InfoProf{
width: 350px;
}
.container {
max-width: 800px;
margin: 0 auto;
}
h1 {
text-align: center;
color: #333;}
p {
margin-bottom: 10px;
}
ul {
padding-left: 20px;
margin-bottom: 10px;
}
strong {
color: #333;
font-size: 18px;
text-decoration: underline;
font-weight: 700;
}
.utilisation,.ModeFonction,.structure,.deployement {
background-color: rgb(187, 185, 185);
padding: 10px;
border-radius: 5px;
}
.Inline{
white-space: nowrap;
}
</style>
</head>
<body>
<header class="container">
<div class="Formalite">
<p class="p1">MINISTERE DE L'ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE</p>
<p class="p2">**********************</p>
<p class="p3">UNIVERSITE D'ABOMEY-CALAVI</p>
<p class="p4">**********************</p>
<p class="p5">INSTITUT DE FORMATION ET DE RECHERCHE EN INFORMATIQUE</p>
<p class="p6">**********************</p>
<p class="p7">RAPPORT DE PROJET INTEGRATEUR</p>
</div>
<div class="div1">
<ol>
<span class="MembreSpan">Membres du groupe 5:</span>
<li>ANATO Géraldo Fréjus (SI 2) 7% </li><br>
<li>ATTEREY Erika Hulda Osvalda (IM 1) 7%</li><br>
<li>DEGBELO Bil Zito Sègninou (SI 1) 7%</li><br>
<li>FAVI Ebénézer Junior (GL 1) 18%</li><br>
<li>GBODO Chris Vianney Maoulé (GL 1) 2%</li><br>
<li class="Inline">GOUDOU Ronald (Project Manager,SE&IoT 1) 18%</li><br>
<li>HOUSOUNON Segnon Elisabeth (IM 1) 7%</li><br>
<li>LEKE LEGBA Bryan Alan Marie-Félix (IA 1) 9%</li><br>
<li>ODJO Ariand Anthelme Segnon (GL 1) 7%</li><br>
<li>RADJI Anlim Ishola Adéwalé (IA 1) 0%</li><br>
<li>SESSOU Gaston Israël (IM 1) 0%</li><br>
<li>WEKENON TOKPONTO Sedjro Friedrich (SI 1) 18%</li><br>
<li>HOUNGA Coffi Serge 0% </li> <br>
</ol>
<div class="InfoProf">
<p class="p9"> Sous la supervision de:<br>-Mr Rateil HOUNDJI <br>-Mr Armand ACROMBESSI<br>-Mr Pierre ZOHOU</p></div> </div>
<p style="text-align: center" class="p10">Année Académique : 2022-2023</p>
</header>
<div class="container">
<h1>I- Mode de fonctionnement interne du groupe</h1>
<div class="ModeFonction">
<p>En tenant compte de la tâche à accomplir et de la contrainte de temps intense, nous avons organisé des réunions au
cours desquelles nous avons réalisé une analyse détaillée des besoins et des conceptions. Cela nous a permis de nous
assurer que le travail à réaliser était clair à tous les niveaux. C'est à ce moment-là que nous avons décidé de diviser
le groupe en deux sous-groupes de 6 personnes chacun. L'un des sous-groupes était chargé de la réalisation des
maquettes et de l'interface graphique de l'application. Pendant ce temps, les membres du sous-groupe "Back-end"
devaient être formés à Django (La formation a duré 6 jours pour la plupart des participants) et réfléchir à la
manière d'organiser la base de données. Malheureusement, seuls 3 membres sur 6 ont participé à la réalisation du
"Back-end", tandis que les 6 membres étaient impliqués dans le "Front-end".
</p>
<div>
<div Class="Equipe_du_FrontEnd">
<h2>Voici les membres de l'equipe du Front-end:</h2>
<p>
<li>FAVI Ebénézer Junior (GL 1)</li><br>
<li>DEGBELO Bil Zito Sègninou (SI 1)</li><br>
<li>ATTEREY Erika Hulda Osvalda (IM 1)</li><br>
<li>HOUSOUNON Segnon Elisabeth (IM 1)</li><br>
<li>LEKE LEGBA Bryan Alan Marie-Félix (IA 1)</li><br>
<li>ODJO Ariand Anthelme Segnon (GL 1)</li><br>
</p>
<h2>Voici les membres de l'equipe du back-end</h2>
<p>
<li>GOUDOU Ronald Precieux Sètondji (SE & IoT)</li><br>
<li>WEKENON TOKPONTO Sedjro Friedrich (SI 1)</li><br>
<li>ANATO Géraldo Fréjus (SI 2)</li><br>
<li>RADJI Anlim Ishola Adéwalé (IA 1)</li><br>
<li>GBODO Chris Vianney Maoulé (GL 1)</li><br>
</p>
<p> <h2>Les membres si après ne se sont pas manifesté</h2>
<li>SESSOU Gaston Israël</li><br>
<li>HOUNGA Coffi Serge </li>
</p>
</div>
</div>
<div class="list-container">
<h3>Les membres de notre groupe ayant participé ont joué un rôle précis et concis pour aboutir à la finalisation de notre projet. <br>
Voici entre autres les rôles des membres du groupe:</h3>
<ul>
<li>FAVI Ebénézer a été chargé de la création des pages d'accueil, d'inscription et de connexion, ainsi que de la réalisation du tableau de bord administrateur.
Il a également proposé un tableau de bord pour les étudiants.</li><br>
<li>HOUSOUNON Elisabeth a proposé un tableau de bord pour les étudiants.</li><br>
<li>LEKE LEGBA Bryan a proposé un tableau de bord pour les étudiants.</li><br>
<li>ATTEREY Erika, DEGBELO Bil Zito Sègninou et ODJO Ariand Anthelme Segnon se sont occupés des mises à jour du frontend.</li><br>
<li>ANATO Géraldo a contribué à la réalisation des tables dans la base de données.</li><br>
<li>GOUDOU Ronald et WEKENON TOKPONTO Friedrich ont travaillé de manière synergique sur le développement des fonctionnalités de l'application.</li><br>
<!-- <li> Outre ces points évoqués, nous avons participé ensemble à la réalisation du rapport.</li><br> -->
</ul>
</div>
</div>
<h1>II- Description de la conception (structure du projet, base de données, etc.)</h1>
<div class="structure">
<p>
Notre Application,SchedEase,est fondé sur une achitecture client serveur. <br>
Nous avons fait usage du framework Django pour réaliser notre projet, <br>
et avons utiliser le SGBD MYSQL ainsi notre base de données contient les tables suivante:
D'après le code fourni, voici les tables créées, leurs colonnes, leurs dépendances et leurs rôles :
Dans l'application pour l'administrateur :<br><br>
---Table "Matiere" :
<ul>
<li>"nom" (<span class="type">VARCHAR(100)</span>)</li>
<li>"enseignant" (<span class="type">VARCHAR(128)</span>)</li>
<li>"timing" (<span class="type">INT</span>)</li>
<li>"Informations" (<span class="type">VARCHAR(500)</span>)</li>
<li>"promotion" (<span class="type">VARCHAR(28)</span> DEFAULT '')</li>
<p> - Dépendances : Aucune <br>
- Rôle : Stocke les informations sur les matières.</p> <br>
</ul>
---Table "AdminUser" :
<ul>
<li>"nom" (<span class="type">VARCHAR(100)</span> DEFAULT '')</li>
<li>"prenom" (<span class="type">VARCHAR(100)</span> DEFAULT '')</li>
<li>"email" (<span class="type">VARCHAR(254)</span> UNIQUE DEFAULT '')</li>
<li>"numero_telephone" (<span class="type">VARCHAR(20)</span> DEFAULT '')</li>
<li>"mot_de_passe" (<span class="type">VARCHAR(128)</span> DEFAULT '')</li>
<li>"promotion" (<span class="type">VARCHAR(2)</span> DEFAULT '')</li>
<li>"Code_confirmation" (<span class="type">INT</span> NULL DEFAULT 000000)</li>
<p> - Dépendances : Aucune <br>
- Rôle : Stocke les informations sur les utilisateurs administrateurs.</p> <br>
</ul>
---Table "CoursProgrammer" :
<ul>
<li>"jour" (<span class="type">VARCHAR(100)</span>)</li>
<li>"promotion" (<span class="type">VARCHAR(128)</span>)</li>
<li>"heure_debut" (<span class="type">TIME</span>)</li>
<li>"heure_fin" (<span class="type">TIME</span>)</li>
<li>"matiere" (<span class="type">VARCHAR(150)</span>)</li>
<li>"salle" (<span class="type">VARCHAR(150)</span>)</li>
<li>"teacher" (<span class="type">VARCHAR(128)</span>)</li>
<p> - Dépendances : Aucune<br>
- Rôle : Stocke les informations sur les cours programmés.</p><br>
</ul>
---Table "CoursProgrammerL1" :
<ul>
<li>"Date" (<span class="type">VARCHAR(128)</span> DEFAULT '10/05/2023')</li>
<li>"jour" (<span class="type">VARCHAR(128)</span>)</li>
<li>"promotion" (<span class="type">VARCHAR(128)</span>)</li>
<li>"heure_debut" (<span class="type">VARCHAR(150)</span>)</li>
<li>"heure_fin" (<span class="type">VARCHAR(150)</span>)</li>
<li>"matiere_id" (<span class="type">INT</span>) [ForeignKey vers la table "Matiere"]</li>
<li>"salle" (<span class="type">VARCHAR(150)</span>)</li>
<li>"teacher" (<span class="type">VARCHAR(128)</span>)</li>
<li>"groupe" (<span class="type">VARCHAR(128)</span>)</li>
<p>- Dépendances : ForeignKey vers la table "Matiere"<br>
- Rôle : Stocke les informations spécifiques sur les cours programmés pour le groupe de niveau L1.</p> <br>
</ul>
<h4>Dans l'application pour les étudiants :</h4>
---Table "User" :
<ul>
<li>"nom" (<span class="type">VARCHAR(120)</span>)</li>
<li>"prenom" (<span class="type">VARCHAR(120)</span>)</li>
<li>"email" (<span class="type">VARCHAR(254)</span> UNIQUE)</li>
<li>"numero_telephone" (<span class="type">VARCHAR(20)</span>)</li>
<li>"mot_de_passe" (<span class="type">VARCHAR(128)</span>)</li>
<li>"code_de_confirmation" (<span class="type">INT</span> NULL DEFAULT NULL)</li>
<p> - Dépendances : Aucune <br>
- Rôle : Stocke les informations sur les utilisateurs étudiants.</p> <br>
</ul>
---Table "CoursProgrammerL1Etu" :
<ul>
<li>"Date" (<span class="type">VARCHAR(128)</span> DEFAULT '10/05/2023' <br> avec la validation Regex : "^\d{2}/\d{2}/\d{4}$" pour le format jj/mm/aaaa)</li>
<li>"jour" (<span class="type">VARCHAR(128)</span>)</li>
<li>"promotion" (<span class="type">VARCHAR(128)</span>)</li>
<li>"heure_debut" (<span class="type">VARCHAR(150)</span>)</li>
<li>"heure_fin" (<span class="type">VARCHAR(150)</span>)</li>
<li>"matiere" (<span class="type">INT</span>) avec une relation de clé étrangère vers la table "Matiere"</li>
<li>"salle" (<span class="type">VARCHAR(150)</span>)</li>
<li>"teacher" (<span class="type">VARCHAR(128)</span> DEFAULT '')</li>
<li>"groupe" (<span class="type">VARCHAR(128)</span>)</li>
<p> - Dépendances : ForeignKey vers la table "Matiere"<br>
- Rôle : Stocke les informations spécifiques sur les cours programmés pour le groupe de niveau L1 pour les étudiants.
</p> <br>
</ul>
</div>
<h1>Étapes à suivre pour le déploiement de notre application (pour des tests en local):</h1>
<div class="deployement">
<ul>
<li>Installez le SGBD MySQL sur votre ordinateur et créez une base de données nommée "mydjangotest".</li>
<li>Assurez-vous d'avoir un utilisateur nommé "root" avec le mot de passe "root" et possédant tous les privilèges sur la base de données que vous venez de créer.</li>
<li>Rendez-vous sur le dépôt GitHub en utilisant le lien suivant: <a href="https://github.com/RonaldPrecieux/PIL1_2223_5.git">https://github.com/RonaldPrecieux/PIL1_2223_5.git</a>.</li>
<li>Clonez le dépôt.</li>
<li>Une fois le dépôt cloné, ouvrez le terminal dans le dossier où vous avez cloné le dépôt et créez un environnement virtuel.</li>
<li>Accédez au dossier "timeplan" avec le terminal (cd timeplan). Vous devriez y trouver le fichier manage.py.</li>
<li>Ensuite, tapez la commande "python -m manage runserver" pour lancer le serveur et tester notre application en local.</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<h1>Manuel d'utilisation - Application d'Emploi du Temps</h1>
<div class="utilisation">
<strong>Introduction</strong>
<p>Le manuel d'utilisation fournit des instructions détaillées sur l'utilisation du projet d'emploi du temps. Ce guide vous aidera à naviguer dans l'application, à gérer votre emploi du temps et à tirer le meilleur parti de ses fonctionnalités.</p>
<div class="inscription">
<strong>Inscription</strong>
<p>Pour SchedEase, le processus d'inscription des administrateurs d'emploi du temps et des étudiants diffère un peu.</p>
<h4>Processus d'inscription des administrateurs</h4>
<p>Pour créer un administrateur d'emplois du temps, il faut au préalable créer un compte super utilisateur en utilisant les commandes DJANGO. Ce super utilisateur peut être le directeur de l'établissement. Il est conseillé de laisser cette tâche aux concepteurs du Backend de l'application. Ensuite, accédez au dashboard DJANGO en ajoutant '/Admin' à l'adresse IP qui apparaît dans la barre d'URL. Ensuite, le super utilisateur est invité à se connecter et à ajouter les administrateurs d'emplois du temps en spécifiant, au niveau du champ "Promotion", l'emploi du temps de cet administrateur qui sera appelé à être modifié.</p>
<h4>Processus d'inscription des étudiants</h4>
<p>Accédez simplement à la page d'inscription pour créer un compte. Attention : une adresse e-mail doit être unique dans la base de données, sinon un message d'avertissement s'affiche.</p>
</div>
<div class="connexion">
<strong>Connexion</strong>
<p>Pour commencer à utiliser l'application d'emploi du temps, suivez les étapes ci-dessous pour vous connecter:</p>
<ul>
<li>Accédez à la page de connexion de l'application.</li>
<li>Saisissez votre adresse e-mail et votre mot de passe.</li>
<li>Cliquez sur le bouton "Se connecter".</li>
</ul>
<p>Le processus de connexion est le même pour les administrateurs et pour les étudiants. Ils utilisent la même page de connexion et ont droit aux mêmes fonctionnalités de connexion et de récupération de compte. Ainsi, après une connexion réussie, les étudiants pourront accéder à leur tableau de bord qui leur permet uniquement de voir et de filtrer les emplois du temps. Les administrateurs, quant à eux, auront accès à leur tableau de bord qui leur permettra de créer, de supprimer et de publier les emplois du temps.</p>
</div>
<div class="dashboard">
<strong>Tableau de bord Étudiants</strong>
<p>Une fois connecté, l'étudiant est redirigé vers une page où s'affiche l'emploi du temps de la semaine. Ce dernier a la possibilité de voir l'emploi du temps de la semaine qui lui plaît et de le filtrer en fonction du groupe et de l'enseignant.</p>
<strong>Tableau de bord Administrateurs</strong>
<p>Une fois sur le tableau de bord administrateur, l'administrateur devra d'abord enregistrer les cours à programmer avant de chercher à les programmer. Ensuite, il a aussi la possibilité de mettre à jour les emplois du temps des semaines futures.</p>
</div>
<div class="déconnexion">
<strong>Déconnexion</strong>
<p>Lorsque vous avez terminé d'utiliser l'application d'emploi du temps, vous pouvez vous déconnecter en suivant les étapes ci-dessous:</p>
<ul>
<li>Cliquez sur le lien "Déconnexion" ou l'icône correspondante.</li>
<li>Vous serez déconnecté de votre compte et redirigé vers la page de connexion.</li>
</ul>
</div>
</div>
<p>Merci pour la lecture.</p>
</div>
</div>
</body>
</html>