Skip to content

EDeev/dorm_alarm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔔 Dorm Alarm Bot

Telegram-бот для мониторинга работоспособности систем с настраиваемыми интервалами уведомлений и персонализированным управлением.

📋 Описание

Асинхронный Telegram-бот, реализующий систему периодических уведомлений с гибкой настройкой интервалов. Предназначен для мониторинга доступности сервисов и отправки регулярных статусных сообщений пользователям.

🛠 Технологический стек

  • Python 3.8+
  • aiogram 3.x - асинхронный фреймворк для Telegram Bot API
  • SQLite3 - встроенная реляционная база данных
  • asyncio - асинхронное программирование

⚙️ Функциональные возможности

  • ✅ Регистрация пользователей с автоматической инициализацией
  • ⏰ Настройка интервалов уведомлений (5 минут - 24 часа)
  • 🔄 Динамическое управление статусом уведомлений
  • 📊 Мониторинг активных пользователей и логирование
  • 🔐 Graceful shutdown с корректным завершением задач
  • 💾 Персистентное хранение настроек в SQLite

📦 Установка

# Клонирование репозитория
git clone https://github.com/EDeev/dorm_alarm.git
cd dorm_alarm

# Установка зависимостей
pip install -r requirements.txt

🔧 Конфигурация

Создайте файл init.py и укажите токен бота:

BOT_TOKEN = "your_bot_token_here"

🚀 Запуск

python bot.py

📝 Команды бота

Команда Описание
/start Регистрация и активация уведомлений
/status Отображение текущих настроек пользователя
/help Справочная информация

🏗 Архитектура

dorm_alarm/
├── bot.py          # Точка входа, инициализация и lifecycle management
├── handlers.py     # Обработчики команд и callback-запросов
├── init.py         # Конфигурация Bot и Dispatcher
├── sql.py          # Database manager и ORM-слой
└── requirements.txt

🗄 Структура базы данных

Таблица users:

  • user_id - уникальный идентификатор пользователя
  • username - имя пользователя
  • interval_minutes - интервал уведомлений (по умолчанию 60 мин)
  • is_active - статус активности уведомлений
  • created_at - timestamp регистрации

Таблица notifications_log:

  • id - автоинкрементный идентификатор
  • user_id - ссылка на пользователя
  • sent_at - timestamp отправки
  • status - статус доставки (sent/failed)

📄 Лицензия

Этот проект является некоммерческим и распространяется под лицензией MIT.

👨‍💻 Автор

Деев Егор Викторович - Backend Developer


⭐ Если проект оказался полезным, поставьте звездочку на GitHub!

Создано с ❤️ от вашего дорогого - deev.space ©

About

Асинхронный Telegram-бот для мониторинга систем с настраиваемыми интервалами уведомлений

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages