Система технической поддержки с Telegram и MAX ботами и веб-интерфейсом для работы с заявками.
Пользователи создают заявки через бота (Telegram или MAX), прикладывая текст, изображения или голосовые сообщения. Сотрудники поддержки обрабатывают заявки через веб-панель, а ответы автоматически отправляются обратно пользователю через того же бота.
Пользователь ──► Telegram Bot (bot_telebot.py) ──►┐
├──► PostgreSQL
Пользователь ──► MAX Bot (bot_max.py) ──►┘ │
│
Сотрудник ──► Flask Web App (webapp.py) ◄────────────┘
│
Scheduler Telegram (sheduler_for_response_bot.py) ◄─┤
Scheduler MAX (sheduler_for_response_max.py) ◄─┘
| Файл | Описание |
|---|---|
bot_telebot.py | Telegram-бот для создания заявок (pyTelegramBotAPI) |
bot_max.py | MAX-бот для создания заявок (maxapi, asyncio) |
webapp.py | Flask веб-приложение для сотрудников поддержки |
sheduler_for_response_bot.py | Планировщик отправки ответов в Telegram |
sheduler_for_response_max.py | Планировщик отправки ответов в MAX |
db_working.py | Слой работы с базой данных (psycopg2) |
config.py | Чтение конфигурации из config.ini |
forms.py | WTForms формы для веб-приложения |
models.py | SQLAlchemy модели |
git clone git@github.com:ecoli79/help_desk_service.git
cd help_desk_service
pip install psycopg2 pyTelegramBotAPI flask flask-login flask-sqlalchemy flask-wtf requests APScheduler maxapi aiohttp
createdb -U admin bot_support
psql -U admin -d bot_support -f bot_support.sql
config.ini в корне проекта:Все настройки для подключения к БД и токены ботов хранятся в этом файле.
Он добавлен в .gitignore и не попадает в репозиторий -- каждый разработчик создает его локально.
[postgresql]
host = localhost
database = bot_support
user = admin
password = your_password
[telegram_bot]
token = YOUR_TELEGRAM_BOT_TOKEN
[max_bot]
token = YOUR_MAX_BOT_TOKEN
| Секция | Параметры | Используется в |
|---|---|---|
postgresql | host, database, user, password | db_working.py, webapp.py |
telegram_bot | token | bot_telebot.py, sheduler_for_response_bot.py |
max_bot | token | bot_max.py, sheduler_for_response_max.py |
Для полноценной работы сервиса необходимо запустить 5 процессов:
# 1. Telegram-бот
python bot_telebot.py
# 2. MAX-бот
python bot_max.py
# 3. Веб-панель для сотрудников (http://0.0.0.0:5000)
python webapp.py
# 4. Планировщик ответов Telegram
python sheduler_for_response_bot.py
# 5. Планировщик ответов MAX
python sheduler_for_response_max.py
users -- пользователи Telegram/MAXemployee -- сотрудники поддержки (авторизация в веб-панели)tickets -- заявкиticket_types -- типы заявок. При создании базы скрипт добавляет типы по умолчанию: Подписание, Оборудование, Доступ к системам, Другое. Если нужны другие типы -- измените список INSERT в bot_support.sql перед применением скрипта, либо добавьте/измените записи в таблице ticket_types после создания базы. Боты и веб-панель подхватывают типы из этой таблицы автоматическиimages -- изображения, прикрепленные к заявкамvoices -- голосовые сообщения, прикрепленные к заявкам16 commits
Python
72.4%
CSS
13.5%
HTML
12.9%
Dockerfile
1.2%
Система технической поддержки с Telegram и MAX ботами и веб-интерфейсом для работы с заявками.
Пользователи создают заявки через бота (Telegram или MAX), прикладывая текст, изображения или голосовые сообщения. Сотрудники поддержки обрабатывают заявки через веб-панель, а ответы автоматически отправляются обратно пользователю через того же бота.
Пользователь ──► Telegram Bot (bot_telebot.py) ──►┐
├──► PostgreSQL
Пользователь ──► MAX Bot (bot_max.py) ──►┘ │
│
Сотрудник ──► Flask Web App (webapp.py) ◄────────────┘
│
Scheduler Telegram (sheduler_for_response_bot.py) ◄─┤
Scheduler MAX (sheduler_for_response_max.py) ◄─┘
| Файл | Описание |
|---|---|
bot_telebot.py | Telegram-бот для создания заявок (pyTelegramBotAPI) |
bot_max.py | MAX-бот для создания заявок (maxapi, asyncio) |
webapp.py | Flask веб-приложение для сотрудников поддержки |
sheduler_for_response_bot.py | Планировщик отправки ответов в Telegram |
sheduler_for_response_max.py | Планировщик отправки ответов в MAX |
db_working.py | Слой работы с базой данных (psycopg2) |
config.py | Чтение конфигурации из config.ini |
forms.py | WTForms формы для веб-приложения |
models.py | SQLAlchemy модели |
git clone git@github.com:ecoli79/help_desk_service.git
cd help_desk_service
pip install psycopg2 pyTelegramBotAPI flask flask-login flask-sqlalchemy flask-wtf requests APScheduler maxapi aiohttp
createdb -U admin bot_support
psql -U admin -d bot_support -f bot_support.sql
config.ini в корне проекта:Все настройки для подключения к БД и токены ботов хранятся в этом файле.
Он добавлен в .gitignore и не попадает в репозиторий -- каждый разработчик создает его локально.
[postgresql]
host = localhost
database = bot_support
user = admin
password = your_password
[telegram_bot]
token = YOUR_TELEGRAM_BOT_TOKEN
[max_bot]
token = YOUR_MAX_BOT_TOKEN
| Секция | Параметры | Используется в |
|---|---|---|
postgresql | host, database, user, password | db_working.py, webapp.py |
telegram_bot | token | bot_telebot.py, sheduler_for_response_bot.py |
max_bot | token | bot_max.py, sheduler_for_response_max.py |
Для полноценной работы сервиса необходимо запустить 5 процессов:
# 1. Telegram-бот
python bot_telebot.py
# 2. MAX-бот
python bot_max.py
# 3. Веб-панель для сотрудников (http://0.0.0.0:5000)
python webapp.py
# 4. Планировщик ответов Telegram
python sheduler_for_response_bot.py
# 5. Планировщик ответов MAX
python sheduler_for_response_max.py
users -- пользователи Telegram/MAXemployee -- сотрудники поддержки (авторизация в веб-панели)tickets -- заявкиticket_types -- типы заявок. При создании базы скрипт добавляет типы по умолчанию: Подписание, Оборудование, Доступ к системам, Другое. Если нужны другие типы -- измените список INSERT в bot_support.sql перед применением скрипта, либо добавьте/измените записи в таблице ticket_types после создания базы. Боты и веб-панель подхватывают типы из этой таблицы автоматическиimages -- изображения, прикрепленные к заявкамvoices -- голосовые сообщения, прикрепленные к заявкам16 commits
Python
72.4%
CSS
13.5%
HTML
12.9%
Dockerfile
1.2%