Create a menu planning service which allows to manage weekly menu and associated recipies.
- A weekly menu contains a set of recipies. Each week different set of recipies are selected. See example menu for this week.
- A recipe contains ingredients, step-by-step instructions, nutirtional information, classification, and other metadata. See examples recipes here 1, 2, 3.
- A customer can review weekly menu as well as recipe by assigning ratings and/or adding comments.
- Create data models using your selected ORM for weekly menu, recipe, ingredients, review, etc. Make sure these data models are appripriately connected using
FK,1:M,M:Mrelationships. - Create REST APIs to create, list, read, update, delete data model objects. Bonus if you can secure API using API tokens (recommended) or JWT tokens. You can use Google Authentication to obtain JWT token.
- Create unit and E2E tests. For E2E API tests you can use Postman but ensure Postman collection are commited to your repository. For unit tests use a framework acccording to your stack.
- Make sure your tests can be run from a single command - create test runner
makefileorbashscript to run your tests.
Python 3, Flask as web framework, PeeWee as ORM, Docker as Container, PostgreSQL as a database, Pytest for unit test, Postman for API test
Authorization using JWT CRUD on all model items Auto-setup of postgre and web-tier using docker End to end testing using postman Logging Unit testing
-
Execute setup.sh which will set up all docker stack and bring up the environment.
-
After successful setup you should see web and db tier running in Docker.
-
To bring up the system you can use below command.
-
To bring up the system in dettached mode you can use below command.
-
To bring down the system you can use below command.
-
Sample Pytest results.
-
API documentation is published on postman https://documenter.getpostman.com/view/UVC3jTGL?version=latest






