Skip to content

Kusanagi-2029/Document-flow-Tg-bot-on-Node.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Document flow Tg-bot on Node.js - Приложение по документообороту

Содержание

Назначение Telegram-бота

Просматривать и добавлять на предложение темы документации. В приложении реализован функционал:

  • Просмотра списка тем документации и подробных данных по номеру темы.
  • Добавления темы на предложение в отдельную таблицу с текстовыми данными (текст и ссылки)
  • Логирования команд пользователей - всего, что касается БД. Мусорная информация, которая не будет отправлена в БД (как загружаемый видеофайл), не заносится в логи.
  • Просмотра определённой информации о системе администратором (реализована роль, которой доступны специальные команды)

Скриншот с данными по конкретной теме Данные по темам

Функционально-логические отношения процессов (IDEF0)

В диаграммах стандарта IDEF0 отражаются исключительно функционально-логические отношения процессов, подробные детали реализации не указываются.

Контекстная диаграмма А-0

  1. Входными данными были определены:
  • заказ предприятия,
  • выделенные ресурсы,
  • информация о действующей ИС и документация по выбранным технологиям.
  1. Управляющее воздействие – требования к проекту.
  2. Механизм воздействия – разработчик ПО и средства разработки.
  3. Выходные данные – готовая ИС автоматизации процессов подготовки документации IT-проектов и руководство пользователя. Контекстная диаграмма А-0

Декомпозиция основной диаграммы А0

Декомпозиция основной диаграммы А0

Структура проекта

Структура проекта разрабатываемой информационной системы состоит из:

  • каталога models, где находятся модели создаваемых через программный код таблиц в БД;
  • файла настроек соединения с БД db.js;
  • файла, являющимся точкой входа в программу – index.js;
  • файлов указанных зависимостей – package-lock.json, package.json.

Структура проекта

Архитектура приложения

Архитектура приложения

В системе, в которую интегрируется разрабатываемое приложение, уже имеется база данных с определённой таблицей, которая заполняется вручную уполномоченным лицом или же через специальные подсистемы (в данном случае это не имеет критического значения), и из которой разрабатываемое приложение должно получать данные на чтение и выводить их своим пользователям в виде, удобным для чтения человеку, посредством Telegram-бота.

  • При этом стоит уточнить, что сами данные не хранятся в БД для обеспечения легковесности оной и скорости выполнения sql-запросов, а хранятся данные в специальном облачном хранилище, в котором их можно найти по web-ссылкам.
  • Также в существующей корпоративной БД имеется таблица с прописанными ролями каждого пользователя, в которой имеется роль администратора. В данную БД разрабатываемое приложение добавляет две таблицы – для логирования базовых действий своих пользователей и для хранения предложенных ими тем технической документации. Таблица для логирования базовых действий пользователей Таблица предложенных тем
  • Таким образом, архитектура разрабатываемого программного продукта такова: клиентская часть основана на кроссплатформенных приложениях Telegram и взаимодействует посредством программного интерфейса приложений Telegram с серверной частью с бизнес-логикой приложения (расположенной на одном сервере); серверная часть содержит всю бизнес-логику и взаимодействует с базой данных (расположенной на другом сервере).
  • Подразумевается, что база данных взаимодействует с облачным хранилищем данных (расположенном на третьем сервере) и взаимодействует с другими подсистемами предприятия по необходимости.

Список команд

Команды, распознаваемые приложением на основе Telegram:

Команда Описание команды
/help Вывод основных команд /help и /info, команды просмотра администратора /admin и способа ввода предложенной темы
/info Вывод команд вывода тем документации из главной таблицы тем и из таблицы предложенных тем с описанием
Ввод номера (id) темы Если тема не найдена, то будет выведено сообщение: «Такой темы ещё нет, или она была удалена». Если тема найдена, будет произведён вывод всей информации по теме, которая отображена в таблице.
/topicsList Вывод тем на просмотр из подсистемы "N"
/topicsLast_25 Вывод последних 25 тем из подсистемы "N".
/proposedThemeLast Вывод последней предложенной темы.
/proposedThemesLast_10 Вывод последних 10 предложенных тем.
/admin Вывод информации о том, кто администратор. Если пользователь не является администратором, вывод сообщения «Вы - не администратор. За всеми вопросами обращайтесь к текущему администратору Имя_Фамилия (@Ссылка_на_аккаунт)».Если пользователь является администратором, оповещение его об этом и вывод команд администратора: «Имя Фамилия, Вы - действующий администратор.»
/view_10_last_propose_or_view_members Просмотр 10 последних предложивших или просмотревших из подсистемы темы пользователей.
/view_20_last_logs Вывод последних 20 записей о пользователях (их логов).
/view_20_new_member Вывод последних 20 тех, кто присоединился.
/get_admin Попытаться стать администратором. Выводит сообщение с просьбой ввести пароль для получения данной роли. Если пароль введён неверный – команда игнорируется (далее можно, не вызывая эту команду повторно, просто ввести верный пароль). Если пароль введён верно – выводит сообщение о том, что бывший администратор более обладает данной ролью. (Происходит запись данных о новом администраторе в таблицу ролей). Проверить это можно командой /admin.

Команды администратора:

Команда Описание команды
/view_10_last_propose_or_view_members Просмотр 10 последних предложивших или просмотревших из подсистемы темы пользователей.
/view_20_last_logs Вывод последних 20 записей о пользователях (их логов).
/view_20_new_member Вывод последних 20 тех, кто присоединился.

А также вывод команды явного получения роли администратора, которое администратор может переслать другому пользователю /get_admin - Попытаться стать администратором.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published