1: Анализ
Описание системы
Система «Корпоративная библиотека» предназначена для централизованного хранения, структурирования и управления внутренним документооборотом компании. Она обеспечивает безопасный коллективный доступ сотрудников к нормативным, регламентирующим и рабочим материалам, упрощая навигацию и совместную работу. Решение автоматизирует полный жизненный цикл документов — от их создания и рецензирования до архивного хранения.
Ключевые функции системы
* Хранение и иерархическая категоризация документов по разделам, проектам и отделам.
* Полнотекстовый поиск по содержимому файлов и атрибутивная фильтрация.
* Контроль версий с сохранением истории изменений и возможностью отката.
* Разграничение прав доступа на основе ролевой модели (RBAC).
* Совместное комментирование, рецензирование и согласование документов.
* Система уведомлений пользователей о внесении правок и новых версиях.
Логические блоки функций
* Блок хранения и структурирования: категоризация, присвоение метаданных, загрузка и удаление файлов.
* Блок поиска и аналитики: полнотекстовый поиск, фильтрация по атрибутам, индексация содержимого.
* Блок безопасности и прав: аутентификация, ролевой доступ (чтение, редактирование, администрирование), аудит действий.
* Блок совместной работы и версионирования: трекинг версий, рецензирование, оставление комментариев, согласование.
2: Проектирование модулей
1. Модуль управления доступом и аутентификации (Auth & Access Module)
* Ответственность: отвечает за аутентификацию пользователей, проверку полномочий и ролевое разграничение прав доступа к объектам системы.
* Ключевые операции:
* CheckAccess(userId, documentId, action) — проверка прав на чтение, редактирование или удаление.
* AssignRole(userId, roleId) — назначение ролей пользователям.
* LogSecurityEvent(userId, action, status) — запись действий пользователя в журнал аудита.
2. Модуль каталогизации и хранения (Catalog & Storage Module)
* Ответственность: обеспечивает физическое сохранение файлов, управление файловой структурой, метаданными и категоризацией.
* Ключевые операции:
* UploadDocument(fileData, metadata) — загрузка документа и привязка метаданных.
* CategorizeDocument(documentId, categoryId) — размещение документа в определенном разделе.
* GetDocumentMeta(documentId) — получение карточки документа и его атрибутов.
3. Модуль версионности и рецензирования (Versioning & Review Module)
* Ответственность: отслеживает изменения файлов, хранит историю версий и обеспечивает процесс комментирования и согласования.
* Ключевые операции:
* CreateNewVersion(documentId, newFile, changeLog) — фиксация новой версии документа.
* AddComment(versionId, userId, commentText) — добавление рецензии или комментария к версии.
* CompareVersions(versionId1, versionId2) — получение диффа (разницы) между двумя версиями.
4. Модуль поиска и индексации (Search & Indexing Module)
* Ответственность: индексирует текстовое содержимое загруженных файлов и предоставляет API для быстрого полнотекстового и критериального поиска.
* Ключевые операции:
* IndexDocument(documentId, textContent) — извлечение и индексация текста документа.
* SearchByQuery(queryString, filters) — выполнение поиска по ключевым словам и параметрам.
* ReindexCatalog() — обновление поискового индекса всей библиотеки.