Skip to content

Nitor112221/clash_of_code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

147 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Это учебный проект специализации Django

Дисклеймер: все команды написаны для операционной системы linux, при их вызове проверьте, что на вашей OS они будут работать также, в ином случае поменяйте их в соответствие с синтаксисом терминала вашей OS

Необходимое ПО:

  1. Python версия 3.11, остальные версии могут работать нестабильно
  2. Git нужен для установки проекта из репозитория
  3. gettext нужен для работы локализации (если у вас линукс, можете воспользоваться следующей командой)
apt install gettext
  1. 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

Внимание, чтобы тесты прошли у вас на машине должен быть запущен докер

Информация про проекте

Структура базы данных

Схема базы данных

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors