Skip to content

LOG Template

Romutchio edited this page Jun 10, 2019 · 1 revision

1. Проблема

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

Задача

Цель

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

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

Реализация

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

2. Постановка своей собственной задачи

#TODO: ЗАПОЛНИ!

3. Описание архитектуры решения

Сервисы

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

Архитектура

Core

Здесь находится бизнес-логика викторины, построенная согласно DDD:

DDD

Task API

Внешнее REST API для работы с задачами и уровнями. Построено на фреймворке ASP.NET Core.

Quiz API

Внешнее REST API для работы с викториной и пользователями. Построено на фреймворке ASP.NET Core.

Quiz Database

Интерфейс для работы с MongoDB: заданиями, пользователями и другой статистикой.

Telegram Bot

Построенный на ASP.NET Core webhook-bot для Telegram.

Telegram users database

Интерфейс для работы с MongoDB: состояниями пользователей и их аутентификационными данными для Quiz API.

Editor

Веб-сервис для редактирования и дизайна уровней викторины. Фронтенд на React JS, бекэнд на ASP.NET Core

4. Подробное описание своего участка работы.

TODO: ЗАПОЛНИ!

5. Скриншоты, демонстрирующие работу.

  • Приветственное сообщение
  • Обратная связь (вызов посредством команды /feedback)
  • Выбор уровня
  • Отображение задачи
  • Сообщение после прохождение уровня
  • Пользователь нажал на кнопку "Пожаловаться на задачу" и сообщил об ошибке:
  • После репорта, сообщение прилетает в специальный чат в таком виде:
    TODO: ДОБАВЬ СКРИНШОТЫ

6. Литература:

Языки, грамматики, распознаватели - А. П. Замятин, А. М. Шур, 2007

Telegram Bots Book @ https://telegrambots.github.io/book/

ASP.NET Core in Action - Andrew Lock, 2018

Clone this wiki locally