Water Reminder — Telegram-бот, созданный для формирования привычки регулярно пить воду. Пользователь настраивает период активности и частоту напоминаний, после чего бот автоматически отправляет уведомления в заданное время.
Проект разработан как pet-project и одновременно используется мной на практике. Основной задачей было создать небольшой, но полноценный Telegram-сервис с пользовательскими настройками, постоянным хранением состояния и автоматическим выполнением фоновых задач.
Бот разработан на Python с использованием aiogram 3. Архитектура разделена на отдельные модули и обработчики с использованием Router, что позволяет изолировать различные сценарии взаимодействия с пользователем и упрощает дальнейшее развитие проекта.
Пользователь может настроить режим напоминаний, указать время начала и окончания активности и изменить параметры непосредственно через Telegram-интерфейс. Настройки и состояние пользователя сохраняются в SQLite, поэтому они не теряются между перезапусками бота.
Для автоматической отправки уведомлений реализована логика планирования фоновых задач. Бот самостоятельно определяет время следующего напоминания и отправляет его пользователю без необходимости постоянного взаимодействия с приложением.
Проект также включает обработку команд и пользовательских действий, хранение состояния и корректное восстановление настроек после перезапуска.
Получился полностью рабочий Telegram-бот, который используется как персональный инструмент для регулярных напоминаний о воде.
Проект стал практикой разработки Telegram-ботов на Python, работы с асинхронностью, состоянием пользователей и фоновыми задачами. При этом архитектура позволяет расширять функциональность без переработки основной логики приложения.
Моя роль: Python Developer
Стек: Python, aiogram 3, SQLite, asyncio, Telegram Bot API.