Thursday, June 28, 2018

Хорошо посидели бот (часть 2)

Проблема

В первом посте был описан алгоритм "Хорошо посидели" бота. В данном посте будет описан интерфейс взаимодействия пользователя с ботом.


Зачем тут эта картинка? Люди могут тратить вместе деньги при организации пикника)


Интерфейс взаимодействия


1. Команда /start


Эта команда, с которой всегда начинается общение с ботом. При запуске бот отправляет сообщение пользователю:
"Привет! Это хорошо посидели бот. 😎

1️⃣ 
Бот помогает разобраться кто, кому и сколько должен после того как хорошо посидели.

2️⃣
Подразумевается, что суммарный счет делится поровну.

3️⃣
Все округления справедливо ложатся на плечи тех, кто заплатил меньше в начале. Подробный алгоритм тут: http://webdev2018.blogspot.com/2018/05/dereban-1.html

4️⃣
Есть вопросы и предложения? Наша команда:
@vadimcpp - программирование и маркетинг
@oleg - программирование

5️⃣
Нажмите кнопку «Новый расчет»
"

У пользователя есть возможность нажать одну кнопку «Новый расчет»

2. Команда «Новый расчет»


Бот отправляет сообщение пользователю:
"Введите имя первого участника"

Пользователь вводит имя.

Бот отправляет сообщение пользователю:
"Сколько денег потратил?"

Пользователь вводит сумму.

Бот рассчитывает сумму минимум между двумя людьми, поэтому...

Бот отправляет сообщение пользователю:
"Введите имя второго участника"

Пользователь вводит имя.

Бот отправляет сообщение пользователю:
"Сколько денег потратил?"

Бот отправляет сообщение пользователю:
"
Имя1 потратил: Сумма1
Имя2 потратил: Сумма2
"

Когда пользователь ввел данные двух и более человек, меню содержит три кнопки:
  1. Добавить еще
  2. Расчет
  3. Сброс

3. Команда «Добавить еще»


Бот отправляет сообщение пользователю:
"Введите имя следующего участника"

Пользователь вводит имя.

Бот отправляет сообщение пользователю:
"Сколько денег потратил?"

Пользователь вводит сумму.

Бот отправляет сообщение пользователю:
"
Имя1 потратил: Сумма1
Имя2 потратил: Сумма2
"

Когда пользователь ввел данные двух и более человек, меню содержит три кнопки:
  1. Добавить еще
  2. Расчет
  3. Сброс

4. Команда «Расчет»


Бот отправляет сообщение пользователю:
"
 Имя1 → Имя2: 💰Сумма1
 Имя2  Имя3: 💰Сумма2
 Имя4  Имя1: 💰Сумма3
 Имя5  Имя2: 💰Сумма4
...
"

Когда пользователь ввел данные двух и более человек, меню содержит три кнопки:
  1. Добавить еще
  2. Расчет
  3. Сброс

5. Команда «Сброс»


Бот очищает данные.

У пользователя есть возможность нажать одну кнопку «Новый расчет»


Итого


Имея под рукой алгоритм расчета и интерфейс взаимодействия пользователя и бота мы готовы к разработке. Бот можно протестировать в телеграме: https://t.me/HoroshoPosideliBot 

upd 26.12.2020: бот удален из телеграма, исходники лежат у Олега: https://github.com/sylvan008/hadGoodTime