Bourdel Théo

Capture d'écran de l'interface du projet WaterWays

WaterWays

ReactApi PlarformTailwindCSSGitHub ActionsFlowbite React

Visiter le site

Contexte

Projet réalisé en groupe de 4 personnes pendant le 1er semestre de ma 2ème année de Master. On devait créer une plateforme de réservation de services en ligne à l&aposaide de ReactJS et Api Platform. On avait comme obligation aussi d&aposhéberger notre projet sur un serveur et de mettre en place une CI/CD.

Description

En tant que client
  1. Recherche avec filtres de prestation ou prestataire avec carte de géolocalisation (style AirBnB)
  2. Landing page du prestataire avec les prestations disponible (ou celle sélectionnée)
  3. Choix des créneaux disponibles avec possibilité de choisir parmi les emploi du temps de plusieurs salariés
  4. Espace de visualisation de ses réservations avec possibilité :
    • d&aposannuler
    • décaler le RDV
    • de reprendre RDV (même prestataire / même prestation / même salarié)
  5. Ajouter un feedback (plusieurs notes en fonction du thème de prestataire avec moyenne par catégorie) sur une prestation déjà réalisée
En tant que prestataire
  1. Demander à devenir prestataire (avec validation du Kbis par un admin)
  2. Dashboard avec statistiques
  3. Ajouter un ou plusieurs établissement avec plusieurs prestations possibles
  4. Gérer son équipe de salariés par établissement ou globalement
  5. Gérer les planning d’équipe :
    • créneau des jours de travail (trouver un système simple et flexible de planification)
    • créneau d’indisponibilité (congés)
    • chaque salarié doit avoir un planning personnel basé sur ses créneaux horaires
  6. Historique des réservations
  7. Notification de nouvelle réservation
En tant qu’administrateur
  1. Dashboard avec statistiques
  2. CRUD complet pour l’ensemble des entités utilitaires
  3. Notification des demandes de prestataire (email)
  4. Validation des prestataires

Contraintes

Rest API avec API Platform
  1. Minimum 6 ressources (dont 1 ressource qui n’est pas une entité)
  2. Personnalisation des retours via Context Builder & Custom Normalizer
  3. Ressources sécurisées
  4. Extensions doctrine
  5. Opérations personnalisés
ReactJS
  1. Implémenter les components de manière à respecter une organisation Atomic Design
  2. Implémenter des traductions FR et EN (local ou API)
  3. Belle architecture de composants
  4. Mise en place du design pattern MVVC notamment par la mise en place de Contexte et custom hooks
Solutions de déploiements continus (CI&CD)
  1. Gestion des pipelines front et back indépendantes
  2. Test unitaires/fonctionnels dans la CI
  3. Dissocier la CI de la CD
  4. Tests avant de merge le code sur la branche main (au moment de la pull request)
  5. Mise en place d&aposoutils collaboratifs