- cloner ce repo (ne pas le forker)
- créer un repo personnel (nous envoyer le lien dès le début de l'exercice)
- faire des commits clairs et pertinents
N'hésitez pas à faire du shameless code dans un premier temps. Et si c'est le cas, commit le séparemment ! Vous ne serez pas pénalisé, bien au contraire.
Le boilerplate pour l'exercice utilise Rails 5.2.1, Ruby 2.4.3 & React 16
Lancer le back (port 3000) :
cd server
bundle install
rails db:setup
rails sLancer le front (port 3001) :
cd client
npm install
npm startVous êtes une entreprise d'envoi de vêtements. Votre catalogue se compose de plusieurs produits (Product) et d'un certain nombre de pièces pour chaque produit (Item). Par exemple, il y a le produit Robe Rouge, et dans vos stocks vous disposez de 20 items (ou 20 pièces) correspondant à ce produit.
Il y a trois étapes avant l'envoi d'une pièce qui correspondent aux trois Postes logistiques :
- le picking où un opérateur sort les pièces nécessaires des stocks
- le checking où un opérateur contrôle la qualité des pièces
- le packing où un opérateur empacte la pièce et imprime le bordereau pour l'envoi
Au début de la journée, un opérateur (Operator) est affecté à un Poste (l'OperatorPoste correspondant est créé à ce moment là).
L'énoncé est volontairement très succinct. Nous souhaitons vous laisser le maximum de liberté sur les choix techniques. Si les choix effectués dans le boilerplate de l'application ne vous conviennent pas, vous êtes libres de les changer.
Votre CEO adoré aimerait mieux suivre les opérations et vous demande d'imaginer puis d'implementer une solution.
Plus exactement, il voudrait tracker le plus précisément possible chaque étape logistique (c'est-à-dire, à partir de la lecture de la base de données, pouvoir récupérer l'information telle pièce a été pické par X, checké par Y et n'a pas encore été packé par exemple).
Il n'est pas nécessaire d'implémenter la partie FRONT sur cette partie, une fois la solution élaborée en BACK, seedez là pour la suite de l'exercice.
A la fin de la journée, chaque opérateur se verra attribuer automatiquement un certain nombre de points suivant le nombre de pièces qu'il a traité. Un opérateur peut suivre l'évolution de ses points dans un dashboard personnel.
Cette section n'est pas nécessaire à la résolution du test. Voici quelques idées néamoins si vous voulez en faire plus.
- Refacto, toujours plus de refacto ... (code du boilerplate aussi)
- Si la réponse à la question "Est-ce que ma solution marche toujours si je rajoute une 4ème étape logisique ?" est non, faire en sorte qu'elle le devienne !
- La partie FRONT pour qu'un opérator puisse en direct picker, checker ou packer une pièce