Skip to content

Latest commit

 

History

History
58 lines (47 loc) · 3.54 KB

README.md

File metadata and controls

58 lines (47 loc) · 3.54 KB

TgHelpDesk

Проект был создан, чтобы решить задачу направления заявок от пользователей к IT-отделу через Telegram бота. Для удобства пользователя выбран формат TgWebApp.

О проекте

Проект разрабатывался 2 дня, и в реальном времени является "игрушечной" mvp моделью, однако уже интегрирован и успешно выполняет функционал, для которого был создан.

Использованные технологии

  • Blazor Server-Side (в частности библиотека Radzen)
  • Telegram WebApp (в частности js, который требует Tg, и библиотека Telegram.Bot)
  • MVC для отображения страниц в WebView телеграмма
  • EntityFramework
  • JWT Bearer для авторизации пользователей Tg.

Планы на разработку

  • Ввод имени пользователя до старта WebView
  • Авторизация tg пользователей по коду, по принципу белого листа.
  • Авторизация в Blazor.
  • Бан Лист
  • Представление задач в виде матрицы Эйзенхауэра
  • Ручная обратная связь в чат с пользователем
  • Загрузка фото на сервер

Установка и Размещение на сервере

  • Создайте бота, через BotFather
  • Установите токен в appsettings.json
  • Сгенерируйте секретный токен
  • Укажите адрес вашего сервера, для регистрации WebHook-а на стороне Telegram.

Локальная установка для тестирования

  • Используйте ngrok и получите доменное имя.
  • Направьте перенаправления на локальный порт приложения
  • Обновите "HostAddress" в appsettings.json на выданный в ngrok адрес.

Установка на сервер

Зависит от используемого обратного прокси и ОС. Не забудьте установить способ хранения DataProtectionKeys. Для сервера Ubuntu использую

builder.Services.AddDataProtection()
    .PersistKeysToFileSystem(new DirectoryInfo(@"ваш_путь_до_папки_хранения_ключей"));

Скриншоты

WebView Телеграмма в светлой теме Окно WebView Телеграмма в светлой теме


WebView Телеграмма в темной теме Окно WebView Телеграмма в темной теме


Формат сообщений-уведомлений в чате Формат сообщений-уведомлений в чате


Окно панели управления Окно панели управления