L'objectif de ce test technique est d'évaluer
- ta capacité à résoudre des problèmes
- tes compétences en programmation et algorithmique
- tes compétences en front-end
- ta créativité
Au cours de l'expérience Pretto, un client va régulièrement prendre contact avec son conseiller. Pour cela, il doit prendre rendez-vous sur son espace client via une interface similaire à celle ci.
Cette grille est généré à partir de plusieurs points de données:
-
La liste d’évènements prévu dans son calendrier.
Exemple
- name: "RDV #1" start: 2020-02-01T08:00:00Z end: 2020-02-01T08:30:00Z - name: "RDV #2" start: 2020-02-01T08:45:00Z end: 2020-02-01T09:15:00Z
-
Les horaires de travail du conseiller. Il s'agit des plages horaires sur lesquels le conseiller est joignable (ou non)
- allowDayAndTime: # horaires de travail # day est compris dans [1..7] # start/end : [00:00 .. 23:59] - day: 1 # lundi start: "08:00" end: "12:00" - day: 1 # lundi start: "13:00" end: "17:30" - day: 2 # mardi start: "08:30" end: "13:00" - day: 2 # mardi start: "14:00" end: "18:00" - ... - blockSlot: # vacances - start: 2020-07-01 end: 2020-07-07 - ... - allowSlot: # permanences du samedi - start: "2021-03-06T08:00:00Z" end: "2021-03-06T16:00:00Z"
-
Les contraintes du rendez vous :
- La durée. Elle varie avec l'avancement du client dans le parcours. Certains durent 30 minutes, d'autres 15 minutes.
- La durée du temps de préparation. Il est nécessaire de réserver quelques minutes de battement pour permettre au conseiller de relire la fiche client. Juste avant le rendez-vous, il faut réserver 5 ou 15 minutes en amont selon le type de rendez-vous.
- L’heure de départ. Les rendez-vous commencent toujours à pile, et-quart, et-demi et moins-le-quart.
Créer un programme permettant de calculer les disponibilités d'un expert.
- Vous pouvez utiliser le langage de programmation de votre choix.
- N'hésitez pas à laisser des commentaires, écrire des tests unitaires et laisser un minimum de documentation pour lancer votre programme.
- Ne restez pas bloqué à cause d'une contrainte qui vous pose problème, soyez libre d'ignorer une difficulté pour avancer. Mieux vaut une solution partielle qui fonctionne bien qu'une solution complète qui fonctionne mal. J’ai volontairement omis l'attendu de chaque jeux de tests parce que ça fait aussi parti du job de déterminer comment le service va fonctionner.
Pour la partie à faire de votre côté, il n'est pas nécessaire pas d'implémenter toutes les contraintes décrites plus haut. Vous pouvez vous concentrer sur le jeu de tests suivant:
Pour la partie debrief ensemble, nous aborderons le problème dans son ensemble, avec par exemple le jeu de tests suivant:
Créer une application frontend en utilisant React qui reproduit le Figma ce dessous
Bonus: Créer une application backend avec l’algorithme de la partie précédente et faire communiquer les 2 applications