Giter Club home page Giter Club logo

retail-order-api's Introduction

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/


retail-order-api's People

Contributors

edmaroff avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.