Skip to content

Latest commit

 

History

History
47 lines (41 loc) · 3.72 KB

File metadata and controls

47 lines (41 loc) · 3.72 KB

TelegramMathBot

Участиники

Гильмутдинов Даниил
Кузьмин Роман
Аткишкин Владислав
Фрицлер Виктор

Проблема, которую решает проект:

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

Описание основных компонент системы

  • Telegram Бот
    Слой представления: предоставляет пользователю интерфейс взаимодействия.
    Взаимодествие с пользователем:
    Принимает запросы клиента в виде сообщений, парсит их и представляет в нужном формате. Также парсит id клиента. Затем передает их Приложению. Принимает данные в виде объектов от приложения и парсит их обратно в нужном формате.
  • Парсер
    Слой представления
    Получает данные в текстовом формате, парсит, и возвращает результат в нужном формате.
    Реализуем интерфейс IParser<Tin, Tout> с методом GetData
  • App
    Слой доменной логики - сервис
    Набор методов для работы с клиентами(добавить, удалить и тд) и их задачами. Метод SolveClientTask, принимающий id клиента и данные в нужном формате, использует соответствующий объект из Domain(например, для решения мат. задач).
  • Класс-решатель
    Слой доменной логики
    Получает данные, решает задачу и возвращает результат.
    Реализуем интерфейс ITask<Tin, Tout> с методом GetResult

Точки расширения

  1. Типы расширяемых задач
  • Численное решение по формулам (размещения, факториал, сочетания и тд.)
  • Отрисовка графика функции одной переменной
  • Дифференцирование сложных функций
  • Можно добавить класс - решатель для каждой новой задачи
  • Для каждой задачи необходим свой парсер, с расширением задач расширяется парсер
  • Для каждой задачи добавляется новый интерфейс взаимодействия - сценарий пользователя (например, разные кнопки, последовательность требуемых действий от пользователя для каждого типа задач)
  1. Многофункциональность бота
  • Возможность добавить консультацию в чате (доп. функция)
  • Решение задач математических
  • Bug report
  1. Генерация картинок для графиков функицй в разном формате
  • PNG
  • JPG
  • SVG