/tmmscw

Приложение для заявки спортсменов на соревнования по спортивному туризму

Primary LanguagePython

Develop branch:

Build Status

tmmoscow

Это веб-приложение для регистрации участников на соревнования по спортивному туризму.

Оно поможет организаторам:

  • избежать ручной "чистки" списка участников от дублирования и неправильно заявленных спортсменов (не подходит по возрасту/разряду и т.п.);
  • добавлять и хранить информацию о предстоящих соревнованиях в одном месте;
  • просматривать список участников и статистику по участникам;

Для руководителей команд также предоставляются следующие воможности:

  • ведение своей команды в системе, теперь нет необходимости заново вводить одних и тех же спортсменов на каждый старт, они уже хранятся в базе, нужно только поставить "галочку";
  • редактирование уже поданных заявок без необходимости заново формировать заявку.

Для тех, кто самостоятельно желает принять участие лично:

  • необходимо лишь зарегистрироваться в системе и добавить себя к участию;
  • в дальнейшем вы будете сохранены системе и для нового соревнования нужно лишь поставить "галочку".

Для организаторов

Управление поло-возрастными группами и разрядами

Вы можете задать любые группы по полу и возрасту через админку. Также можете создать любые разряды. После этого они будут доступны в создании соревнования и при регистрации участников (по ним происходит запрет на добавление в недопустимую группу).

Чтобы добавить перейдите в админку /admin/ и добавьте необходимые группы. Обратите внимание на пол группы - для каждой возрастной группы нужно создавать мужскую и женскую версию, т.е. нельзя создать МЖ18, нужно создать М18 и Ж18 иначе система не сможет разделять участников при заявке.

Добавление групп и разрядов

Создание соревнования через админку

  • создайте Соревнования (общая информация, даты, место центра соревнований)
  • создайте Дни соревнований (информация по каждому дню, тех.информация, место старта)
  • создайте Дистанции дней (описание возрастных групп, тип дистанции, специальные возраста-рзаряды для каждого дня и дистанции)

Реализация и логика работы приложения

Вопросы:

  • у одного рукля может быть только 1 команда?
  • у одной команды может быть только 1 рукль? да
  • один участник может состоять в нескольких командах, но при заявке на ДЕНЬ соревы - только один рукль (=1 команда) может его заявить от себя, для остальных и для самого участника блокировать (пока)

Логика:

  • При регистрации руклем участников на соревы:

    Вверху страницы должна быть надпись "Если ваш участник состоит в нескольких коллективах, то при заявке будет указана ваша команда. Другие руководители не смогут повторно заявить участника на один и тот же день, что и вы."

    По каждому выводится в подсказку-попап "участник состоит в N коллективах - Команда 1, Команда 2, Команда N"

  • При регистрации на соревы руководителем, если человек с такими ФИО и годом рождения уже зареган на старт, то выводится предупреждение:

    "Такой человек уже зареган на старт под командой Команда 1. Он состоит в N коллективах - Команда 1, команда 2, ... команда N. Вы не можете заявить этого участника дважды. Обратитель к руководителю Команды 1."

  • При регистрации на сореву участником, если его уже кто-то зарегал, выводить "Вас зарегистрировал руководитель команды Команда 1. Вы не можете изменить свою команду (это пока)"

  • В один день может быть несколько дисциплин + несколько классов

  • В команде есть галка "я личник, не регистрировать команду" (пока для каждого юзера создается команда "Лично", он может заявлять себя через нее. Это сделано для единообразного механизма заявки команд руководителем и самих себя личниками. Т.е. все юзеры создаются руководителем при регистрации)

  • После авторизации отправляется письмо с ключом активации (пока пользователь автоматически логинится в системе)

  • Если юзер хочет роль организатора, то он связыватеся в админом и тот выставляет ему роль.

Схема данных

Соревнование

название
дата начала
дата конца
дата окончания предварительной заявки
место центра соревнований (строка+карта)
место центра X
место центра Y

День соревнования

FK на сореву
техническая инфа (документ)
дата
место старта (строка)
место старта X
место старта Y
дата и время окончания подачи технической заявки

Дистанция дня

FK на день
тип (личка/связка/...)
длина
класс
набор высоты
кол-во этапов
допустимые возраста (мультиселект)
допустимые разряды (мультиселект)
пол

Пользователь (как регать юзеров? Как привязать гугл/вк/фб-аккаунт?)

уникальный ID
email
год рождения
разряд
пароль редактирования аккаунта
привязка к аккаунтам
участник?
рукль?
орг?
активирован?

Команда

название
территория

Участник-команда

FK команды
FK участника
дата создания записи
FK на кто создал

Рукль-команда

FK команды
FK рукля
дата создания записи