Тиждень 1 - QuarantineGameTeam/team_5_game GitHub Wiki

Те, що має працювати до кінця першого тижня (01-02.06.2020)

Стисла програма-мінімум

  • Реєстрація гравця (після вибору "/start")
    • додається в БД
    • БД для старту простого типу (ключ-значення)
  • Автоматично зараховується до клану
    • отримує повідомлення «Ви зараховані до клану {NAME}»
  • Відкривається запрошення розпочати битву (кнопка бот-меню).
  • Сам бій "відбувається" в фоні
  • Гравець отримує повідомлення про завершення бою з результатом і запрошення на наступний бій.

Розгорнутий план від Сергія

С точки зрения пользователя:

  • Найти телеграмм бота игры
  • Нажать кнопку “Старт”
    • Видит описание игры
    • Видит список кланов 3 шт (кнопки с названиями кланов)
  • Нажать кнопку одного из предложенных кланов
    • Видит сообщение “Вы присоединились к клану Х”
    • Видит кнопку “Начать бой”
  • Нажать кнопку “Начать бой”
    • Видит сообщение “Вы победили в битве и всего сыграно битв Х”
    • Видит кнопку “Начать бой”
  • Повторяется с предыдущего шага

С точки зрения разработки

  • Добавить бота
    • Найти как добавить бота
    • Добавить бота
    • Добавить картинку (логотип)
    • Добавить описание
    • Изучить возможность отключить возможность ввода текста и использования только присланных кнопок
  • Добавить каркас приложения
    • Изучить возможные варианты размещения приложения
    • Создать каркас приложения на Го
    • Разместить приложение
    • Залить на гит
    • Обсудить стратегию работы с Гит
  • Добавить возможность получить список тех кто добавился (единоразово при старте)
    • Изучить API Телеграмма
    • Добавить работу с запросами HTTP
    • Отправить запрос на получение пользователей (или общий запрос)
    • Добавить структуру для пользователя (класс: ИД, Имя ...)
    • Обработать ответ от API
    • Положить ответ в сущность пользователя
  • Сохранить пользователей
    • Изучить возможные БД
    • Разместить БД
    • Реализовать подключение к БД
    • Добавить механизм сохранения и чтения из БД
    • Сохранить пользователя
  • Получать новых пользователей по мере добавления и сохранять их
    • Изучить возможность получения данных из Телеграмм по мере их поступления
    • Реализовать механизм получения данных от Телеграмм (нужно разбить детальнее)
    • Сохранить результат
  • Отправить сообщение с описанием игры новому пользователю
    • Изучить возможности отправки сообщений
    • Приготовить каркас сообщения
    • Отправить сообщение в Телеграмм
  • Отправить сообщение с кнопками для выбора клана
    • Изучить возможности отправки кнопок
    • Приготовить каркас сообщения с кнопками
    • Отправить сообщение в Телеграмм
  • Обработать нажатие на кнопку выбора клана
    • Получить от Телеграм информацию о нажатой пользователем кнопке
    • Преобразовать ответ в сущность программы
    • Получить пользователя из базы
    • Обновить информацию у пользователя и сохранить его
    • Отправить сообщение пользователю о успешной операции
  • Отправить сообщение с кнопкой начать бой
    • Отправить сообщение
  • Обработать нажатие на кнопку начать бой
    • Обработать нажатие
    • Вычитать информацию пользователя
    • Обновить информацию (увеличить количество битв)
    • Сохранить обновление
    • Отправить пользователю сообщение с текстом
    • Отправить сообщение с кнопкой