Write a very basic Django project that uses Django Rest Framework to provide a RESTful API for a point of sale that let's you track the inventory of products and the orders done.
Use the provided project boilerplate and add the code needed to pass all the unit tests provided in both modules.inventory.tests
and modules.orders.tests
.
Use at least the models provided in both modules.inventory.models
and modules.orders.models
, but feel free to add any extra model if needed. You are only allowed to use django-rest-framework
and no other library.
The API must use JSON format and should provide the following endpoints and functionalities:
- List all existing products
- Create a new product
- Retrieve an existing product
- Update an existing product
Note that deleting a product is not allowed.
A product must allow you to save:
- The description of the product
- The unit price of the product in cents
- The available stock of the product
- List all existing orders
- Create a new order
- Retrieve an existing order
Note that updating or deleting a product is not allowed.
A order must allow you to save/calculate:
- The list of items that were purchased
- The quantity of each item
- The total amount earned by the order in cents
Note that when a order is created, the corresponding products' stock must be updated.
- Fork this repository
- Get a local copy of your fork
- Create a new branch
- Install the requirements with
pip install -r requirements.txt
- Run your tests with
python src/manage.py test src
- Commit your work when the command above reports an OK result
- Push your work to your fork
- Send a pull request from your fork's branch to this repo
- Complete the
Dockerfile
to assemble an image. - Configure with
Gunicorn
and connect with a web server or reverse proxy that you prefer. - Deploy it in the cloud infrastructure that you prefer (Ask for an instance if you don't have).
- Create a basic document with the steps to deploy.