QuickFood is a robust food delivery API built with Django and Django REST Framework. It allows users to browse restaurants, view menus, place orders from multiple restaurants, and track order status. Restaurant owners can manage their restaurants, menus, and orders through a comprehensive dashboard.
- Browse restaurants and menu items
- Place orders from multiple restaurants in a single checkout
- Track order status
- View order history
- Create and manage restaurant profile (with images)
- Add, update, and delete menu items (with images)
- Manage incoming orders
- Update order status
- Access dashboard with statistics and recent items
POST /api/users/register/
- Register a new userPOST /api/users/login/
- Login and get access token
POST /api/create-restaurant/
- Create a new restaurantPUT /api/update-restaurant/
- Update restaurant detailsDELETE /api/delete-restaurant/
- Delete a restaurantGET /api/restaurants/
- List all restaurantsGET /api/restaurant/<restaurant_id>/
- Get restaurant details
POST /api/create-menus/
- Add a menu itemPUT /api/menu-update/<menu_id>/
- Update a menu itemDELETE /api/delete-menu/<id>/
- Delete a menu itemGET /api/menu-items/
- List all menu itemsGET /api/menu-item/<id>/
- Get menu item detailsGET /api/restaurant-menu-items/
- Get all menu items for owner's restaurant
POST /api/create-order/
- Create a new order (supports multiple restaurants)GET /api/my-orders/
- Get user's order historyPOST /api/update-order-status/<id>/
- Update order statusGET /api/user-orders/
- Get all orders for restaurant owner
- Backend: Django, Django REST Framework
- Database: PostgreSQL
- Authentication: JWT (JSON Web Tokens)
- Media Storage: Local storage with WhiteNoise for serving static files
-
Clone the repository:
git clone https://github.com/sakayat/quickfood-backend.git cd quickfood-backend
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Configure database in settings.py
-
Run migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver