fidals / shopelectro

shopelectro.ru site's code
4 stars 5 forks source link
django ecommerce pdd refarm-site

Build Status PDD status

Shopelectro site documentation

Репозиторий интернет-магазина shopelectro. Разрабатываем по методологии PDD.

Команда

Линк на роли в команде разработки сайта.

Разворачиваем проект

Инструкции для быстрой развёртки проекта для разработки. Подробности смотрите в Makefile и в drone.yml.

Инструкция работает только для Линукса. Под Виндой нужна виртуалка. Как настроить виртуалку под Виндой.

Для сокращения введём такие алиасы::

bash alias dc="docker-compose"
bash alias dcp="docker-compose -f docker-compose-production.yml"

Для разработки

Готовим код к работе

# clone repositories
git clone git@github.com:fidals/refarm-site.git
git clone git@github.com:fidals/shopelectro.git
cd shopelectro/docker/
# this command will ask you to fill some files.
# See this instruction below to get out how to do it.
make deploy-dev

# optional
dc exec app python manage.py excel
dc exec app python manage.py price

Файлы env

make deploy-dev создаст файлы для окружения (env) со стандартными значениями. А затем попросит заполнить их.

Пару рекомендаций по заполнению:

Проверяем адрес http://127.0.0.1:8010 - загружается сайт. Вместо порта 8010 может быть другой - переменная окружения (env var) VIRTUAL_HOST_EXPOSE_PORT.

Makefile

docker/Makefile - единственная и полная инструкция для работы с локальным dev-окружением. Содержит все скрипты, которые мы используем для разработки. Например: подготовка среды, запуск тестов, внутренних команд приложения.

Запускаем тесты

# запускаем все тесты.
make test

# запускаем один тест
dc exec app python manage.py test shopelectro.tests.tests_selenium.TestClass.test_method

Fixtures

Некоторые тесты используют fixtures. Это заранее подготовленные данные из базы. Подробнее о фикстурах в документации Django.

Наши фикстуры лежат в папке shopelectro/fixtures Файл shopelectro/fixtures/dump.json сгенерирован специально для тестов. Если вам нужно добавить данных в тесты, пересоздайте этот файл с новыми данными и закоммитьте. Для пересоздания фикстур используйте команду shopelectro/management/commands/test_db.py Файл dump.json в контроле версий всегда должен соответстовать коду команды test_db.

Админка

Адрес: /admin/

Логин/пароль: admin/asdfjkl;

Для деплоя

Этот раздел полезен только Архитекторам. Деплой на сервер делаем руками.

make deploy

Бекапы

Создаем бекап

Запускаем специальный контейнер - se-backup-data:

cd <proj root>/docker
make backup

В результате работы контейнер создаст несколько архивов в хост-системе:

Применяем бекап

Для восстановления базы данных и медиафайлов достаточно запустить make restore. Скрипт скачает последний бекап с сервера и разместит файлы в продакшен-папках. Для доступа к бэкап-серверу используются public+private ключи.

N.B.: Некоторые данные (например, медиафайлы) могут иметь большой размер. На момент написания этой заметки, архив с медиафайлами Shopelectro весил ~4GB.

Архитектура

Continuous integration

Выполняет две задачи:

Как устроен CI внутри.

Фичи

https://github.com/fidals/refarm-site/blob/master/pages/README.md

Новый год

Товары без картинок

Есть отдельная ссылка на товары без картинок для удобства

Оптовые цены

Убрали их с интерфейса в этой задаче. Есть небольшая вероятность, что вернём. https://github.com/fidals/shopelectro/issues/801