Дисклеймер: все команды написаны для операционной системы linux, при их вызове проверьте, что на вашей OS они будут работать также, в ином случае поменяйте их в соответствие с синтаксисом терминала вашей OS
- Python версия 3.11, остальные версии могут работать нестабильно
- Git нужен для установки проекта из репозитория
- gettext нужен для работы локализации (если у вас линукс, можете воспользоваться следующей командой)
apt install gettext- Docker нужен для поднятия брокера сообщений в лице redis
Для установки проекта вы можете прописать следующую команду в терминал:
git clone https://github.com/Nitor112221/clash_of_code После нужно перейти в директорию проекта:
cd team-1- Создание виртуального окружения:
python3 -m venv .venv- Активация виртуального окружения:
source .venv/bin/activate- Зависимости для продакшена:
pip install -r requirements/prod.txt- Зависимости для разработки:
pip install -r requirements/dev.txt- Зависимости для тестирования:
pip install -r requirements/test.txt- Скопируйте все параметры из файла template.env в .env с помощью команды:
cp -r template.env .env- Установите нужные вам настройки в файле .env
- После этого перейдите в основную директорию проекта
cd clash_of_code- Создание базы данных (для этого нужно применить все миграции):
python manage.py migrate- Если у вас есть дамп базы данных, подходящей по структуре ER схемы, вы можете его загрузить с помощью следующей команды
python manage.py loaddata <путь до файла с вашей фикстурой>- Создание супер пользователя для входа в админ-панель (запомните данные, которые вы ввели)
python manage.py createsuperuser - Теперь вы сможете зайти в админ панель по адресу
127.0.0.1:8000/adminили по другому, который вы настроили для вашей системы
Внимание в проекте теги к задачам можно создавать только через admin панель, это сделано для того, чтобы теги были только официальные и имели смысл
- Скомпилировать файлы локализации:
django-admin compilemessages- Перейдите в директорию с образом языка (это можно сделать с помощью команды ниже)
cd docker/images/python- соберите контейнер для тестирующей системы для языка python:
docker build -t python3_11_image .- Вернитесь назад в директорию проекта
cd ../../..- Запустите redis в качестве брокера сообщений через docker
docker run -d -p 6379:6379 redis- Чтобы проверить, что redis успешно запустился можете выполнить команду:
docker container ls- в списке запущенных образов должен быть redis
Внимание, перед запуском основного сервера рекомендуется запустить worker (если вы запустите их не в том порядке, ничего критичного не произойдёт, все посылки будут добавлены в redis и начнут выполнятся после запуска worker'а)
- Запуск тестирующей системы (для linux):
celery -A clash_of_code worker -l info- Запуск тестирующей системы (для windows):
celery -A clash_of_code worker -l info -P gevent- Запустить приложение:
python manage.py runserverГотово, теперь вы можете перейти на сайт по адресу 127.0.0.1:8000 или localhost:8000
В проекте есть тесты, к сожалению из-за особенности сервера под ci/cd там нельзя запустить docker в docker, по этой причине часть тестов была исключена из проверки в ci/cd, вы можете проверить эту группу тестов отдельно с помощью команды:
python manage.py test --tag test_systemВнимание, чтобы тесты прошли у вас на машине должен быть запущен докер
