Home - Mickael-Klein/OpenClassRooms-DevReact-Projet_10 GitHub Wiki

Documentation du Projet Learn@Home

Learn@Home est une application qui met en relation des enfants en difficulté scolaire avec des enseignants bénévoles. Il s'agit du dixième projet de la formation OpenClassRooms : "Développeur Front-End React". Le but étant ici de se mettre dans la position d'un chef de projet, de définir les besoins de l'application et de s'inspirer des méthodes agiles pour la planification de celle-ci.

Les besoins du client ont été défini lors d'une première réunion, vous pouvez en retrouver la synthèse dans le documents suivant: Notes+-+Ré[email protected]

La documentation présente l'ensemble des pages qui seront présentes dans l'application avec pour chacune:

  • Le titre
  • L'objectif principal
  • Les questions à poser au client pour clarification et réadaptation du cahier des charges fonctionnel
  • La liste des composants à développer
  • Les user stories
  • Un diagramme de cas d'usage

Les maquettes du site ont été réalisées via figma et sont disponibles ici: Maquettes Learn@Home

Un projet github a également été créé et contient le Kanban de la réalisation du projet: Kanban Learn@Home

Structure de l'application

L'application est composée des pages suivantes:

Schéma Structure application

Organisation Générale

L'utilisateur devra s'authentifier avant de pouvoir accéder aux autres pages que celles liées à la connexion/inscription. Une fois authentifié, la page par défaut sera le dashboard et un menu de navigation lui permettra de naviguer entre les différentes pages. Deux types d'utilisateurs existent, enseignant et étudiant.

Stack Technique

La proposition actuelle de la stack technique devra être discutée avec le client afin de s'assurer des différentes contraintes techniques et ou demandes spécifiques de sa part.

Front end: Application React codée en Typescript. Possibilité d'avoir rapidement et à coût modéré une application mobile future via React Native. Technologie moderne et évolutive, bénéficiant d'un large support, et recrutement futur d'un dev ou entreprise prestataire aisé pour maintenance ou évolution de l'application. SASS en tant que préprocesseur CSS afin de s'assurer d'une structure d'organisation conventionnelle et simple à maintenir. Les échanges avec l'API back end se feront avec fetch.

Back end : API NodeJs/Express, simple à déployer, peu couteuse et bénéficiant de possibilité d'évolution intéressante. Permet de maintenir l'ensemble de la stack en Javascript pour limiter la multiplication des devs sur le projet. Son rôle principal sera de gérer l'authentification, et de communiquer avec la base de donnée pour l'affichage dynamique des données utilisateur.

Database : Base de donnée MongoDB, base de données NoSQL flexible, performante et évolutive. Capable de gérer des pics de trafic importants, de stocker des données de différents types ce qui est souhaitable pour l'application (données utilisateurs, chat, données géospatiales etc...)

Hebergement: L'application sera hébergée sur AWS, qui offre une infrastructure cloud évolutive et facilement scalable. Cela permettra de répondre à d'éventuels pics de trafic sans impacter les performances de l'application. De plus, la gestion des coûts sera maitrisée car AWS est un service "pay as you go", ce qui signifie que les coûts ne seront facturés que pour les ressources utilisées.

Liens Utiles