Skip to content

Impervguin/doctree

Repository files navigation

Иерархическая система хранения документов

Цели

Цель: Разработать программное обеспечение для организации хранения документов в древовидных иерархиях с поддержкой полнотекстового поиска.

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

Функциональные требования

  1. Работа с иерархиями:

    • Создание корневых и дочерних узлов

    • Перенос поддеревьев между узлами

    • Получение полных деревьев и поддеревьев

    • Удаление узлов и целых иерархий

  2. Работа с документами:

    • CRUD операции с документами

    • Привязка документов к узлам иерархии (документ можно привязать к нескольким узлам)

    • Загрузка/удаление файлов документов

    • Установление связей между документами

    • Поиск по названию, тегам и содержимому

  3. Работа с файлами:

    • Парсинг содержимого файлов (PDF, DOCX, TXT) для дальнейшего поиска по тексту документа

Use-Case диаграмма

BPMN-диаграммы

Добавление нового документа

alt text

Подготовка судебного иска

alt text

Списание имущества

alt text

Сценарии использования

  1. Сценарий 1: Добавление нового документа

    • Пользователь аутентифицируется

    • Заполняет метаданные (название, описание, теги)

    • Пользователь выбирает целевые узлы в иерархиях

    • Загружает файлы документа

    • Система планирует парсинг содержимого файлов

    • Документ становится доступен для поиска

  2. Сценарий 2: Поиск документов

    • Пользователь аутентифицируется

    • Пользователь вводит критерии поиска (по названию, тегам, содержимому)

    • Система отображает релевантные документы

  3. Реорганизация иерархии

    • Администратор аутентифицируется

    • Администратор выбирает узел для перемещения

    • Вводит новый родительский узел

    • Система проверяет допустимость операции (избегание циклов)

    • Все дочерние элементы автоматически перемещаются вместе с узлом

ER-диаграмма

Технологический Стек

  1. Серверная часть

    • Язык: TypeScript
    • Фреймворк: NestJS
    • Http сервер: Express
    • Среда выполнения: Node.js
    • Взаимодействие с БД: TypeORM
  2. Хранение данных

    • База данных: PostgreSQL
    • Хранилище документов: Minio
    • Миграции БД: goose
  3. Фронтенд

    • Язык: TypeScript
    • Фреймворк: Vue.js
    • CSS-фреймворк: TailwindCSS

Реляционная схема

alt text

Диаграмма компонентов

alt text

Экраны приложения

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors