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