Skip to content

laga-vladislav/coltre_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Вводная информация

Данный телеграм бот призван объединить людей, которые хотят заниматься спортом в домашних условиях, но не могут найти мотивацию. Мы осознаём, что мотивация приходит, когда появляются единомышленники – именно для таких случаев существует coltre.

Уровень подготовки

У каждого пользователя будет свой уровень подготовки (аналог ранга, звания), который будет повышаться с выполнением сверхнормы.

Для чего необходимы

Уровни призваны уравнивать шансы всех участников вне зависимости от их физических возможностей, а также поддерживать интерес пользователей к проекту.

Система уровней делает так, чтобы участники с хорошей физической подготовкой не были ограничены малой нагрузкой. Это полезно как для самого пользователя, так и для остальных участников, ведь повышение уровня не позволяет регулярно выполнять сверхнорму и увеличивать свои очки в рейтинговой таблице. Что немаловажно, уровни учитывают также и постепенное развитие пользователей в течение проекта.

Классификация уровней

  1. Начальный. Подходит для новичков. Норма – это 0.75x от нормы стандартного уровня.
  2. Стандартный. Для тех, кто уже имеет какой-то минимальный опыт. Норма – это 1.0x. Эталон.
  3. Продвинутый. Для более опытный пользователей. Норма – это 1.25x от стандартной. Добавление новых уровней является неизбежным, но отталкиваться будем от этих трёх основных.

Повышение уровня

Повышение уровня происходит автоматически, если пользователь достаточно часто выполняет сверхнорму. При этом, необязательно выполнять полную сверхнорму, однако чем больше выполняешь – тем быстрее попадёшь на следующий уровень.

Понижение уровня

Понижение уровня происходит сложнее, нежели повышение. Если пользователь смог перейти на новый уровень, значит он часто выполнял сверхнорму прошлого (норма нынешнего уровня). Для урегулирования баланса мы лишаем пользователей автоматического понижения. Однако, если по каким-либо причинам вам оно необходимо, то этот вопрос вам следует решить с администратором индивидуально.

Программа

Выбор упражнений и расписания будет происходить либо пользователями, либо администраторами. Однако программа у каждой группы должна состоять из нескольких упражнений, которые будут меняться каждый день. В конце цикла упражнений обязательно должны присутствовать дни отдыха.

От каждого Участника ожидается выполнение нормы за день. Норма зависит от уровня подготовке.

Процесс выполнения программы

Чтобы доказать выполнение сегодняшней программы необходимо будет записать видеосообщение (лицо показывать необязательно, достаточно будет запечатлеть сам процесс выполнения). С видеосообщением бот будет ожидать количество повторений/минут, выполненных на данном видеофрагменте. Далее эти данные будут отправлены на проверку проверяющим (см. пункт “Проверка результатов”).

Если по любой причине участник не выполнил норму, то вступает в силу сценарий пропуска дня (см. пункт “Пропуск дня”).

Сверхнорма

Сверхнорма – это перевыполнение программы на сегодня. Сверхнорма существует, чтобы пользователь мог набирать дополнительные баллы за выполнение программы. Количество дополнительных повторений/минут будет рассчитано индивидуально под каждую группу и упражнение.

Пример программы

В первый день 150 отжиманий, во второй 200 приседаний, в третий 10 минут планки, в четвертый 50 подтягиваний.
Программу пользователи могут выполнять в любое время в течение дня.

Проверка результатов

Планируется полностью автономная система, где результат выполненной работы пользователя будет проверен на корректность другими участниками.

Пример

Например. Сегодня нужно выполнить 150 отжиманий. Пользователь А выполнил 50 и отправил боту на проверку. Бот отвечает за распределение отправленных результатов между другими пользователями. Результаты Пользователя А попали на проверку Пользователю Б. Пользователь Б посмотрел процесс выполнения упражнений пользователя А и подтвердил их корректность. Пользователь А выполнил оставшиеся ему 100 отжиманий в течение дня, случайно одно пропустив. Это заметили проверяющие и уведомили его об этом.

Сценарий проверки со стороны проверяемого

