- Что такое мат. бой?
- Настройка проекта перед запуском
- Регистрация
- Личный кабинет
- Уведомления
- Создание и менеджмент турниров
- Создание игр, ведение протокола
- Подача заявки
- Работа с менеджером
Мат. бои любят многие математики по всей России. Никакая математическая смена не обходится без них. Также уже более 25 лет по всей России проходят мероприятия посвященные именно мат. боям.
Но до сих пор в них не используется никакая система автоматизации: все заявки подаются вручную преподавателями, протоколы заполняются вручную, а о результатах игр можно было узнать только от своих знакомых непосредственно участвующих в них.
Для начала команды распределяются по лигам, для того чтобы сильные команды играли с сильными, слабые со слабыми. В каждой лиге независимый от других зачёт.
У каждой команды есть капитан и его заместитель. Первый общается с судьями и имеет право брать таймауты. Второй делает то же самое пока капитан у доски.
Двум командам выдаётся одинаковый набор задач. Они решают их в течении нескольких часов. Далее они собираются в одном помещение вместе с судьями и проходит сама процедура математического боя.
Он состоит из нескольких раундов, в каждом из которых одна из команд вызывает другую рассказать решение задачи. Вызванная команда может проверить корректность вызова. По итогам раунда судьи распределяют 12 очков между командами и собой, если команда по каким либо причинам потеряли их.
подробнее об этом мероприятии можно прочитать здесь
- Для того, чтобы получать обратную связь от пользователей в значение FEEDBACK_MAIL укажите необходимый адрес электронной почты
- Сгенерируйте 2 случайные строки и вставьте их как значения SECURITY_PASSWORD_SALT и SECURITY_EMAIL_SALT
Особые неудобства при продакшене и запуске проекта вызывают локали. Если приложение запустилось, но НЕ работет, попробуйте поменять значение LOCALE в файле config.py
Возможные значения для русского языка: ru, ru_RU, ru_RU.UTF-8
В проекте предусмотрена смена почты пользователя, смена и восстановление пароля, а также уведомления. Для рассылки сообщений пользователям используется SMPT сервер.
Сайт тестировался с использованием Google аккаунта, поэтому далее следует краткая иструкция по настройке SMPT сервера Google
- Заведите новый аккаунт Google для использования почтового ящика.
- Укажите адрес почты как значения MAIL_DEFAULT_SENDER и MAIL_USERNAME файла configs.py
- Введите пароль от аккаунта как значение MAIL_PASSWORD
- Перейдите по ссылке и разрешите небезопасные приложения
- Перейдите по ссылке, нажмите "Продолжить"
- Перейдите по ссылке и включите IMAP
- Откройте файл config/congigs.py и введите следующие данные:
- MAIL_SERVER - адрес SMTP сервера Gmail - smtp.gmail.com
- MAIL_PORT - 465
- MAIL_USE_SSL - разрешен ли протокол SSL
True
илиFalse
(для корректной работы - True) - MAIL_USE_TSL - разрешен ли протокол TSL
True
илиFalse
(для корректной работы - False)
Также про настройку SMPT сервера можно прочитать здесь
В целях корректной регистрации на сайте используется reCAPTCHA, предоставленная компанией Google. Ниже о ее настройке в 2х словах.
-
Перейдите на сайт и нажмите кнопку Admin console
-
Заполните следующие поля:
- Ярлык (название) капчи, которую вы хотите применить к сайту
- Тип капчи (ПРОЕКТ ТЕСТИРОВАЛСЯ НА v.2 - ФЛАЖОК "Я НЕ РОБОТ")
- Домен (Адрес хост-версии сайта, туллень ngrok или localhost 127.0.0.1)
- Владелец - аккаунт Google. (Можно использовать аккаунт, к которому привязана почта SMPT сервера)
- Примите условия использования
-
После регистрации капчи вас перенаправит на страницу с двумя ключами. Их нужно будет скопировать и вставить в значение RECAPTCHA_PUBLIC_KEY (ключ сайта) и RECAPTCHA_PRIVATE_KEY (секретный ключ) configs.py в папке config
Также про настройку вы можете прочитать здесь
Для того, чтобы веб-сервер поддерживал корректную интеграцию с социальной сетью ВКонтакте, необходимо внимательно прочитать и выполнить следующие действия:
- Войти под своим аккаунтом и перейти по ссылке, далее следуйте в раздел "Мои приложения"
-
Далее нажмите на кнопку "Создать приложение"
- Название введите любое
- Платформа - "Сайт"
- Укажите любой адрес сайта и базовый домен, позже при настройке их нужно будет поменять
-
Переходите теперь во вкладку "Настройки" и откройте файл configs.py в папке config
- Скопируйте 7 цифр "ID приложения" и вставьте их в значение CLIENT_ID файла конфигурации
- Скопируйте защищенный ключ и вставьте его в значение SECRET_KEY
-
Включите OPEN API
-
Поля "Адрес сайта" и "Базовый домен" на странице Настройки приложения заполните, как только вы запустите проект с помощью ngrok или поставите на хост.
ВНИМАНИЕ! Нельзя подключить localhost к приложению ВКонтакте.
Рекомендуем истользовать ngrok или иные туннели для удобства тестирования (но учтите, что ngrok не поддерживает более 20 запросов в минуту).
Главное - не забудьте прописать адрес сайта в настройках приложения, чтобы интеграция с социальной сетью прошла удачно.
Платформа поддерживает уведомдения не только через почту, но и через бота группы ВКонтакте. Для того, чтобы эта функция работала, следуйте при настройке инструкции ниже
- Создайте группу, к которой будет подключен бот. Введите любые данные.
- Как только сообщество было создано, в адресной строке есть ID сообщества (несколько цифр после слова group). Скопируйте его БЕЗ МИНУСА и вставьте как значение VK_GROUP_ID в файле конфигурации configs.py.
- Перейдите в панель "Управление" через главую страницу, зайдите в раздел "Сообщения" и включите их.
-
Далее в разделе "Настройки" перейдите во вкладку "Работа с API"
- Создайте ключ доступа с правом написания сообщений
- Подтвердите действие по просьбе ВКонтакте
- Скопируйте ключ доступа и вставьте его в файл configs.py как значение ACCESS_TOKEN
Бот может НЕ работать при хостинге на сторонних хостингах. Однако на localhost все работает отлично
На сайте существует два способа регистрации
- Ввести все данные вручную, пройти капчу и нажать кнопку "Зарегистрироваться"
- по желанию можно автоматически включить уведомления по почте
- При нажатии на кнопку вас перенаправит на страницу подтверждения доступа ВКонтакте
- при нажатии "Разрешить" вас перенаправят обратно на страницу, где будут заполены поля, полученные из профиля ВКонтакте. Вы можете их редактировать
- После подтверждения регистрации интеграция с ВКонтакте будет подключена автоматически; однако, чтобы получать уведомления, необходимо написать в сообщения указанной в сноске группы.
На странице пользователя есть следующие функции:
- Сменить почту или пароль.
- Привязать или отвязать страницу ВКонтакте
- Включить или выключить уведомления о новых постах через электронную почту или бота ВКонтакте
Также слева имеется список всех команд, в которых участвует пользователь.
Доступ к функционалу имеет только владелец страницы, список команд может просматривать любой
- Чтобы получать уведомления через соц. сеть необходимо первоочередно написать в сообщения сообществу. Ссылку на него можно получить в сноске при регистрации и при привязке страницы к аккаунту на сайте. Также она указана в сообщении на электронную почту об осуществленному подключении страницы ВКонтакте.
- Когда пользователя добавили в команду, ему ВСЕГДА отправляется уведомление об этом на почту и при возможности во ВКонтакте
- Для того, чтобы пользователю приходили оповещения об обновлениях в турнире, необходимо на странице нужного турнира поставить галочки об уведомлениях
- Заглушить уведомления о новых постах ВСЕХ турниров можно в личном кабинете
- При вызове функции смены почты или пароля на электронную почту приходит письмо с инструкцией
Данная функця доступна креаторам.
Для того, чтобы выдать роль креатора пользователю, воспользуйтесь командой из пункта "Работа с менеджером"
- Для того, чтобы создать турнир, нажмите соответствующую кнопку под заголовком "Турниры" и заполните предложенные поля.
- Для редактирования информации или управления турниром перейдите по ссылкам под заголовком на странице турнира.
Данная функция доступна создателю турнира; просматривать посты в ленте могут все пользователи
-
Для того, чтобы создать новость нажмите соответствующий пункт меню
- посты могут быть скрытыми и будут доступны администрации или открытыми - доступны для всех
- когда публикуется срузу же открытый пост (или становится таковым впервые), то пользователи, подписанные на турнир, получают (по возможности) уведомления
- Статус поста (открытый или закрытый) можно менять в общей ленте, в меню
- Посты можно удалять и редактировать
Работа с лигами доступна создателю турнира
- Для создания лиги нажмите кнопку "Добавить лигу" и заполните необходимые поля.
- Для просмотря информации о команде нажмите на её название
- При приёме заявок от команд необходимо выбрать лигу в выпадающем списке. Для смены лиги нажмите "Отклонить" и заново принять команду.
- При удалении лиги, все команды привязаные к ней, автоматически отклоняютя (их можно заного принять в другую лигу)
Данная функция доступна администраторам и главным по лиге
- Для создание и редактирования игр перейдите на страницу управления лигой. Это можно сделать со страницы лиги или со страницы управления турниром
-
Для редактирования протокола перейдите на страницу с игрой и нажмите соответствующую кнопку.
Данная функция доступна создателю турнира, старшему по лиге и судье.
-
Редактор (см. выше) выбирает капитанов, его заместителей и игроков, участвующих в этой игре.
- При нажатии на "Далее", вас перенаправят вернуться к этому окну можно в любой момент, нажав кнопку "Участники"
-
Редактирование протокола:
- Выбирайте опонентов и докладчиков из выпадающего списка
- Баллы учатников вводяться вручную и находятся на отрезке [0; 12]
- Баллы жюри считаются по формуле:
12 - сумма очков команд
. - Тип вызова выбирается из выпадющего списка
- Таблица автоматически сохраняется при добавлении новой строки
(На нашем сайте судьи назначают очки только командам, их очки считаются автоматически. Во избежание неудобств при редакции протокола сумма очков команд может превышать 12, например в данный момент у команд по 6 очков, но судьи решили добавить 1 очко первой команде и забрать насколько у второй, но начали именно с повышения очков.)
- Протокол будет отображаться на странице с игрой
- Любой авторизованный пользователь может подать заявку на участие команды
в турнире. Он же будет указан как руководитель команды в консоле турнира.
Для этого нужно нажать в меню "подать заявку" на странице турнира
и ввести необходимые данные.
- Кол-во участников от 4 до 8
- Участники должны заранее зарегестрироваться в системе
manage give_creator --id user_id --email user_email // Выдает права креатора для создания турниров
manage make_robots // Создает ботов; помогает при отладке и тестировании. Логин - robot[0-10]@facto.ry, пароль - 31415926