Все проекты
Med Reminder Bot
Open Source
web
1 звёзд

Med Reminder Bot

Живой Telegram Mini App для учёта приёма лекарств — React внутри Telegram, FastAPI + aiogram на бэке, Redis Pub/Sub синхронизирует API и планировщик бота в реальном времени

В цифрах

0

Docker-сервисов

0

Интервалы retry (мин)

0

Шагов установки пользователем

Проблема

Что я решала

Знакомый постоянно забывал таблетки. Обычные будильники не помогают — выключил и забыл. Приложения обычно требуют установить ещё одно приложение. Трюк не в том, чтобы напомнить один раз — а в том, чтобы быть настойчивым, но не надоедливым, и вести реальную историю, чтобы врач видел что принято, а что пропущено.
Мой подход

Как я делала

Telegram Mini App — не нужно ничего ставить, Telegram уже открыт. React-фронт внутри WebView Telegram, Python FastAPI-бэкенд отдаёт API, aiogram-бот шлёт напоминания с настраиваемым повтором (5/15/30 мин) пока не отметят приём. Шесть Docker-сервисов: фронт, бэк, бот, PostgreSQL, Redis, nginx. Таймзоны на пользователя — напомнить в 3 ночи хуже, чем не напомнить. Админка показывает DAU, активных пользователей и блокировки от абьюза.

Выбор технологий

  • Telegram Mini AppНоль трения при установке. У пользователя уже есть Telegram — это открытый WebView с авторизацией из коробки, не нужно проходить регистрацию.
  • aiogram + FastAPIАсинхронный Python везде — бот и API делят модели и БД без второго рантайма. Шедулер живёт в том же процессе, что и API.
  • RedisОчередь напоминаний и rate-limiter в одном хранилище. Таблетка в 10:00 — это шедуленная Redis-задача, переживёт рестарт бота.
Результат

Что получилось

Один клик через Telegram — ни установки, ни нового аккаунта, ни пароля, который забудешь. Retry-логика ловит отговорку "приму через 5 минут" — бот продолжает пушить, пока не отметят приём. Ежедневный чек-лист и история приёмов — читаемый лог для врача. Админка превращает поиск абьюза в 30-секундный обзор.