Skip to content

a-polyakov/com.zemrow.messenger

Repository files navigation

Zemrow Messenger

Что такое Zemrow Messenger?

Веб приложение объединяющее функционал мессенджера, создания и ведения задач, с возможностью автоматизации процессов.

Перед началом

На компьютере должны быть установлены

Как запустить

  • скачать исходники git clone https://github.com/a-polyakov/com.zemrow.messenger.git
  • запустить сервер mvn TODO

Технические детали

Клиентская часть реализована на jQuery. За получение и обработку запросов отвечает Undertow. Взаимодействие осуществляется по протоколу rest и websocket. Данные хранятся в БД PostgreSQL

Диаграмма взаимодействия компонентов

request_diagram.png

  1. Пользователь взаимодействует с клиентским приложением (это может быть ПК, телефон или другое устройство с WEB браузером) у одного пользователя может быть несколько одновременно используемых подключений.
  2. Клиентское приложение отправляет запрос на сервер (WebSocket).
  3. Сервер получает запрос, анализирует и отправляет на соответствеющий контролер.
  4. Контролер конвертирует данные и передает их в сервис.
  5. Сервис выполняет необходимые ему действия (часть из которых может выполнить вне транзакции).
  6. Внутри транзакции сервис вызывать один или больше логических блоков.
  7. Логический блок служат для повторного использования кода (без управления транзакциями, за это отвечает сервис).
  8. Логический блок использует DAO для взаимодействия с хранилищем.
  9. Передача ответа.
  10. Передача ответа.
  11. Передача ответа.
  12. Контролеру может понадобится несколько манипуляций с хранилищем.
  13. Запрос.
  14. Запрос.
  15. Ответ.
  16. Ответ.
  17. Логическому блоку тоже может понадобиться несколько манипуляций с хранилищем.
  18. Запрос.
  19. Ответ.
  20. Ответ.
  21. Ответ.
  22. Сервис получает ответ и закрывает транзакцию, дополняет ответ областью видимости.
  23. Контролер анализирует область видимости и определяет сервера которым необходимо отправить ответ.
  24. Сервер который должен отправить ответ может быть не один.
  25. Сервер по имеющемуся соединению уведомляем пользовательское приложение.
  26. Пользовательских приложений может быть много.

Схема данных

database_schema.svg

Работа с мессенджером

Работа мессенджера схожа с работой распространенных аналогов, поэтому остановимся на ключевых особенностях:

Задание это такой же чат с отображением ключевых элементов в шапке чата. Управление чатами/заданиями производится отправкой служебных сообщений такое сообщение содержит команды которые начинаются с !(восклицательный знак)

  • !добавить_собеседника
  • !удалить_собеседника
  • !покинуть_чат
  • !добавить_собеседника_с_историей
  • !удалить_собеседника_с_историей
  • !переименовать
  • !задание
  • !исполнитель
  • !срок_выполнения
  • !работа_начата
  • !работа_приостановлена
  • !работа_окончена
  • !приватный_чат
  • !статус
  • !оценка_времени
  • !описание
  • !дата_проведения
  • !место_проведения
  • !ожидаемый_результат
  • !фактический_результат

служебное сообщение может содержать параметры, которые могут быть обязательными тогда при их отсутствии система сообщит вам об этом

одно сообщение может содержать несколько команд

используя этот механизм можно расширять функциональность системы не меняя при этом клиентскую часть

Концепция UI (user interface - пользовательский интерфейс)

Разобьем интерфейс на роли:

  • Руководитель проекта
    • создание задач
    • оценку задач по приоритету
    • осуществляет планирование
    • следит за прогрессом выполнения задач и скорость работы.
  • Руководитель команды
    • детализация задач, разбиение на подзадачи
    • оценку задач по времени
    • распределяет имеющиеся задачи между исполнителями ориентируясь на загрузку
    • следит за качеством выполнения задач
  • Исполнитель
    • должен видеть задачи которые ему необходимо сделать, в простейшем случае задачник отсортированный по приоритету, исполнитель берет задачу с наивысшим приоритетом и выполняет ее.

При этом пользователь может выполнять любую из ролей ну и конечно же совмещать

Для отслеживания прогресса задач хорошо себя зарекомендовала доска Kanban

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

Для планирования используется диаграмма Ганта

Концепция ботов

Система должна предоставлять набор готовых и настраиваемых ботов, которые являются такими же пользователями мессенджера и имеют те же возможности, задача их следить да происходящим в чате/задании и реагировать:

  • уведомлять о нарушении бизнес процесса при смене статуса
  • уведомлять о приближении срока
  • интеграция со сторонними системами
    • при наступлении события в сторонней системе сообщать об этом в чате
    • при определенных сообщениях в чате выполнять действие в сторонней системе

в общем случае анализировать текущее состояние и возможно предпринимать какие-то действия

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published