Files
vol_bot/README.md
T

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)