2024-11-27 14:47:54 -05:00
|
|
|
|
# Structure haut niveau
|
|
|
|
|
|
|
|
|
|
|
|
## But du projet
|
2024-12-09 12:55:13 -05:00
|
|
|
|
ÉvalueTonSavoir a été créé dû aux coûts importants des versions entreprises des logiciels similaires tels que Socrative et
|
|
|
|
|
|
Kahoot. Le but principal est d’être capable d’avoir une plateforme auto-hébergée et bien intégrée dans les systèmes
|
|
|
|
|
|
déjà présents des établissements scolaire.
|
2024-11-27 14:47:54 -05:00
|
|
|
|
|
|
|
|
|
|
## Requis
|
|
|
|
|
|
|
2024-12-09 12:55:13 -05:00
|
|
|
|
Le but du projet est d'avoir un outil gratuit et libre afin d'améliorer l'apprentissage avec les fonctionnalités suivantes :
|
2024-11-27 14:47:54 -05:00
|
|
|
|
|
2024-12-09 12:55:13 -05:00
|
|
|
|
- Permettre aux personnel enseignant de créer des quizs
|
|
|
|
|
|
- Permettre aux enseignant de collecter les résultats des quizs
|
|
|
|
|
|
- Permettre aux étudiants de faire ces quizs
|
2024-11-27 14:47:54 -05:00
|
|
|
|
- Permettre aux étudiants d'avoir une rétroaction
|
|
|
|
|
|
|
|
|
|
|
|
Afin de limiter le niveau de difficulté d'intégration du personnel enseignant:
|
|
|
|
|
|
|
|
|
|
|
|
- L'utilisation du format [`GIFT`](https://docs.moodle.org/405/en/GIFT_format) déja présent dans moodle doit être utilisé
|
|
|
|
|
|
- Le personnel et les étudiants doivent être capable de s'authentifier avec le portail de l'école
|
2024-12-09 12:55:13 -05:00
|
|
|
|
- Le démarrage du quiz doit se faire de façon rapide et efficace.
|
2024-11-27 14:47:54 -05:00
|
|
|
|
|
|
|
|
|
|
Afin de faciliter le déploiement de masse :
|
|
|
|
|
|
|
|
|
|
|
|
- Le logiciel doit être facile a déployer sur des machines locales
|
|
|
|
|
|
- Le logiciel doit être facile a déployer sur le cloud
|
|
|
|
|
|
- Le logiciel doit s'interconnecter à l'infrastructure présente
|
|
|
|
|
|
- Le logiciel doit être performant et fiable
|
|
|
|
|
|
|
|
|
|
|
|
## Architecture actuelle
|
|
|
|
|
|
|
|
|
|
|
|
```plantuml
|
|
|
|
|
|
@startuml
|
|
|
|
|
|
|
|
|
|
|
|
package Proxy{
|
|
|
|
|
|
component Nginx
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
package App{
|
|
|
|
|
|
component Frontend
|
|
|
|
|
|
component Backend
|
|
|
|
|
|
database MongoDb
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
cloud Provider{
|
|
|
|
|
|
component QuizRoom
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nginx --down-> Backend
|
|
|
|
|
|
Nginx --down-> Frontend
|
|
|
|
|
|
Nginx --down-> Provider
|
|
|
|
|
|
|
|
|
|
|
|
Backend --right-> MongoDb
|
|
|
|
|
|
Backend --up-> Nginx
|
|
|
|
|
|
|
|
|
|
|
|
Frontend --up-> Nginx
|
2024-11-27 15:52:32 -05:00
|
|
|
|
|
2024-11-27 14:47:54 -05:00
|
|
|
|
@enduml
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Details techniques
|
|
|
|
|
|
|
2024-12-09 12:55:13 -05:00
|
|
|
|
Le tableau ci-dessus est simplifié grandement car toutes les composantes sont individuelles. Ce qui veut dire que chacune
|
|
|
|
|
|
des parties pouraient être déployées sur un serveur différent et tout de même fonctionner. Ceci permettrai de distribuer
|
|
|
|
|
|
la charge de travail facilement entre plusieurs serveurs.
|
2024-11-27 14:47:54 -05:00
|
|
|
|
|
2024-12-09 12:55:13 -05:00
|
|
|
|
Le proxy Nginx permet de camoufler la séparation du backend et frontend en réunissant les deux parties sous la même url.
|
|
|
|
|
|
Il a aussi la tâche de diriger les appels de sockets vers leur machine interne dans le provider.
|
2024-11-27 14:47:54 -05:00
|
|
|
|
|
2024-12-09 12:55:13 -05:00
|
|
|
|
Le frontend dessert la partie visuelle de l'application.
|
2024-11-27 14:47:54 -05:00
|
|
|
|
|
2024-12-09 12:55:13 -05:00
|
|
|
|
Le backend s'occupe de tout les services suivants :
|
2024-11-27 14:47:54 -05:00
|
|
|
|
|
|
|
|
|
|
- La gestion des utilisateurs
|
|
|
|
|
|
- La gestion des quizs
|
|
|
|
|
|
- La gestion des médias
|
|
|
|
|
|
- La gestion des salles
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Liens vers détails supplémentaires
|
|
|
|
|
|
- [Gestion de l'authentification](./backend/auth.md)
|
|
|
|
|
|
- [Gestion de la salle de Quiz](./backend/salle-de-quiz.md)
|