- Adding user to the manager group.

- Manager login using username and password and generating token.

- Adding user to delivery crew using manager token.

- Manager Assigning orders to delivery crew.

- Order assigned to delivery crew.

- Registering Customer.

- Logging in as customer and generating token.

- Customer browsing through menu-items.

- Customer adding item to cart.

This project implements a set of APIs to facilitate various functionalities for an online food ordering and delivery system. The APIs are designed to cater to different user roles including admins, managers, delivery crew, and customers.
In this project, the APIs provide the following functionalities:
-
Admin Features:
- Assign users to the manager group
- Access the manager group with an admin token
- Add menu items
- Add categories
-
Manager Features:
- Log in
- Update the item of the day
- Assign users to the delivery crew
- Assign orders to the delivery crew
- Access orders assigned to them
-
Delivery Crew Features:
- Access orders assigned to them
- Update an order as delivered
-
Customer Features:
- Register
- Log in using username and password to obtain access tokens
- Browse all categories
- Browse all menu items at once
- Browse menu items by category
- Paginate menu items
- Sort menu items by price
- Add menu items to the cart
- Access previously added items in the cart
- Place orders
- Browse their own orders
To run the API_Project locally, follow these steps:
Clone the repository: git clone https://github.com/your_username/RestaurantSite.git
Navigate to the project directory: cd LittleLemon
Install dependencies: pip install pipenv-> pipenv install-> pipenv shell
Run the development server: python manage.py runserver
Access the website in your API Development Platform at http://localhost:8000.
- Django
- Django Rest Framework
- Djoser
- Insomnia for testing the API.
Contributions are welcome! If you have any suggestions, improvements, or bug fixes, please submit a pull request. For major changes, please open an issue first to discuss the changes.
This project is licensed under the MIT License.