Desafío Backend Node.js

Imagina que eres parte del equipo de desarrollo de Alegra. Hoy, tienes una misión desafiante: construir una aplicación que pondrá a prueba tus habilidades en Node.js, esperamos que seas retado en arquitectura, buenas prácticas en el desarrollo backend, atención al detalle y enfoque en el usuario.


🍔 ****¿En qué consiste?

Un reconocido restaurante ha decidido organizar una jornada especial de donación de comida, donde se espera una gran pero gran cantidad de comensales.

Los comensales recibirán un plato al azar. El gerente del restaurante indica a la cocina que se debe preparar un plato, la cocina selecciona aleatoriamente el plato a preparar y pide a la bodega de alimentos los ingredientes requeridos, si la bodega de alimentos tiene disponibilidad entrega los ingredientes a la cocina, si no debe comprarlos en la plaza de mercado. Cuando la cocina recibe los ingredientes, prepara el plato y entrega el plato preparado.

Gestionar manualmente este proceso y cada pedido es una tarea casi imposible para el gerente.

Tu misión será asegurar agilidad y calidad en el proceso, desarrollando un sistema que automatice la solicitud de platos, la gestión de ingredientes y la entrega final, optimizando los tiempos y asegurando que todos los comensales sean atendidos sin demoras.

El gerente es exigente y le gusta mantenerse a la moda por lo tanto ha exigido que el desarrollo debe montarse en una arquitectura de microservicios que corre con docker y con una interfaz intuitiva.

Solo la excelencia pasará el control de calidad del gerente. Esperamos que sea deslumbrado.


🔄  Flujo del sistema

  1. El gerente del restaurante presiona un botón que envía una orden a la cocina para preparar la cantidad de platos requerida.
  2. La cocina cuenta con una lista de 6 recetas disponibles (definidas por ti), las cuales deben usar únicamente los ingredientes disponibles (ver lista de ingredientes en la parte final del texto), todos los ingredientes deben ser usados en mínimo una receta. Cada receta contiene los ingredientes que la componen y la cantidad requerida de cada uno.
  3. Cuando la cocina recibe el pedido del gerente debe seleccionar aleatoriamente de la lista de recetas disponibles la cantidad de platos a preparar.
  4. ****La cocina debe pedir a la bodega de alimentos los ingredientes para preparar la cantidad de platos requeridos. Debe esperar que los ingredientes sean entregados para continuar con la preparación.