Skip to content

Онлайн-магазин на базе Django, DRF и Vue3

Notifications You must be signed in to change notification settings

andrei-samofalov/e-shop-django

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

For english version see this readme

Интернет-магазин на базе Django и Vue3

Основные технологии

  • Frontend: HTML5, CSS3, JS, Vue3
  • Backend: python 3.10, django 4.2, django rest framework 3.14
  • Работа с данными реализована в СУБД PostgreSQL 15.2

Особенности

  • Структура базы данных доступна по ссылке
  • Frontend и backend приложения сообщаются посредством АПИ, написанном на DRF
  • Основные get-роуты АПИ кэшируются в локальной памяти
  • В админке возможны создание, просмотр, редактирование, удаление и деактивация (soft-delete) сущностей:
    • продукты и связанные с ними спецификации, тэги, отзывы, акции
    • категории, подкатегории
    • пользователи, в том числе с правами администратора
    • заказы, оплаты
  • Корзина пользователя реализована через сессию браузера, до момента оформления заказа информация о нем не добавляется и не хранится в БД.
  • Обращение сайта к АПИ посредством установки хедера в запросы ( X-HERE-I-AM)

Структура репозитория

  • misc/ - каталог с файлами, необходимыми для отображения документации
  • requirements/ - каталог с файлами, содержащими список зависимостей
  • shop/ - каталог с самим Django-проектом
  • .env.template - шаблон для объявления переменных среды
  • demo.sh - скрипт для запуска демонстрации
  • swagger.yaml - контракт АПИ

Инструкция по демонстрационному развертыванию

Вероятно, вы можете захотеть воспользоваться скриптом для установки и запуска

ВНИМАНИЕ! Инструкция ниже написана для пользователей Unix-подобных ОС, все команды должны запускаться в терминале. Предполагается, что на начало установки вы находитесь в корне проекта

  1. Скопируйте репозиторий.

  2. Переименуйте файл .env.template в .env, заполните его по шаблону.

  3. Установите зависимости.

    pip install -r requirements/base.pip
  4. Перейдите в корень проекта

    cd shop/
  5. Запустите PostgreSQL или вашу любимую СУБД (во втором случае необходимо изменить настройки)

  6. Примените миграции

    ВНИМАНИЕ! Перед выполнением следующих команд убедитесь, что ваша база данных готова для работы (см. п.5)

    python manage.py migrate
  7. Создайте немного демонстрационного контента, загрузив фикстуры

    python manage.py loaddata fixtures/data.json

    При этом в БД появятся:

    • каталоги
    • продукция с обзорами, спецификациями, тэгами
    • супер-пользователь с логином и паролем admin
    • три обычных пользователя (user1, user2, user3) с паролем 123456
  8. И, наконец, запустите тестовый сервер Django

    python manage.py runserver
  9. Сайт доступен по адресу http://localhost:8000/

  10. Администраторский раздел http://localhost:8000/admin/

Запуск СУБД PostrgeSQL

Предполагается, что у вас уже установлен docker

  1. Из корня проекта перейдите в каталог postgres

    cd shop/postgres/
  2. Введите команды

    docker compose build
    docker compose up -d

    В результате будет запущена СУБД PostgreSQL по адресу http://localhost:5432/

  3. Не забудьте вернуться на уровень выше

    cd ..

Вернуться к инструкции

Установка с помощью скрипта

  1. Запустите скрипт demo.sh из корня проекта

    source demo.sh

    Все настройки будут сделаны автоматически (вам все еще будет нужен предварительно установленный docker)

  2. Сайт доступен по адресу http://localhost:8000/

  3. Администраторский раздел http://localhost:8000/admin/

About

Онлайн-магазин на базе Django, DRF и Vue3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published