mirror of
https://github.com/ada-dmitry/vol_bot.git
synced 2026-09-24 08:40:17 +00:00
94 lines
5.4 KiB
Markdown
94 lines
5.4 KiB
Markdown
# Volunteer Center Bot (Волонтерский Центр НИЯУ МИФИ Бот)
|
|
|
|
## Описание
|
|
|
|
Этот проект представляет собой Telegram-бота, разработанного для Волонтерского Центра НИЯУ МИФИ. Бот предоставляет функционал для регистрации пользователей, управления рассылками и взаимодействия с администраторами.
|
|
|
|
## Основной функционал:
|
|
|
|
1. **Регистрация пользователей:**
|
|
* Позволяет новым пользователям зарегистрироваться в системе бота.
|
|
* Данные пользователей сохраняются в базе данных.
|
|
|
|
2. **Подписка/Отписка от рассылки:**
|
|
* Пользователи могут подписываться на рассылку сообщений от администраторов.
|
|
* Пользователи могут отписываться от рассылки в любое время.
|
|
|
|
3. **Рассылка сообщений:**
|
|
* Администраторы могут отправлять сообщения пользователям, подписанным на рассылку.
|
|
* Поддерживаются два формата сообщений: короткий и длинный.
|
|
|
|
4. **Статистика рассылки:**
|
|
* Предоставляет администраторам информацию об объеме рассылки (например, количество получателей).
|
|
|
|
## Технологии:
|
|
|
|
* **Python:** Основной язык программирования.
|
|
* **aiogram:** Библиотека для создания Telegram-ботов.
|
|
* **SQLAlchemy:** ORM для работы с базой данных.
|
|
* **PostgreSQL:** Используется в качестве базы данных.
|
|
* **dotenv:** Для управления переменными окружения.
|
|
* **FSM (Finite State Machine):** Для управления состояниями бота.
|
|
* **MemoryStorage:** Хранилище состояний в оперативной памяти.
|
|
|
|
## Структура проекта:
|
|
|
|
* **`main.py`:** Основной файл, запускающий бота.
|
|
* **`handlers/`:** Директория, содержащая обработчики событий (хендлеры) для различных типов пользователей (обычные пользователи, администраторы) и callback-запросов.
|
|
* `user.py`: Обработчики для обычных пользователей.
|
|
* `admin.py`: Обработчики для администраторов.
|
|
* `admin_adv.py`: Обработчики для рассылки сообщений администраторами.
|
|
* `adv_callbacks.py`: Обработчики для callback-запросов, связанных с рассылкой.
|
|
* **`database/`:** Директория, содержащая код для работы с базой данных.
|
|
* `__init__.py`: Инициализация модуля.
|
|
* **`.env`:** Файл с переменными окружения (например, токен бота).
|
|
* **`README.md`:** Этот файл.
|
|
|
|
## Установка и запуск:
|
|
|
|
1. **Клонируйте репозиторий:**
|
|
```bash
|
|
git clone https://github.com/ada-dmitry/vol_bot
|
|
cd vol_bot
|
|
```
|
|
|
|
2. **Создайте виртуальное окружение (рекомендуется):**
|
|
```bash
|
|
python3 -m venv venv
|
|
source venv/bin/activate # Linux/macOS
|
|
venv\Scripts\activate # Windows
|
|
```
|
|
|
|
3. **Установите зависимости:**
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
(Если у вас нет файла `requirements.txt`, то установите зависимости вручную: `pip install aiogram python-dotenv sqlalchemy`)
|
|
|
|
4. **Создайте файл `.env`:**
|
|
* Скопируйте содержимое файла `.env.example` в новый файл `.env`.
|
|
* Замените `BOT_TOKEN` на токен вашего бота, полученный от BotFather.
|
|
|
|
5. **Запустите бота:**
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
## Разработка:
|
|
|
|
* Для добавления нового функционала создавайте новые обработчики в соответствующих файлах директории `handlers/`.
|
|
* Для работы с базой данных используйте SQLAlchemy.
|
|
* Для управления состояниями бота используйте FSM.
|
|
|
|
## Планы по развитию:
|
|
|
|
* Добавление новых команд и функций.
|
|
* Улучшение интерфейса взаимодействия с пользователем.
|
|
* Расширение возможностей администраторов.
|
|
* Добавление логирования.
|
|
* Добавление тестов.
|
|
|
|
## Контакты
|
|
Другие проекты: [GitHub](https://github.com/ada-dmitry)
|
|
По вопросам и предложениям обращайтесь: [TG - Дмитрий](https://t.me/ada_dmitry)
|