Unispace est un projet permettant de centraliser plusieurs outils utils à la scolarité d'un étudiant en BUT. Cet outil permet notamment de retrouver son emploi du temps, calculer la moyenne pour ses UE, retrouver les devoirs ou le contenu des ressources (cours), etc.
Sa première version a été testée au département informatique de l'IUT de Montpellier-Sète par 55 étudiants lors de l'année universitaire 2022-2023.
Ces instructions vont vous permettre d'installer une copie du projet sur votre machine local, dans un but de développement et de test. Voir la section déploiement pour connaitre la marche à suivre lors du déploiement en production.
Pour le développement, le projet a été conteneurisé sous Docker afin de simplifier son installation sur tout type de machine. Afin d'utiliser Docker, il faut tout d'abord installer Docker Desktop que vous retrouverez ici.
L'installation sous Docker a été automatisée à l'aide d'un script d'installation.
- Si vous êtes sous windows, lancez le script docker/install.bat
- Si vous êtes sous linux ou mac os, lancez le script docker/install.sh
Il se peut que l'installation de la base de données prenne un certain temps la première fois. Une fois que les ports sont marqués comme ouverts, redémarrez le backend de l'application avec :
docker container restart unispace-backendUne fois le backend redémarré, nous pouvons créer les tables de la base de données à l'aide de l'ORM sequelize. Pour plus d'informations, consultez la documentation.
docker exec unispace-backend npx sequelize-cli db:migrateUne fois les tables créées, vous pouvez charger le jeu de données proposé à l'aide de la commande suivante :
docker exec unispace-backend npx sequelize-cli db:seed:allCe jeu de données est constitué de plusieurs groupes distribués dans plusieurs classes pour 3 niveaux d'études et 3 parcours différentes. Le jeu de données propose également 5 utilisateurs représentatifs des 5 niveaux de droits d'accès (plus d'informations sur ces droits dans le wiki du projet) :
| Prénom | Nom | Mot de passe | Groupe de classe | Droits | |
|---|---|---|---|---|---|
| Jean | La Fontaine | jean.lafontaine@etu.umontpellier.fr | mdp1234! | Q1A | utilisateur non vérifié |
| Émile | Zola | emile.zola@etu.umontpellier.fr | mdp1234! | Q1A | étudiant |
| Charles | Baudelaire | charles.baudelaire@etu.umontpellier.fr | mdp1234! | Q1A | publicateur |
| Albert | Camus | albert.camus@etu.umontpellier.fr | mdp1234! | Q1A | administrateur |
Si vous souhaitez utiliser les emails pour des tests, modifiez le fichier backend/config/mail.json. Pour les tests, vous pouvez utiliser l'outil ethereal.email.
Pour lancer le projet, vous pouvez vous rendre dans Docker Desktop et lancer le projet Unispace. Il peut être nécessaire de redémarrer le backend si la base de données n'était pas déjà démarrée.
(Cette section est incomplète.)
Merci de ne pas utiliser le docker proposé à des fins de mise en production. Celui-ci a été conçu pour des fins de développement et n'est pas adapté en l'état pour un environnement de production.
Lors de la mise en production, plusieurs fichiers doivent être configurés.
Les fichiers de configuration sont dans le dossier backend/config
Configuration du backend
| Nom | Contenu |
|---|---|
| frontend | URL de base pour accéder au frontend |
| lienVerification | URL pointant vers la partie en frontend s'occupant de vérifier les comptes des utilisateurs |
| lienMdpOublie | URL pointant vers la partie en frontend s'occupant de modifier le mot de passe s'il est oublié |
| lienInvitationGroupe | URL permettant à un utilisateur de rejoindre un groupe de travail |
| token | Token utilisé pour l'authentification des utilisateurs via JsonWebToken (doit être fort) |
Configuration de la base de données utilisée par le backend.
Configuration du serveur mail.
Les fichiers de configuration sont dans le dossier frontend/src/assets/config
Configuration du lien avec le backend
| Nom | Contenu |
|---|---|
| url | URL de base pour accéder au backend |
Personnalisation de l'affichage des enseignants
| Nom | Contenu |
|---|---|
| icones | Liste des enseignants dont une icon existe |
- Node.js - Environnement de développement utilisé
- npm - Gestionnaire de packets (dépendances du projet)
- Express.js - Framework web pour node.js utilisé en backend
- Sequelize.js - ORM utilisé en backend pour créer le lien avec la base de données
- Angular - Framework web utilisé en frontend
- SCSS - Préprocesseur CSS du projet (celui-ci doit être compilé en CSS)
Merci de lire le fichier CONTRIBUTING.md pour plus de détails sur comment participer à ce projet, ainsi que le fichier CODE_OF_CONDUCT.md pour connaitre les règles de conduite à adopter.
Vous retrouverez l'ensemble de la documentation du projet dans le wiki, ainsi que dans le code source.
N'hésitez pas à poser des questions sur le projet via le discord de celui-ci : https://discord.gg/VyQA6MNp6q. Une réponse à votre question peut déjà exister, pensez à vérifier celà avant de poser votre question.
- Raphaël DELAYGUES (Rafiki) - Première version -
Voir également la liste des contributeurs ayant participé au projet.
Ce projet est sous licence MIT, voir le fichier LICENSE.md pour plus de détails.