Атестаційні завдання K2 ERP/Веб-архів документів
Атестаційне завдання K2 ERP — Веб-архів документів — це практична задача для перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля електронного архіву документів із версіями, файлами, історією змін, контролем доступу, пошуком, погодженням, відновленням попередніх версій і формуванням контрольних реєстрів.
Модуль має забезпечувати централізоване зберігання службових, юридичних, технічних, фінансових, проєктних та інших документів організації. Кожен документ повинен мати картку, категорію, статус, теги, файл, версії, історію змін, права доступу та журнал дій користувачів.
Коротко. Потрібно реалізувати веб-архів документів: категорії, документи, файли, версії, теги, статуси, історія змін, порівняння версій, відновлення попередніх версій, права доступу, погодження, пошук, ревізія, експорт і AJAX-інтерактив.
Назва завдання
Модуль обліку електронних документів з версіями та контролем змін.
Мета завдання
Мета завдання — створити в K2 ERP модуль веб-архіву для зберігання, пошуку, оновлення, погодження і контролю версій документів.
Система повинна дозволяти:
- вести категорії документів;
- вести типи документів;
- вести теги;
- створювати картки документів;
- завантажувати файли документів;
- додавати нові версії файлів;
- бачити поточну версію документа;
- переглядати історію версій;
- порівнювати версії текстових документів;
- відновлювати попередню версію;
- фіксувати автора змін;
- зберігати опис змін;
- налаштовувати права доступу;
- обмежувати перегляд, редагування, завантаження і видалення;
- погоджувати або затверджувати документи;
- вести журнал дій користувачів;
- шукати документи за назвою, категорією, тегами, автором, датою і статусом;
- формувати контрольні реєстри;
- експортувати списки документів у PDF або Excel.
Головний принцип. Жоден важливий документ не повинен губитися: користувач має бачити актуальну версію, історію змін, автора змін, статус документа і права доступу.
Реальний бізнес-контекст
Організація або підприємство працює з великою кількістю документів:
- договори;
- додаткові угоди;
- рахунки;
- акти;
- накази;
- політики;
- інструкції;
- технічні документи;
- креслення;
- проєктна документація;
- юридичні документи;
- фінансові документи;
- кадрові документи;
- службові записки;
- регламенти;
- шаблони документів.
Без централізованого архіву виникають типові проблеми:
- складно знайти потрібний документ;
- незрозуміло, яка версія є актуальною;
- документи зберігаються у різних користувачів;
- зміни не фіксуються;
- попередні версії втрачаються;
- немає контролю доступу;
- немає історії погодження;
- неможливо швидко провести ревізію документів.
Веб-архів вирішує ці проблеми через єдину систему зберігання, пошуку, версійності та прав доступу.
Основний бізнес-процес
Типовий процес роботи з документом виглядає так:
- користувач створює картку документа;
- обирає категорію і тип документа;
- додає назву, номер, дату і опис;
- завантажує файл першої версії;
- система створює версію v1;
- документ отримує статус «Чернетка»;
- користувач передає документ на перегляд або погодження;
- відповідальна особа погоджує документ або повертає на доопрацювання;
- автор завантажує нову версію;
- система створює версію v2;
- історія змін зберігається;
- після затвердження документ отримує статус «Затверджено»;
- при потребі користувач може переглянути стару версію або відновити її;
- адміністратор формує контрольний реєстр документів.
Основні об’єкти модуля
| Об’єкт | Призначення |
|---|---|
| Категорії документів | Групування документів за напрямами |
| Типи документів | Договір, наказ, інструкція, політика, креслення тощо |
| Документи | Основні картки документів |
| Версії документів | Історія файлів і змін |
| Файли | PDF, DOCX, XLSX, TXT, зображення та інші формати |
| Теги | Швидке маркування і пошук документів |
| Права доступу | Хто може переглядати, редагувати, погоджувати, завантажувати |
| Погодження | Процес перевірки і затвердження документа |
| Коментарі | Обговорення документа або версії |
| Журнал змін | Історія дій користувачів |
| Реєстри | Контрольні списки документів |
Довідник «Категорії документів»
Категорії допомагають структурувати архів.
Приклади категорій
- договори;
- політики та інструкції;
- технічні документи;
- юридичні документи;
- фінансові документи;
- кадрові документи;
- проєкти;
- комерційні пропозиції;
- акти;
- рахунки;
- шаблони;
- внутрішні регламенти;
- інше.
Поля категорії
| Поле | Опис |
|---|---|
| Назва категорії | Наприклад: Договори, Інструкції, Технічні документи |
| Батьківська категорія | Для багаторівневої структури |
| Опис | Коротке пояснення |
| Активність | Чи використовується категорія |
Довідник «Типи документів»
Тип документа дозволяє деталізувати призначення файлу.
Приклади типів
- договір;
- додаткова угода;
- наказ;
- інструкція;
- політика;
- технічне завдання;
- креслення;
- акт;
- рахунок;
- протокол;
- сертифікат;
- шаблон;
- службова записка.
Довідник «Теги»
Теги потрібні для швидкої фільтрації документів.
Приклади тегів
- важливо;
- юридичний;
- фінанси;
- клієнт;
- постачальник;
- шаблон;
- архів;
- на погодженні;
- конфіденційно;
- проєкт;
- терміново.
Довідник «Типи доступу»
Типи доступу визначають можливості користувачів.
Основні типи доступу
- перегляд;
- редагування;
- завантаження;
- експорт;
- додавання версії;
- погодження;
- затвердження;
- видалення;
- адміністрування.
База «Документи»
Документ — головний об’єкт веб-архіву.
Колонки бази документів
| Колонка | Опис |
|---|---|
| Назва документа | Назва для пошуку і відображення |
| Категорія | До якої групи належить документ |
| Тип документа | Договір, наказ, інструкція тощо |
| Номер документа | Внутрішній або зовнішній номер |
| Дата створення | Коли документ створено |
| Автор | Хто створив картку |
| Поточна версія | Актуальна версія файлу |
| Статус | Чернетка, на перегляді, затверджено, архівовано |
| Теги | Позначки для пошуку |
Поля картки документа
| Поле | Опис |
|---|---|
| Назва документа | Повна назва документа |
| Категорія | Категорія архіву |
| Тип документа | Вид документа |
| Номер документа | Номер, якщо є |
| Дата документа | Дата створення або підписання |
| Автор | Хто створив документ |
| Відповідальний | Хто відповідає за актуальність |
| Опис | Короткий зміст |
| Теги | Позначки для пошуку |
| Поточна версія | Актуальна версія |
| Статус | Поточний стан документа |
| Коментарі | Службові нотатки |
Статуси документа
| Статус | Значення |
|---|---|
| Чернетка | Документ створено, але ще не погоджено |
| На перегляді | Документ перевіряється |
| На погодженні | Очікує погодження відповідальної особи |
| Повернено на доопрацювання | Потрібні зміни |
| Затверджено | Документ прийнято як актуальний |
| Замінено новою версією | Є новіша версія документа |
| Архівовано | Документ збережено для історії |
| Скасовано | Документ більше не використовується |
База «Версії документів»
Кожен документ може мати багато версій.
Колонки версій
| Колонка | Опис |
|---|---|
| Документ | До якого документа належить версія |
| Версія | v1, v2, v3 або інший формат |
| Дата завантаження | Коли додано версію |
| Автор змін | Хто завантажив файл |
| Опис змін | Що змінилося |
| Файл | Завантажений документ |
| Статус версії | Чернетка, актуальна, архівна, скасована |
Поля версії документа
| Поле | Опис |
|---|---|
| Документ | Батьківська картка документа |
| Номер версії | Наприклад: v1, v2, v3 |
| Файл | Завантажений файл |
| Формат файлу | PDF, DOCX, XLSX, TXT, PNG, JPG тощо |
| Автор версії | Хто додав версію |
| Дата і час | Коли додано версію |
| Опис змін | Що було змінено |
| Коментар | Додаткові примітки |
| Статус | Актуальна, архівна, відхилена |
Правила версійності
Система має підтримувати чіткі правила роботи з версіями.
Основні правила
- перша завантажена версія отримує номер v1;
- кожне нове завантаження створює нову версію;
- стара версія не видаляється автоматично;
- лише одна версія може бути поточною;
- поточна версія має бути помітно позначена;
- користувач може переглянути історію версій;
- користувач із правами може відновити попередню версію;
- відновлення попередньої версії має логуватися.
Важливо. Нова версія документа не повинна перезаписувати старий файл. Усі версії мають зберігатися в історії.
Порівняння версій
Для текстових документів бажано реалізувати порівняння версій.
Підтримувані варіанти порівняння
- порівняння TXT;
- порівняння тексту, витягнутого з DOCX, якщо реалізовано;
- порівняння текстових полів;
- показ доданих рядків;
- показ видалених рядків;
- показ змінених фрагментів.
Відновлення попередньої версії
Користувач із відповідними правами може відновити стару версію.
Логіка відновлення
- користувач відкриває історію версій;
- обирає попередню версію;
- натискає «Відновити»;
- система створює нову версію на основі обраної;
- ця версія стає поточною;
- дія записується в журнал змін.
Погодження документів
Для важливих документів потрібен процес погодження.
Статуси погодження
| Статус | Значення |
|---|---|
| Не потрібно | Документ не потребує погодження |
| Очікує погодження | Документ передано відповідальній особі |
| Погоджено | Документ прийнято |
| Відхилено | Документ не прийнято |
| Повернено на доопрацювання | Потрібні зміни |
Поля погодження
| Поле | Опис |
|---|---|
| Документ | Який документ погоджується |
| Версія | Яка версія погоджується |
| Погоджувач | Хто має погодити |
| Дата передачі | Коли передано на погодження |
| Дата рішення | Коли погоджено або відхилено |
| Рішення | Погоджено, відхилено, на доопрацювання |
| Коментар | Пояснення погоджувача |
Коментарі і нотатки
Користувачі можуть залишати коментарі до документа або конкретної версії.
Коментар має містити
- автора;
- дату і час;
- текст коментаря;
- прив’язку до документа або версії;
- статус, якщо коментар пов’язаний із доопрацюванням.
Доступ і права
Модуль має підтримувати контроль доступу на рівні документів.
Рівні доступу
- доступ до всіх документів;
- доступ до категорії;
- доступ до конкретного документа;
- доступ тільки до перегляду;
- доступ до редагування;
- доступ до завантаження файлу;
- доступ до додавання версій;
- доступ до погодження;
- доступ до адміністрування.
Критично. Користувач без прав не повинен бачити конфіденційні документи, завантажувати файли або переглядати історію версій.
Ролі користувачів
| Роль | Можливості |
|---|---|
| Користувач | Переглядає доступні документи |
| Автор документа | Створює документи і додає нові версії |
| Редактор | Редагує картки документів і додає версії |
| Погоджувач | Погоджує або відхиляє документи |
| Адміністратор архіву | Керує категоріями, правами, версіями і реєстрами |
| Керівник | Переглядає контрольні звіти і статуси документів |
| Адміністратор системи | Налаштовує права, довідники, сховище файлів і службові параметри |
Пошук документів
Пошук має бути зручним і швидким.
Параметри пошуку
- назва документа;
- номер документа;
- категорія;
- тип документа;
- тег;
- автор;
- відповідальний;
- дата створення;
- дата оновлення;
- статус;
- формат файлу;
- текстовий пошук у назві або описі;
- текстовий пошук у вмісті, якщо реалізовано індексацію.
Фільтри
У списку документів потрібно реалізувати фільтри:
- за категорією;
- за статусом;
- за автором;
- за тегом;
- за датою;
- за наявністю актуальної версії;
- за документами на погодженні;
- за архівними документами.
Масове завантаження документів
Опціонально можна реалізувати batch upload.
Можливості масового завантаження
- завантаження кількох файлів одночасно;
- автоматичне створення карток документів;
- вибір категорії для всієї групи;
- присвоєння тегів;
- перегляд списку перед збереженням;
- логування операції.
Ревізія документів
Ревізія потрібна для перевірки актуальності архіву.
Контрольний реєстр для ревізії має містити
- назву документа;
- категорію;
- тип;
- поточну версію;
- статус;
- відповідального;
- дату останньої зміни;
- наявність файлу;
- кількість версій;
- чи потрібне оновлення.
Звіти
Звіт «Реєстр документів»
У звіті потрібно відображати:
- назву документа;
- категорію;
- тип;
- номер;
- дату документа;
- автора;
- поточну версію;
- статус;
- відповідального.
Звіт «Документи на погодженні»
У звіті потрібно відображати:
- документ;
- версію;
- погоджувача;
- дату передачі;
- поточний статус;
- кількість днів на погодженні.
Звіт «Історія змін»
У звіті потрібно відображати:
- документ;
- версію;
- користувача;
- дію;
- дату і час;
- опис змін.
Звіт «Архівні документи»
У звіті потрібно відображати:
- документ;
- категорію;
- останню версію;
- дату архівації;
- причину архівації;
- відповідального.
Звіт «Документи без актуальної версії»
У звіті потрібно відображати документи, у яких:
- немає завантаженого файлу;
- немає поточної версії;
- поточна версія не затверджена;
- документ давно не оновлювався;
- документ має статус чернетки занадто довго.
AJAX-інтерактив
Інтерфейс має працювати швидко і без перезавантаження сторінок.
Через AJAX мають працювати:
- пошук документів;
- фільтрація документів;
- створення документа;
- завантаження файлу;
- додавання нової версії;
- перегляд історії версій;
- зміна статусу документа;
- передача на погодження;
- погодження документа;
- відхилення документа;
- додавання коментаря;
- відновлення версії;
- фільтрація звітів.
Логування змін
Модуль повинен фіксувати всі важливі дії.
Журнал змін має зберігати:
- хто створив документ;
- хто змінив назву;
- хто змінив категорію;
- хто завантажив файл;
- хто додав нову версію;
- хто зробив версію актуальною;
- хто відновив стару версію;
- хто передав документ на погодження;
- хто погодив документ;
- хто відхилив документ;
- хто змінив права доступу;
- хто завантажив файл на комп’ютер;
- хто експортував реєстр;
- дату й час дії;
- старе та нове значення, якщо це можливо.
Зберігання файлів
Файли можуть зберігатися:
- у файловій системі сервера;
- у базі даних;
- у хмарному сховищі;
- у S3-сумісному сховищі;
- в іншому зовнішньому сховищі.
Вимоги до файлів
Система має зберігати:
- оригінальну назву файлу;
- технічну назву файлу;
- розмір файлу;
- формат;
- дату завантаження;
- автора завантаження;
- прив’язку до документа;
- прив’язку до версії.
Технічні вимоги
| Параметр | Опис |
|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP |
| База даних | PostgreSQL або MySQL |
| Фронтенд | HTML5, JavaScript |
| AJAX | Fetch API або Axios |
| UI-компоненти | DataTables для документів та версій, Select2 для категорій, тегів і фільтрів |
| Файли | Завантаження файлів до файлової системи, бази або S3-сумісного сховища |
| Порівняння | Diff для текстових документів, опціонально |
| Друк | PDF-реєстри, контрольні списки, звіти |
| Експорт | Excel або PDF для реєстрів |
| Безпека | Рольові права, журнал дій, обмеження доступу до файлів |
Рекомендовані сутності бази даних
Для реалізації задачі доцільно передбачити такі сутності:
- категорії документів;
- типи документів;
- документи;
- версії документів;
- файли;
- теги;
- зв’язок документів і тегів;
- права доступу;
- ролі;
- погодження;
- коментарі;
- журнал змін;
- журнал завантажень;
- реєстри;
- звіти;
- налаштування сховища.
Практичне завдання
У межах атестації потрібно продемонструвати робочий сценарій.
Мінімальний сценарій:
- створити категорії документів;
- створити типи документів;
- створити теги;
- створити користувачів або ролі доступу;
- створити новий документ;
- додати назву, категорію, тип і опис;
- завантажити файл першої версії;
- перевірити, що створено версію v1;
- додати другу версію документа;
- додати опис змін;
- перевірити історію версій;
- зробити другу версію актуальною;
- передати документ на погодження;
- погодити документ;
- змінити статус на «Затверджено»;
- відновити попередню версію;
- перевірити, що дія записана в журнал;
- налаштувати доступ тільки для певної ролі;
- перевірити, що користувач без прав не бачить документ;
- виконати пошук за назвою;
- виконати фільтр за категорією;
- сформувати реєстр документів;
- сформувати звіт історії змін;
- перевірити журнал завантажень.
Критерії оцінювання
| Критерій | Бали | Що перевіряється |
|---|---|---|
| Реалізація бази документів і версій | 20 | Документи, категорії, типи, файли, версії, поточна версія, історія версій |
| Управління історією змін | 20 | Опис змін, автор змін, журнал дій, відновлення версій, порівняння версій |
| Контроль доступу і прав на документи | 20 | Перегляд, редагування, завантаження, погодження, обмеження для користувачів без прав |
| Зручність перегляду, пошуку і відновлення документів | 20 | Пошук, фільтри, теги, статуси, реєстри, відновлення попередньої версії |
| Інтерактивність через AJAX і підтримка багатьох форматів | 20 | AJAX-завантаження, оновлення версій, фільтрація, PDF, DOCX, XLSX, TXT та інші формати |
| Разом | 100 | Максимальна оцінка |
Шкала оцінювання
| Бали | Рівень | Опис |
|---|---|---|
| 90–100 | Відмінно | Модуль повністю працює: документи, версії, файли, пошук, погодження, права доступу, журнал змін і реєстри реалізовані коректно |
| 75–89 | Добре | Основна логіка працює, є незначні недоліки, які не руйнують роботу архіву |
| 60–74 | Зараховано | Базовий сценарій працює, але частина функцій реалізована неповно або потребує доопрацювання |
| 0–59 | Не зараховано | Відсутня критична логіка: документи, версії, файли, права доступу, пошук або журнал змін |
Критичні помилки
Критичними помилками вважаються ситуації, коли:
- неможливо створити документ;
- неможливо завантажити файл;
- перша версія не створюється автоматично;
- нова версія перезаписує стару;
- неможливо переглянути історію версій;
- неможливо визначити поточну версію;
- відновлення старої версії не працює;
- зміни не логуються;
- користувач без прав бачить закритий документ;
- користувач без прав може завантажити файл;
- погодження не прив’язується до версії;
- пошук не знаходить документ за назвою;
- реєстр документів не відповідає фактичним даним;
- видалення документа не контролюється правами.
Умова складання. Завдання не може бути зараховане, якщо система не дозволяє пройти базовий цикл архіву: документ → файл → версія → нова версія → історія → погодження → права доступу → відновлення → реєстр.
Очікуваний результат
У результаті виконання атестаційного завдання має бути створений модуль веб-архіву документів у K2 ERP.
Модуль має підтримувати категорії, типи документів, документи, файли, версії, теги, погодження, коментарі, права доступу, пошук, фільтри, відновлення попередніх версій, журнал змін, журнал завантажень, контрольні реєстри, звіти, AJAX-інтерактив і підтримку різних форматів файлів.
Примітка
Веб-архів документів із версіями є критично важливим для будь-якої компанії, яка працює з договорами, технічною документацією, внутрішніми політиками, проєктами, фінансовими файлами або юридичними матеріалами.
Наявність історії змін, контроль доступу і можливість відновити попередню версію зменшують ризик втрати важливої інформації та підвищують прозорість роботи з документами.
Коротко
| Питання | Відповідь |
|---|---|
| Що потрібно створити? | Модуль веб-архіву документів |
| Які довідники потрібні? | Категорії, типи документів, теги, типи доступу |
| Який головний об’єкт? | Документ із файлами і версіями |
| Що важливо для версій? | Кожна нова версія зберігається окремо і не перезаписує стару |
| Що потрібно контролювати? | Права доступу, актуальну версію, історію змін, погодження |
| Які звіти потрібні? | Реєстр документів, документи на погодженні, історія змін, архівні документи |
| Що є критичною вимогою? | Користувач без прав не повинен бачити або завантажувати закриті документи |
| Що бажано додати? | Diff версій, batch upload, журнал завантажень, контрольну ревізію документів |