For english version see this readme
- 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-подобных ОС, все команды должны запускаться в терминале. Предполагается, что на начало установки вы находитесь в корне проекта
-
Скопируйте репозиторий.
-
Переименуйте файл .env.template в
.env
, заполните его по шаблону. -
Установите зависимости.
pip install -r requirements/base.pip
-
Перейдите в корень проекта
cd shop/
-
Запустите PostgreSQL или вашу любимую СУБД (во втором случае необходимо изменить настройки)
-
Примените миграции
ВНИМАНИЕ! Перед выполнением следующих команд убедитесь, что ваша база данных готова для работы (см. п.5)
python manage.py migrate
-
Создайте немного демонстрационного контента, загрузив фикстуры
python manage.py loaddata fixtures/data.json
При этом в БД появятся:
- каталоги
- продукция с обзорами, спецификациями, тэгами
- супер-пользователь с логином и паролем
admin
- три обычных пользователя (user1, user2, user3) с паролем 123456
-
И, наконец, запустите тестовый сервер Django
python manage.py runserver
-
Сайт доступен по адресу http://localhost:8000/
-
Администраторский раздел http://localhost:8000/admin/
Предполагается, что у вас уже установлен docker
-
Из корня проекта перейдите в каталог
postgres
cd shop/postgres/
-
Введите команды
docker compose build docker compose up -d
В результате будет запущена СУБД PostgreSQL по адресу http://localhost:5432/
-
Не забудьте вернуться на уровень выше
cd ..
-
Запустите скрипт demo.sh из корня проекта
source demo.sh
Все настройки будут сделаны автоматически (вам все еще будет нужен предварительно установленный docker)
-
Сайт доступен по адресу http://localhost:8000/
-
Администраторский раздел http://localhost:8000/admin/