Description du projet
Dans l’univers étudiant, les espaces d’études jouent un rôle essentiel dans l’apprentissage en dehors des salles de classe. De nombreuses institutions scolaires présentent des espaces d’étude, généralement sous forme de local situé dans leurs bibliothèques. Ces institutions possèdent un système de réservation permettant aux étudiants de réserver un espace d’étude.
Cependant, ces systèmes ne sont pas pleinement adaptés aux besoins des étudiants et souffrent souvent de plusieurs problèmes. Tout d’abord, dans les établissements scolaires, la restriction de la réservation aux salles d'études et aux seuls étudiants de l’établissement concerné entraîne une utilisation inefficace de tout l'espace disponible au sein de ces établissements. Ensuite, il est difficile d’adapter ces systèmes de réservations actuels pour répondre aux besoins de flexibilité. En effet, dans ces systèmes, il n'est pas évident d'étendre la réservation à tout espace favorable à l'étude mais aussi les normes et politiques de résevation sont souvent contraignantes. De plus, la plupart de ces systèmes de réservation connaissent un problème d’utilisabilité notamment ceux utilisés par les bibliothèques universitaires au Québec. En effet, dans ces derniers, il n'est souvent pas évident d'identifier et de distinguer les différentes bibliothèques disponibles, il n'y a souvent pas de guide clair sur la manière d'effectuer une réservation correcte et il n'est souvent pas facile de naviguer parmi les options de réservation.
Pour répondre aux lacunes énoncées, nous proposons de construire Nestor, une plateforme de réservation inclusive et dynamique mettant l'accent sur l'accessibilité et la flexibilité. Tout d’abord, Nestor ouvre la réservation à tout espace favorable à l'étude et à l'entraide, que ce soit dans une bibliothèque, un centre, un parc ou un commerce. Grâce à des fonctionnalités avancées de recherche, les utilisateurs peuvent facilement trouver les espaces correspondant à leurs besoins spécifiques, qu'il s'agisse de salles de travail en groupe, de zones de silence ou de laboratoires spécialisés. En permettant aux utilisateurs de modifier facilement leurs réservations et de notifier le système en cas de libération d'espace, Nestor favorise une gestion agile et efficace des espaces d'études. De plus, les utilisateurs pourront communiquer des informations sur le statut de l’espace réservé et inviter ou autoriser d'autres personnes à les rejoindre lors de leurs sessions d'étude. Enfin, Nestor permet aussi aux étudiants de donner leur avis sur les espaces utilisés, ce qui pourra aider les établissements à améliorer la gestion des espaces d'étude de manière continue et efficace.
Exigences
Besoins fonctionnels
- Un administrateur d'espace peut ajouter un espace d'étude
- Un administrateur d'espace peut supprimer un espace d'étude
- Un administrateur d'espace peut modifier un espace d'étude
- Un administrateur d'espace peut notifier un locataire
- Un administrateur d'espace peut créer un groupe d'espace d'étude
- Un administrateur d'espace peut modifier un groupe d'espace d'étude
- Un administrateur d'espace peut supprimer un groupe d'espace d'étude
- L'étudiant en tant que hôte peut inviter d'autres étudiants dans sa session d'étude
- L'étudiant peut annuler sa réservation
- L'étudiant peut réserver un espace d'étude
- L'étudiant peut demander à rejoindre une session d'étude
- L'étudiant en tant qu'invité peut évaluer une session d'étude
Besoins non-fonctionnels
- ( Utilisabilité ) Interface intuitive : L'interface utilisateur doit être claire, simple à naviguer, et intuitive, permettant aux utilisateurs de trouver et réserver des espaces d'étude facilement
- ( Portabilité ) Compatibilité multi-plateforme : Nestor doit être accessible depuis différents appareils et systèmes d'exploitation, incluant les ordinateurs de bureau, les tablettes et les smartphones.
- ( Sécurité ) Protection des données : Assurer la confidentialité et la sécurité des données personnelles des utilisateurs en utilisant des protocoles de chiffrement pour le stockage et la transmission des données.
- ( Sécurité ) Authentification des données : Implémenter des mécanismes d'authentification robustes et des contrôles d'accès pour garantir que seules les personnes autorisées peuvent accéder à certaines fonctionnalités et données.
- ( Fiabilité ) Disponibilité : La plateforme doit être disponible et opérationnelle de manière continue, avec un temps d'arrêt minimal.
- ( Fiabilité ) Performance : Le système doit être capable de gérer un grand nombre de demandes simultanées sans ralentissement notable, en particulier pendant les périodes de forte demande.
- ( Maintenabilité ) Code modulaire et documenté : Le code source de la plateforme doit être bien structuré, modulaire et documenté pour faciliter les mises à jour et les améliorations futures.
- ( Maintenabilité ) Support technique : Offrir un support technique efficace pour résoudre rapidement les problèmes rencontrés par les utilisateurs.
- ( Maintenabilité ) Flexibilité d'évolution : La plateforme doit être conçue de manière à pouvoir intégrer de nouvelles fonctionnalités et répondre aux évolutions des besoins des utilisateurs et des établissements.
Infrastructure
Rapport d'avancement
Semaine 15 –
Présentation
Objectifs
- Commencer à préparer une présentation
Réalisations
- Présentation du projet
Liens
Semaine 14 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Continuer l'implémentation
- Commencer à rédiger un rapport
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Continuer la modélisation des données
- Continuer Implémentation : ( React ) Cartes
- Implémentation : ( React ) Réservation & Authentification
- Implémentation : ( Fastify & MongoDB ) Réservations & User : routes, api, schema
Notes
Pendant la réunion :
Semaine 13 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Continuer l'implémentation
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Continuer la modélisation des données
- Continuer Implémentation : ( React ) Filtre & Cartes
- Implémentation : ( React ) Réservation & Authentification
- Implémentation : ( Fastify & MongoDB ) Réservations & User : routes, api, schema
Notes
Pendant la réunion :
- Terminer les parties 'réservation' et 'authentification'
Semaine 12 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Continuer l'implémentation
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Continuer la modélisation des données
- Continuer Implémentation : ( React ) Filtre & Cartes
- Implémentation : ( React ) Connexion & Réservation
- Implémentation : ( Fastify & MongoDB ) Réservations : routes, api, schema
Notes
Pendant la réunion :
- Structure du schéma Réservation à modifier : Ajouter les dates de createDate & endDate
Semaine 11 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Continuer l'implémentation
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Continuer la modélisation des données
- Continuer Implémentation : ( React ) Filtre & Cartes
- Implémentation : ( React ) Connexion & Réservation
- Implémentation : ( Fastify & MongoDB ) Réservations : routes, api, schema
Notes
Pendant la réunion :
- Réservations : changement de date -> delete & create new
- Réservations : changement de guests -> update
- Gestion des espaces: filter by Organisation
- Affichage des images : slide -> sections séparées
Semaine 10 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Continuer l'implémentation
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Continuer la modélisation des données
- Continuer Implémentation : ( React ) Filtre & Cartes
- Implémentation : ( React ) Connexion & Réservation
- Implémentation : ( Fastify & MongoDB ) Spaces : routes, api, schema
Notes
Références des outils utilisés :
- Tanstack Query
Pendant la réunion :
- Terminer les sections de filtres et de réservations
- Fixer le bug d'affichage des cartes lors de défilage
Semaine 9 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Continuer l'implémentation
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Continuer le prototype sur Figma
- Continuer la modélisation des données
- Implémentation : ( React ) Filtre & Cartes
- Implémentation : ( Fastify & MongoDB ) Spaces : routes, api, schema
Notes
Références des outils utilisés :
Pendant la réunion :
- Champs d'addresse : autocomplete
- À faire : Sections Filtres & page détail
Semaine 8 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Continuer l'implémentation
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Continuer le prototype sur Figma
- Continuer la modélisation des données
- Implémentation : ( React ) Filtre & Cartes
- Implémentation : ( Fastify & MongoDB ) Spaces : routes, api, schema
Notes
Références des outils utilisés :
Références pour l'apprentissage des outils du projet :
Pendant la réunion : Modélisation des données & Implémentation
- React-router autorisé
- base de données : availabilities -> periodic ?
Semaine 7 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Commencer l'implémentation
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Continuer le prototype sur Figma
- Continuer la modélisation des données
- Implémentation : ( React ) Initialisation, page d'accueil
Notes
Références des outils utilisés :
Références pour la modélisation des données :
Références pour l'apprentissage des outils du projet :
Pendant la réunion : Modélisation des données & Démarrage de l'implémentation
- Agrégation : Admin -> Organisation
- Composition : Equipement -> Space
- Composition : Mes favoris -> User
- Groupes d'utilisateurs
- Grooupes d'espaces
- Implémentation : Initialisation de React & fastify & MongoDB
Semaine 6 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception & Implémentation
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Déterminer les exigences du projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Continuer la modélisation des données
- Commencer l'implémentation
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Avancer le prototype sur Figma
- Commencer la modélisation des données sur Miro
- Ajouter des exigences non-fonctionnelles
Notes
Références pour le prototypage UX/UI :
Références pour la modélisation des données :
Références pour l'apprentissage des outils du projet :
Pendant la réunion :
- Message -> Communication externe
- Structure de la page 'Home' : 1. Search 2. Filter 3. Tags 4. Content 5. Footer
Semaine 5 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception
Objectifs
- Continuer à apprendre les outils envisagés pour le projet
- Déterminer les exigences du projet
- Continuer le prototypage du UI/UX et le flux d'Activités
- Commencer la modélisation des données
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Avancer le prototype sur Figma
- Commencer la modélisation des données sur Miro
Notes
Références pour le prototypage UX/UI :
Références pour la modélisation des données :
Références pour les outils du projet :
Pendant la réunion : Prototype UI/UX
- Page 'Ajouter un groupe' : Enlever l'option 'nombre de personnes disponibles'
- Ajouter 'modifier un groupe'
- Page 'horaire' : Juste afficher l'horaire individuellement
- Page 'Ajouter un nouvel espace et un nouveau groupe' : Permettre aux administrateurs d'ajouter plusieurs intervalles pour les heures d'ouverture
Semaine 4 –
Élaboration des exigences & Analyse préliminaire & Prototypage & Conception
Objectifs
- Choisir un outil pour le Back-end
- Continuer à apprendre les outils envisagés pour le projet
- Déterminer les exigences du projet
- début du prototypage de l'expériece étudiant dans le système de réservation avec le cu de réservation d'espace étude
- Continuer le prototypage du UI/UX et le flux d'Activités
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Outil du back-end choisi : fastify
- Avancer le prototype sur Figma
Notes
Références pour le prototypage UX/UI :
Références pour les outils du projet :
Pendant la réunion : Prototype UI/UX
- Même flux de confirmation de la création du compte pour les étudiants et les administrateurs. Mais les informations nécessaires à remplir seront différentes.
- Catégorie : (Types d'espace) Bibliothèque, Université, Nombre de personnes, Parc, Café, ...
Semaine 3 –
Élaboration des exigences & Analyse préliminaire
Objectifs
- Choisir un outil pour le Back-end
- Continuer à apprendre les outils envisagés pour le projet
- Déterminer les exigences du projet
- Commencer le prototypage du UI/UX et le flux d'Activités
Réalisations
- Continuation des apprentissages des outils avec les tutoriels en lignes
- Comparaison des outils du back-end (fastify, Express, FastAPI, Flask, Django)
- Affinement des CUs en utilisant un diagramme de CU
- Choix des outils pour le prototypage UI/UX : Figma, Miro et sketch à la main
- Commencer le prototype sur Figma
Notes
Références pour le prototypage UX/UI :
- Figma
- Miro
- Inspiration 1 : map
- Inspiration 2 : centris
- Adobe Express : Logo
- Concordia Library
- McGill Library
- University of Saskatchewan Library
- University of Toronto Library
- University of British Columbia Library
- Trivago
- Airbnb
- Polytechnique Bibliothèque
- UQAM Bibliothèque
- ÉTS Bibliothèque
Références pour les outils potentiels pour le back-end du projet :
Pendant la réunion :
- Établit un plan d'objectifs pour les semaines 3 et 4
- Construit un diagramme de CU pour bien cueillir les besoins fonctionnels (Admin espace, étudiant)
Semaine 2 –
Élaboration des exigences & Analyse préliminaire
Objectifs
- Terminer la description du projet
- Continuer à apprendre les outils envisagés pour le projet
- Déterminer les exigences du projet
Réalisations
- Apprentissage de React et postCSS avec les tutoriels en lignes
- Cueillette des besoins fonctionnels
Notes
Références pour l'apprentissage du PostCSS :
Pendant la réunion :
- Définir quelles sont les motivations du projet et donner les propositions pour établir la description du projet
- Discuter des choix d'outils pour le projet
Semaine 1 –
Ouverture de projet & Élaboration des exigences
Objectifs
- Prendre en main les outils qui seront utilisés pour le projet
- Produire une première version de l'échéancier
- Étudier le domaine, les notions et outils envisagés pour le projet
- Commencer la description du projet
Réalisations
- Choix d'outils pour Front-end : PostCSS, React
- Apprentissage de React avec les tutoriels en lignes
- Déveloper les idées pour la description du projet pendant la réunion
Notes
Références pour l'apprentissage du React :
Références pour étudier le domaine :