Skip to content

API-сервис заказа товаров для розничных сетей

License

Notifications You must be signed in to change notification settings

Edmaroff/retail-order-api

Repository files navigation

GitHub Actions Coverage Status API Docs Python version Django Version Django REST Framework Version

API Сервис заказа товаров для розничных сетей


Описание

Проект представляет собой API-сервис для автоматизации процесса закупок в розничной торговой сети. Основной целью является создание платформы для эффективного взаимодействия между покупателями и продавцами через API-интерфейс. Сервис позволяет клиентам просматривать ассортимент товаров различных магазинов, формировать заказы, а продавцам - управлять своими товарами, обрабатывать заказы и контролировать продажи через единую систему.

Ключевыми задачами проекта являются: обеспечение удобного пользовательского опыта для покупателей и продавцов, автоматизация процессов закупок и продаж, повышение эффективности взаимодействия между участниками торговой сети, а также создание масштабируемой и гибкой платформы для дальнейшего развития и интеграции с другими системами.

Пользователи сервиса:

Клиент (покупатель):

  • Авторизация, регистрация и восстановление пароля через API. Также поддерживается регистрация через Google и GitHub.
  • Управление контактами (телефон, адрес) для оформления заказов.
  • Работа с корзиной: добавление, изменение, чтение и удаление товаров.
  • Возможность создания заказов, содержащих товары от различных магазинов.
  • Просмотр оформленных заказов, списка всех товаров, подробной информации о товарах, а также активных магазинов.

Магазин (продавец):

  • Регистрация, активация и аутентификация через API, аналогично клиентам.
  • Управление магазином: создание, просмотр, изменение и удаление.
  • Управление продуктами с возможностью добавления фотографии.
  • Загрузка товаров в базу данных из файла YAML и их выгрузка из базы.
  • Просмотр списка всех категорий и активных заказов для своего магазина.
Схема базы данных Схема БД
Используемые технологии
  • Django
  • Django REST framework
  • Celery
  • Redis
  • Djoser
  • social_django
  • Imagekit
  • Pytest

Запуск проекта

Предварительная установка

  1. Клонируйте репозиторий:
    git clone https://github.com/Edmaroff/retail-order-api
  2. Перейдите в директорию проекта:
    cd retail-order-api/retail_order_api
  3. Настройте почтовый сервер по SMTP
  4. Настройте OAuth приложения:
  5. Создайте и заполните файл .env по шаблону .env.template. Файл .env должен находиться в одной директории с manage.py.

Запуск с Docker

После выполнения шагов из раздела "Предварительная установка":

  1. Соберите Docker-образ:
    docker-compose build
  2. Запустите контейнеры:
    docker-compose up

Локальный запуск

После выполнения шагов из раздела "Предварительная установка":

  1. Установите виртуальное окружение для проекта venv в директории проекта:
    python3 -m venv venv
  2. Активируйте виртуальное окружение:
    source venv/bin/activate
  3. Установите зависимости из requirements.txt:
    pip install -r requirements.txt
  4. Выполните миграции:
    python3 manage.py migrate
  5. Запустите Redis:
    redis-server
  6. Запустите Celery:
    python3 -m celery -A retail_order_api worker -l info
  7. Запустите сервер:
    python3 manage.py runserver

Список эндпоинтов (документация Swagger) доступен по адресу: http://127.0.0.1:8000/api/v1/schema/docs/


About

API-сервис заказа товаров для розничных сетей

Topics

Resources

License

Stars

Watchers

Forks

Languages