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-секундный обзор.