Проект представляет собой API-сервис для автоматизации процесса закупок в розничной торговой сети. Основной целью является создание платформы для эффективного взаимодействия между покупателями и продавцами через API-интерфейс. Сервис позволяет клиентам просматривать ассортимент товаров различных магазинов, формировать заказы, а продавцам - управлять своими товарами, обрабатывать заказы и контролировать продажи через единую систему.
Ключевыми задачами проекта являются: обеспечение удобного пользовательского опыта для покупателей и продавцов, автоматизация процессов закупок и продаж, повышение эффективности взаимодействия между участниками торговой сети, а также создание масштабируемой и гибкой платформы для дальнейшего развития и интеграции с другими системами.
- Авторизация, регистрация и восстановление пароля через API. Также поддерживается регистрация через Google и GitHub.
- Управление контактами (телефон, адрес) для оформления заказов.
- Работа с корзиной: добавление, изменение, чтение и удаление товаров.
- Возможность создания заказов, содержащих товары от различных магазинов.
- Просмотр оформленных заказов, списка всех товаров, подробной информации о товарах, а также активных магазинов.
- Регистрация, активация и аутентификация через API, аналогично клиентам.
- Управление магазином: создание, просмотр, изменение и удаление.
- Управление продуктами с возможностью добавления фотографии.
- Загрузка товаров в базу данных из файла YAML и их выгрузка из базы.
- Просмотр списка всех категорий и активных заказов для своего магазина.
Используемые технологии
- Django
- Django REST framework
- Celery
- Redis
- Djoser
- social_django
- Imagekit
- Pytest
- Клонируйте репозиторий:
git clone https://github.com/Edmaroff/retail-order-api
- Перейдите в директорию проекта:
cd retail-order-api/retail_order_api
- Настройте почтовый сервер по SMTP
- Настройте OAuth приложения:
- Создайте и заполните файл
.env
по шаблону.env.template
. Файл.env
должен находиться в одной директории сmanage.py
.
После выполнения шагов из раздела "Предварительная установка":
- Соберите Docker-образ:
docker-compose build
- Запустите контейнеры:
docker-compose up
После выполнения шагов из раздела "Предварительная установка":
- Установите виртуальное окружение для проекта
venv
в директории проекта:python3 -m venv venv
- Активируйте виртуальное окружение:
source venv/bin/activate
- Установите зависимости из
requirements.txt
:pip install -r requirements.txt
- Выполните миграции:
python3 manage.py migrate
- Запустите Redis:
redis-server
- Запустите Celery:
python3 -m celery -A retail_order_api worker -l info
- Запустите сервер:
python3 manage.py runserver
Список эндпоинтов (документация Swagger) доступен по адресу: http://127.0.0.1:8000/api/v1/schema/docs/