Skip to content

Latest commit

 

History

History
70 lines (53 loc) · 3.35 KB

File metadata and controls

70 lines (53 loc) · 3.35 KB

Deploy to Server

Campus map bot

Стек: Python, Redis, Docker, CI/CD, Linux
Библиотеки: FastAPI, aiogram, asyncio, requests, logging, pydantic, re

⚡ С помощью этого бота можно узнать в кампусе ли студент и за каким рабочим местом находится.

English readme here.

Features

✅ Создание списка друзей, для поиска по всем сразу.
✅ Быстрый поиск по нику.

Project structure

Проект состоит из микросервисов. Каждый находится в собственном docker контейнере. Все это управляется с помощью docker-compose.

Image 1

схема взаимодействия контейнеров между собой внутри сети

Frontend

Сервис отвечает за работу телеграм-бота через REST API который обернуть в библиотеку для python. Отвечает за прием данных от пользователя, отправку этих данных в API, рассылку ответов.

Parser

Сервис парсит данные с образовательной платформы. Авторизуемся на платформе и используя API Школы 21 достаем данные о местоположении студентов и отправляем их в наш API в виде json.

API

Служит связующим звеном между всеми сервисами:

  • Принимает запросы с frontend'a, обращается к Redis и возвращает данные о запрашиваемых студентах.
  • Принимает новые данные о студентах с parser'a и обновляет записи в Redis

Redis

Хранит данные о студентах в кампусе и списки друзей в обезличенном виде. Автоматически делает бекап, а при рестарте docker контейнера запускается с предыдущего бекапа.

CI/CD

Мы используем github actions для тестирования кода, автоматической доставки обновлений на сервер.

Usage example

Image 1

бот в действии

Other | Links

Попробовать бота. Пример ника: jenniffr или diamondp

Присоединяйтесь к обсуждению.

Сообщайте об ошибках в issues.