Пользователю А в примере выше повезло, что ошибка была выявлена в тот же день, из-за чего он не получит предупреждение, если довыполнит в течение дня. Однако, так происходит не всегда. Всё потому, что ваши результаты могут быть проверены в течение двух суток (см. пункт “Двухдневная система проверок”).

Для более подробного описания процесса подготовки данных для проверки проверяемым обратитесь к пункту “Программа. Процесс выполнения программы”.

Если бы результаты Пользователя А были проверены на следующий день, то был бы задействован сценарий пропуска дня по ошибке (см. пункт “Пропуск дня. Пропуск дня с незначительной ошибкой”).

Сценарий проверки со стороны проверяющего

У каждого из пользователей есть норма проверок в день, которая зависит от загруженности очереди заявок на проверку.

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

Процесс проверки пользователей состоит в проверке указанных проверяемым пользователем данных, относящихся к отправленному им видеосообщению. Всё, что необходимо будет сделать – это указать, верны ли данные, либо, если не верны, указать действительное количество повторений/минут, запечатлённых на видеофрагменте. То, как проверки влияют на баллы в общем рейтинге, указано в пункте “Рейтинговая система”.

Двухдневная система проверок

Чтобы учесть условия каждого пользователя и дать возможность выполнить норму проверок на день была введена двухдневная система проверок, при которой отправленные вами до 23:59 текущего дня результаты могут быть проверены в любой период до 23:59 следующего дня. Это означает, что следует тщательнее следить за достоверностью выполненного количества повторений/минут.

Пропуск дня

Есть несколько сценариев пропуска:

Полный либо частичный пропуск

Если количество выполненных повторений/минут достаточно сильно отличается от нормы за день, то Пользователю выписывается штраф. Сумма штрафа будет оговорена позже. При неуплате штрафа в течение недели Пользователь попадает в чёрный список, теряя возможность использовать бота. Во время данного на оплату времени у предполагаемого штрафника есть возможность подать апелляцию, которая будет рассмотрена другими Пользователями, либо администратором. Штрафы идут в общий банк.

Пропуск дня с незначительной ошибкой

Если участник не нарочно недовыполнил дневную норму, при этом действительные конечные результаты слабо отличаются от нормы, и ошибка не была выявлена в течение суток, то на следующий день после выявления у пользователя будет несколько вариантов:

  • Довыполнить упражнение, на котором участник ошибся, до сверхнормы и остаться с предупреждением.
  • Либо засчитать штрафной день (см. пункт “Полный либо частичный пропуск”).

Пропуск по уважительно причине

Безусловно, у каждого есть возможность пропускать дни по уважительной причине, объяснив ситуацию и предоставив доказательства боту, который в оформленном виде спросит разрешения пропустить текущий этап у других пользователей.

Штрафы

Штрафы назначаются после пропуска дня (см. пункт “Пропуск дня”). На оплату даётся неделя, в течение которой у пользователя будет возможность подать апелляцию, если тот посчитает, что пропуск был либо обоснованным (см. пункт “Пропуск дня по уважительной причине”), либо ошибочным. Ошибочным штрафом называется тот, который был выставлен из-за неверной проверки. Индивидуальная сумма штрафа будет расти с каждым новым пропуском пользователя.

Апелляция

Апелляция происходит в несколько этапов:

  1. Пользователь формирует апелляцию на рассмотрение, предоставляя необходимую информацию
  2. Апелляция отправляется на проверку модераторам (либо пользователям), после чего выносится вердикт.
  3. Если апелляция была одобрена, то штраф снимается, а снятые баллы в рейтинге возвращаются.
  4. Если апелляция была отклонена, то пользователь обязуется его оплатить в установленные сроки, иначе потеряет доступ к использованию бота.

Рейтинговая система

Разные действия пользователей по-разному влияют на количество баллов в общем рейтинге. Вот общая информация о том, за какие действия участник теряет баллы, а за какие, наоборот, получает:

Потеря баллов

  • Получение предупреждения;
  • получение штрафа (одобренная апелляция аннулирует потерю баллов);
  • невыполнение нормы проверок за день;
  • ложное указание ошибки при проверке пользователя.

Получение баллов

  • Сверхнорма;
  • сверхпроверка;
  • выявление ошибок при проверке.

Розыгрыш

Процесс выбора победителей до конца не утверждён, однако, вероятнее всего, общий банк будет разыгран между всеми пользователями, либо участниками только определённой группы. Предполагается, что шанс на победу будет у каждого, однако чем больше баллов – тем больше шанс.

Идеи

Новые

Пока ничего, ура.

Учтённые

Должно быть несколько групп (по подготовке, по часовым поясам). Может, разделить их по часовым поясам? или проверять день ещё на протяжении нескольких часов после окончания суток. В западной части страны живёт примерно 78% населения, плюс остальные СНГ страны тоже там. Возможно, стоит ориентироваться на них, предоставив небольшой запас времени для востока. Условно, результаты человека из Благовещенск могут быть проверены до 6 утра следующего дня, в таком случае результаты человека из Москвы могут быть проверены до 12 ночи этого дня. Но отправить они их обязаны до 12 ночи по своему времени. Плюсы такой системы:

  • Результаты каждого точно будут проверены.
  • Легче учесть каждого (то же самое сказал).
  • Легче в разработке. Минусы:
  • Люди будут находиться в неравных условиях. В идеале, чтобы твои результаты проверили до 12 ночи, чтобы ты мог исправиться, если СЛУЧАЙНО допустил ошибку. Я не хочу, чтобы люди боялись что-то не так сделать, это плохо для общего эмоционального фона каждого из участников.

Дать как можно меньше инфы о работе рейтинговой системы; разделить типов по уровню подготовки; возможно сделать розыгрыш, а не приз, где вероятность зависит от баллов; когда набирается нужное для проверки каждым пользователем кружков они отправляются на проверку пользователям (3 кружка на человека смотри расчёты эксель)

Если человек СЛУЧАЙНО недовыполнил немного программу, то на следующий день ему будет предложено довыполнить до сверхнормы прошлый день, при этом получив одно предупреждение, либо будет засчитан штрафной день.

мне кажется, стоит ввести двухдневную систему проверки, чтобы типы с востока могли проверить упражнения на следующий день

Нужно как-то учесть момент, когда проверяющий протыкал все кружки, заполнив тем самым свою сверхнорму и получив при этом +баллы, а типы, которых он проверял получили +0. Тем самым, он заобузит данную систему. Пути решения:

  • Давать баллы за выявление ошибок, а также отнимать за ложны ошибки.

Если сверхнорма слишком часто выполняется, то наша задача увеличить норму.

Вместо типов групп ввести ранги: начальный, стандартный, продвинутый и т.д. За сверхнорму повышение, понижение только через админов. В общем, надо ввести ранговую систему, соединив её с рейтинговой.

Добавить возможность пользователю самому начинать проверку (не забываем о максимальном количестве проверок пользователем за день). Сообщения, отправленные пользователями на проверку попадают в очередь. Из очереди они распределяются между пользователями (скорее всего дальний восток сначала, потому что у них быстрее наступает вечер). Сообщения отправляются на проверку из очереди вечером. Вечер, соответственно, у всех в разное время, что будет учитано (удачи решить эту задачу, дебилы). У пользователя будет возможность проверить сообщения (если таковые за ним закреплены) раньше указанного срока. Такая проверка будет считаться полностью аналогичной автоматической рассылке. Нужно где-то хранить счётчик проверок за день (сколько необходимый минимум, сверхпроверка и текущее количество проверок)

Лучше сделать так, чтобы групп могло быть сколько угодно. Такие группы должны создаваться по мере наплыва людей. Дать названия основным терминам. Например: проверка, упражнение, этап и т.д.

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

Команды бота

  • /start – приветственное сообщение
  • (/join) – скрытая команда, которой нет в списке. Предлагается пользователю для вызова после приветственного сообщения.
  • /member_menu – меню взаимодействия с ботом для участников
  • /todays_exercise – упражнение на сегодня
  • /current_program – текущая программа тренировки
  • /help– справка

About

Bot for coltre users

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published