Node.js Meal Planning Service for Commercial Kitchen
Budget: $250 – $750 USD
Hello, we are a small business providing fresh meals to our subscription Customers. We have a cookbook of Recipes that we follow to provide our Customers with a restorative and nutritious diet. As we are scaling up, our current meal planning process is becoming a bottleneck, so we are looking to automate it with a Node.js service. We are looking for a JavaScript or TypeScript Back End developer with a working knowledge of algorithms who is proficient in unit testing. If you choose to accept this task, you will be evolving a process we currently do manually. In order to interface with our spreadsheet-based process, the service must read and write local CSV files and serve CSV files over a RESTful API. No Front End components are required.
This back end service would make use of our customers' Orders, prior Meal Plans and our Recipes in order to generate an optimal Meal Plan for the following Day.
The Meal Planning Service must use the practices of Domain Driven Design to capture our business concepts like Customers, Diets, Recipes, etc. To illustrate, a Customer has a Diet. A Diet is composed of Diet Days. Diet Days have Meals like Breakfast, Lunch, Dinner, Snack, and Drink. Each Meal can have 0 or more Recipes.
The Meal Planning Service must capture our existing meal planning rules and apply them to create the best possible Meal Plan. This is similar to any number of variations on the Knapsack problem. Our rules:
- A Customer could choose the days on which they would like to receive Meals (daily, only weekdays, every other day, every day except tomorrow, etc).
- Our Recipes have ingredients that sometimes cannot be repeated two days in a row and ingredients that cannot be repeated within a meal.
- In considering which Recipes to include in the Meal Plan, we must always try to minimize the number of unique Recipes as to reduce the complexity of preparing that day's Meals in the kitchen.
As a developer, you will be responsible for:
- Documentation
- creating a component and flow diagram
- documenting the RESTful API
- a README with all the instructions needed to install and run the Service locally
- Contributing working code as Pull Requests into our Git repository
- Making use of Pull Requests as documentation by including a comprehensive description of the functionality of the code.
- Reaching 100% unit test code coverage
- Making 2 updates a day:
- First, when you start working, communicate what you plan to achieve today
- Second, before you end working, communicate what you have achieved and if you have run into any blockers.
Looking forward to talking to you!
This back end service would make use of our customers' Orders, prior Meal Plans and our Recipes in order to generate an optimal Meal Plan for the following Day.
The Meal Planning Service must use the practices of Domain Driven Design to capture our business concepts like Customers, Diets, Recipes, etc. To illustrate, a Customer has a Diet. A Diet is composed of Diet Days. Diet Days have Meals like Breakfast, Lunch, Dinner, Snack, and Drink. Each Meal can have 0 or more Recipes.
The Meal Planning Service must capture our existing meal planning rules and apply them to create the best possible Meal Plan. This is similar to any number of variations on the Knapsack problem. Our rules:
- A Customer could choose the days on which they would like to receive Meals (daily, only weekdays, every other day, every day except tomorrow, etc).
- Our Recipes have ingredients that sometimes cannot be repeated two days in a row and ingredients that cannot be repeated within a meal.
- In considering which Recipes to include in the Meal Plan, we must always try to minimize the number of unique Recipes as to reduce the complexity of preparing that day's Meals in the kitchen.
As a developer, you will be responsible for:
- Documentation
- creating a component and flow diagram
- documenting the RESTful API
- a README with all the instructions needed to install and run the Service locally
- Contributing working code as Pull Requests into our Git repository
- Making use of Pull Requests as documentation by including a comprehensive description of the functionality of the code.
- Reaching 100% unit test code coverage
- Making 2 updates a day:
- First, when you start working, communicate what you plan to achieve today
- Second, before you end working, communicate what you have achieved and if you have run into any blockers.
Looking forward to talking to you!