Цель: Разработать программное обеспечение для организации хранения документов в древовидных иерархиях с поддержкой полнотекстового поиска.
Решаемая проблема: Отсутствие удобной системы для структурированного хранения нормативно-правовых актов, технической документации и других документов с возможностью их категоризации в древовидные структуры и поиска по содержимому.
-
Работа с иерархиями:
-
Создание корневых и дочерних узлов
-
Перенос поддеревьев между узлами
-
Получение полных деревьев и поддеревьев
-
Удаление узлов и целых иерархий
-
-
Работа с документами:
-
CRUD операции с документами
-
Привязка документов к узлам иерархии (документ можно привязать к нескольким узлам)
-
Загрузка/удаление файлов документов
-
Установление связей между документами
-
Поиск по названию, тегам и содержимому
-
-
Работа с файлами:
- Парсинг содержимого файлов (PDF, DOCX, TXT) для дальнейшего поиска по тексту документа
-
Сценарий 1: Добавление нового документа
-
Пользователь аутентифицируется
-
Заполняет метаданные (название, описание, теги)
-
Пользователь выбирает целевые узлы в иерархиях
-
Загружает файлы документа
-
Система планирует парсинг содержимого файлов
-
Документ становится доступен для поиска
-
-
Сценарий 2: Поиск документов
-
Пользователь аутентифицируется
-
Пользователь вводит критерии поиска (по названию, тегам, содержимому)
-
Система отображает релевантные документы
-
-
Реорганизация иерархии
-
Администратор аутентифицируется
-
Администратор выбирает узел для перемещения
-
Вводит новый родительский узел
-
Система проверяет допустимость операции (избегание циклов)
-
Все дочерние элементы автоматически перемещаются вместе с узлом
-
-
Серверная часть
- Язык: TypeScript
- Фреймворк: NestJS
- Http сервер: Express
- Среда выполнения: Node.js
- Взаимодействие с БД: TypeORM
-
Хранение данных
- База данных: PostgreSQL
- Хранилище документов: Minio
- Миграции БД: goose
-
Фронтенд
- Язык: TypeScript
- Фреймворк: Vue.js
- CSS-фреймворк: TailwindCSS









