mirror of
https://github.com/EDeev/dorm_alarm.git
synced 2026-06-15 19:11:08 +03:00
100 lines
4 KiB
Markdown
100 lines
4 KiB
Markdown
# 🔔 Dorm Alarm Bot
|
||
|
||
Telegram-бот для мониторинга работоспособности систем с настраиваемыми интервалами уведомлений и персонализированным управлением.
|
||
|
||
## 📋 Описание
|
||
|
||
Асинхронный Telegram-бот, реализующий систему периодических уведомлений с гибкой настройкой интервалов. Предназначен для мониторинга доступности сервисов и отправки регулярных статусных сообщений пользователям.
|
||
|
||
## 🛠 Технологический стек
|
||
|
||
- **Python 3.8+**
|
||
- **aiogram 3.x** - асинхронный фреймворк для Telegram Bot API
|
||
- **SQLite3** - встроенная реляционная база данных
|
||
- **asyncio** - асинхронное программирование
|
||
|
||
## ⚙️ Функциональные возможности
|
||
|
||
- ✅ Регистрация пользователей с автоматической инициализацией
|
||
- ⏰ Настройка интервалов уведомлений (5 минут - 24 часа)
|
||
- 🔄 Динамическое управление статусом уведомлений
|
||
- 📊 Мониторинг активных пользователей и логирование
|
||
- 🔐 Graceful shutdown с корректным завершением задач
|
||
- 💾 Персистентное хранение настроек в SQLite
|
||
|
||
## 📦 Установка
|
||
|
||
```bash
|
||
# Клонирование репозитория
|
||
git clone https://github.com/EDeev/dorm_alarm.git
|
||
cd dorm_alarm
|
||
|
||
# Установка зависимостей
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
## 🔧 Конфигурация
|
||
|
||
Создайте файл `init.py` и укажите токен бота:
|
||
|
||
```python
|
||
BOT_TOKEN = "your_bot_token_here"
|
||
```
|
||
|
||
## 🚀 Запуск
|
||
|
||
```bash
|
||
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: [@EDeev](https://github.com/EDeev)
|
||
- Email: egor@deev.space
|
||
- Telegram: [@Egor_Deev](https://t.me/Egor_Deev)
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
<sub>⭐ Если проект оказался полезным, поставьте звездочку на GitHub!</sub>
|
||
<p><sub>Создано с ❤️ от вашего дорогого - deev.space ©</sub></p>
|
||
</div>
|