Техническое задание

Техническое задание

Ibrohim Ibragimov

План: 

1. Стартовые действия

2. Тесты, их выполнение, оплата и результаты

3. Меню

4. Статистика  

5. Управление


1. Стартовые действия 


Бот по-умолчанию нужно сделать на русском языке, а после команды /start пользователь должен будет выбрать один из следующих языков: 

🌐 Русский

🇺🇿 Oʻzbekcha


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


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


2. Тесты, их выполнение, оплата и результаты


Процесс тестирования должен начаться с выбора типа тестирования - По предмету и Пробный экзамен. Давайте разберём их по порядку. 


Тип По предмету должен состоять из выбора одного предмета и оцениваться по принципу 3/10 (условно), где три правильных ответа из десяти вопросов. Второй тип должен состоять из комплекса предметов, а именно пяти - трёх обязательных и двух профильных. Три обязательных предмета это Родной язык, Математика и История Узбекистана. Родных языков два- Узбекский (латиница) и Русский, пользователь должен будет выбрать один из них, а затем перейти в выбору двух профильных из списка, где нет трёх обязательных. Система оценивания типа Пробный экзамен отличается от первого тем, что балы суммируются. За каждый правильный ответ по обязательным предметам система должна выдавать по 1,1 баллу, а по ответу за профильный - 2,1 балл. При решений тестов данного типа пользователь должен решить какой предмет он начнёт первым.


Каждый тип должен будет иметь настройки по цене, таймингу, оценку за каждый правильный ответ и количеству выдаваемых вопросов из базы, она, в свою очередь, должна раздавать их рандомно. Кроме того, до старта теста пользователь должен ознакомиться с описанием теста, возможностью изменения порядка сдачи предметов. В случае изменения порядка сдачи предметов, сначала нужно определить порядок сдачи обязательных, а затем профильных. При решении теста вопросы должны идти по-одному со стрелками для перехода на другой вопрос и пользователь должен иметь возможность завершить тест в любое время по кнопке Завершить. После нажатия кнопки Завершить должен идти уточняющий вопрос с уведомлением того, что есть n-количество неотвеченных вопросов. Уточняющий вопрос должен идти и случае отсутствия неотвеченных вопросов.


После полного завершения бот должен выдать результаты. В случае типа Пробный экзамен, результат должен выдаться в самом конце, после решений по всем предметам. При выдачи результатов должно отобразиться также количество потраченного времени на решение и кнопки Детали и Пройти заново, где Детали должны показываться вопросы с выбранного теста по-одному с выбранными ответами пользователя в виде ❌ и ✅.


Оплата за тест должна производится после ознакомления с описанием теста и утверждения порядка сдачи предметов (при типе Пробный экзамен). При этом оплата будет через API платежной системы Payme, так как размер оплаты типа По предмету меньше 1$. Документацию предоставлю по запросу. После оплаты должно идти сообщение о прохождении оплаты с кнопкой Начать, после нажатия которого должны идти самоисчезающиеся эмодзи 3️⃣, 2️⃣ и 1️⃣ соответственно, а дальше начало решения теста и старт таймера.


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


3. Меню

 

Меню должен состоять из трёх эмодзи-кнопок (➕, 🗂 и ⚙️) в одной строке и одной текстовой кнопки (Ещё) во второй:


➕- Выборка теста, начиная с типа.

🗂 - Решённые тесты разделённые на два существующих типа. При этом номера тестов должны генерироваться из чисел в рандомном порядке из семи цифр. Каждый тест должен иметь описание о предметах, количестве потраченного времени на решение, результаты и под каждым тестом должны быть кнопки Детали и Пройти заново, где Детали должны показываться вопросы с выбранного теста по-одному с выбранными ответами пользователя в виде ❌ и ✅.

⚙️ - Настройки, где можно будет сменить язык бота и номер телефона (с повторным подтверждением по смс).

Ещё - это вход к трём опциям из трёх строк-кнопок, а именно:

🏛 О нас - текстовая информация с кнопками для перехода на сайт и соц. сети.

🤝 Сотрудничество - переход на мой аккаунт в Telegram.

Служба поддержки - переход на аккаунт нашей службы поддержки в Telegram.


4. Статистика


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


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


Статистика должна включать в себя следующие показатели:

1. Количество пользователей

2. Количество зарегистрированных пользователей 

3. Количество пройденных тестов

4. Поступления (сумма оплат)

5. Убытки (сумма возвратов).


5. Управление 


Предлагаю создать поле для редактирования данных через Google Sheets и создать команду /admin в боте, который будет работать только для меня с кнопками Импорт и Экспорт для импорта и экспорта данных из таблицы.


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


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





Report Page