Разработать сервис, реализующий создание пользовательских задач и списков дел. Создать подпрограмму для мессенджера Telegram, которая посредством HTTP запросов будет взаимодействовать с сервисом. С помощью этой подпрограммы, пользователь должен иметь возможность составлять регулярное расписание, создавать/редактировать списки текущих дел, получать необходимые напоминания об установленных планах и задачах, получать полезную информацию от сторонних сервисов для правильного планирования распорядка дня.
Пакет telegram-bot-api для работы с ботом «из коробки» не предоставлял возможность выстраивать цепочки сообщений с пользователями, из-за чего пришлось хранить состояния пользователей в виде уникальных кодов на каждое состояние, а переходы между ними осуществлять в виде абстрактной модели конечного автомата. Все состояния сохраняются в базе данных для каждого пользователя, таким образом падение сервера или перезапуск бота не приводит к потере состояния для пользователя.
Copyright 2020 aaaaaaaalesha