ТЗ бот телеграм для сбора данных и интеграция с внешним сервисом, куда

1 200 руб.за час
02 марта 2024, 11:39 • 18 откликов • 132 просмотра
Необходимо написать бэкхенд сервис (предпочтительно Python Django), сервис будет иметь связь с двумя внешними АПИ: telegram API и Google Sheets API. Сервис организует поток данных, собранных из телеграм бота в Google Sheets (поток 1) и поток данных из Google Sheets в конфиги телеграм бота (поток 2)


Интеграция с телеграм:

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


Пример

Пользователь: /start

Бот: Добрый день! Назовите ваше имя: “Имя 1”, “Имя 2”, “Имя 3”,…

Пользователь: (Выбирает “Имя 1”)

Бот: Добрый день, Имя 1! Выберите (еще что-то, что будет иметь связь в БД с сущностью Человек, у которого есть поле со значением “Имя 1”. )

…Бот задает еще несколько вопросов на по…

Бот: Введите конечное значение

Пользователь: 10

Бот: Вы уверены?

Пользователь: Да (из строгого выбора в Да/Нет)

Бот: спасибо, на сегодня всё

(Бот должен иметь еще несколько команд помимо /start, эти команды будут сводиться к откатам ответов на вопросы, как правило)



Интеграция с google sheets

Сводится к тому, что вписанный ранее юзером - 10 - встает на определенную ячейку в таблице. Для определения, на какую ячейку нужно поставить 10, необходима стадия с вопросами от бота в телеграм




Сам сервис:

Поток 1

Сам сервис помимо интеграции с внешними сервисами, должен иметь свою БД. Взаимодействие с внешними сервисами основывается на БД нашего.

БД в нашем сервисе представляет из себя связь сущностей, реляционная БД (примерная схема есть). Все сущности связаны между собой. Должна быть возможность фильтровать другие сущности по данной сущности.


Пример

Сущность 1 связана с Сущность 2, Сущность 3, Сущность 4 через pK. Связи рода один-ко-многим и многие-ко-многим.

Таким образом, должна существовать возможность задать экземпляры Сущности 2, Сущности 3, Сущности 4 (В любых комбинациях - только 2 и 3, только 4 и 3, все вместе, только что-то одно) и получить пересеченное отфильтрованные экземпляры Сущности 1. Подобная фильтрая будет лежать в основе вопросов и порядка вопросов в телеграмме боте


Поток 2

Обратный поток данных из Google Sheets в телеграм представляет из себя прочтение ячеек из колонки и на основании считанной информации, менять (или не менять, если изменений не было) отношения между экземплярами сущностей (то есть вчера Экемпляр 1 Сущности1 имел связь с Экземплярами 4 5 6 Сущности2, а сегодня в ячейках изменились данные и теперь Экземпляр 1 Сущности 1 имеет связь с Экземплярами 8 1 Сущности2).


По факту это означает, что варианты ответов на вопросы телеграм бота будут меняться в зависимости от выбранных ранее вариантов


Такая считка данных должна происходить переодически, раз в сутки.