Skip to content

fregire/TelegramMathBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 

Repository files navigation

TelegramMathBot

Участиники

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

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

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

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

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

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

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages