Стек: Python, Redis, Docker, CI/CD, Linux
Библиотеки: FastAPI, aiogram, asyncio, requests, logging, pydantic, re
⚡ С помощью этого бота можно узнать в кампусе ли студент и за каким рабочим местом находится.
English readme here.
✅ Создание списка друзей, для поиска по всем сразу.
✅ Быстрый поиск по нику.
Проект состоит из микросервисов. Каждый находится в собственном docker контейнере. Все это управляется с помощью docker-compose.
|
|
схема взаимодействия контейнеров между собой внутри сети |
Сервис отвечает за работу телеграм-бота через REST API который обернуть в библиотеку для python. Отвечает за прием данных от пользователя, отправку этих данных в API, рассылку ответов.
Сервис парсит данные с образовательной платформы. Авторизуемся на платформе и используя API Школы 21 достаем данные о местоположении студентов и отправляем их в наш API в виде json.
Служит связующим звеном между всеми сервисами:
- Принимает запросы с frontend'a, обращается к Redis и возвращает данные о запрашиваемых студентах.
- Принимает новые данные о студентах с parser'a и обновляет записи в Redis
Хранит данные о студентах в кампусе и списки друзей в обезличенном виде. Автоматически делает бекап, а при рестарте docker контейнера запускается с предыдущего бекапа.
Мы используем github actions для тестирования кода, автоматической доставки обновлений на сервер.
|
|
бот в действии |
Попробовать бота. Пример ника: jenniffr или diamondp
Присоединяйтесь к обсуждению.
Сообщайте об ошибках в issues.

