Атестаційні завдання K2 ERP/Система контролю версій
Мета задача — створити в K2 ERP компонент для централізованого зберігання і контролю версій цифрових ресурсів.;== Параметри пошуку ==
- проєкт;
- файл або папку;
- користувача або роль;
- рівень доступу;
- дату надання доступу;
- хто надав доступ.;
AJAX-інтерактив
- користувач системи створює проєкт;
- у проєкті створюється файл або завантажується початкова реліз;
- платформа створює версію v1;
- користувач системи редагує файл локально або готує нову версію;
- завантажує нову версію в систему;
- вказує характеристика змін;
- платформа створює версію v2;
- стара реліз залишається в історії;
- користувач системи має змогу порівняти v1 і v2;
- менеджер або адміністратор має змогу переглянути журнал змін;
- у разі помилки користувач системи відновлює попередню версію;
- платформа створює нову версію на основі відновленої;
- усі дії потрапляють у журнал аудиту.; Журнал змін — основа аудиту системи.; Для текстових файлів і коду потрібно реалізувати порівняння версій.; характеристика
У звіті потрібно відображати: !; Відповідь
- проєкти;
- типи файлів;
- файли проєкту;
- версії файлів;
- коміти;
- зв’язок комітів і файлів;
- права доступу;
- ролі;
- користувачі проєкту;
- журнал змін;
- журнал аудиту;
- diff-дані, якщо зберігаються;
- резервні копії;
- ZIP-експорти;
- конфігурація сховища;
- звіти.; | Проєкти, типи файлів, ролі доступу
|- | Який центральний об’єкт?; | Diff між версіями |- | Що потрібно для відновлення?;== Приклади commit message ==
- створення проєкту;
- створення файлу;
- завантаження версії;
- зміна опису;
- зміна статусу;
- відновлення версії;
- архівування файлу;
- видалення файлу;
- завантаження файлу користувачем;
- зміна прав доступу;
- експорт архіву;
- створення резервної копії.;== Довідник «Типи файлів» ==
Шкала оцінювання
Пошук і фільтрація
!;== Коміти ==
Для реалізації задачі доцільно передбачити такі сутності:
- користувач системи відкриває файл;
- переглядає історію версій;
- обирає потрібну версію;
- натискає «Відновити»;
- платформа створює нову версію на основі обраної;
- нова реліз стає поточною;
- дія записується в журнал змін;
- у журналі видно, з якої версії виконано відновлення.; Бали
| ; платформа повинна мати зручний пошук.; характеристика
Коміт — це логічна зміна одного або кількох файлів.; * незрозуміло, яка реліз файлу актуальна;
|
; Значення | ; Що перевіряється | ; Об’єкт
Критичні помилки
У результаті виконання атестаційного задача має бути створений компонент системи контролю версій у K2 ERP.; організація або команда функціонує з цифровими файлами, які постійно змінюються:
Примітка
|
;== Підтримувані формати для diff ==
Резервне копіювання
|
;== Критерії оцінювання ==
Вимоги до великих файлівТиповий бізнес-процес роботи виглядає так: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Бекенд | K2 Cloud ERP на Python або PHP | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| База даних | PostgreSQL або MySQL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Фронтенд | HTML5, JavaScript | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| AJAX | Fetch API або Axios | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| UI-компоненти | DataTables для проєктів, файлів і версій; Select2 для пошуку по проєктах, користувачах і типах файлів | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Файли | Збереження на локальному сервері, S3-сумісному сховищі, Google Drive або іншому файловому сховищі | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Великі файли | Chunk upload, індикатор прогресу, перевірка розміру | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Порівняння | Diff для текстових документів і коду | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Експорт | ZIP, PDF, Excel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Безпека | Рольова модель доступу, аудит, журнал дій |
Мінімальний сценарій:
!; характеристика
Реальний бізнес-контекст
!; Опціонально платформа має змогу підтримувати роботу з архівами.;== Очікуваний результат == |}
База «Файли проєкту»
Журнал має містити
Технічні вимоги
!;== Приклади типів файлів ==
Коротко. Потрібно реалізувати систему контролю версій: проєкти, файли, версії, коміти, журнал змін, diff, відновлення версій, права доступу, аудит, резервні копії, ZIP-експорт, роботу з великими файлами і звіти.; Критерій
!;== Звіт «Активність користувачів» ==
Фільтри
- проєкт;
- файл;
- поточну версію;
- дату останньої зміни;
- відповідального;
- кількість днів без актуалізація.;== Звіти ==
!; !; істотно. Відновлення старої версії не повинно знищувати новіші версії.; | Створення нової версії на основі старої без видалення історії |- | Які звіти потрібні?; !; платформа має створити нову версію на основі обраної старої.;== Звіт «історичний розвиток змін по проєкту» ==
Звіт «Відновлення версій»
- зберігати всі версії безстроково;
- архівувати старі версії;
- обмежувати кількість версій для окремих типів файлів;
- заборонити видалення важливих версій;
- автономно переносити старі файли в архівне сховище.; Поле
|- | Проєкти | Логічні групи файлів |- | Файли проєкту | Окремі файли, що мають історію версій |- | Версії файлів | Збережені стани файлу |- | Коміти | Описані зміни одного або кількох файлів |- | Журнал змін | Хронологія дій користувачів |- | Diff | Порівняння текстових версій |- | Відновлення | Повернення до попередньої версії |- | Права доступу | Хто має змогу переглядати, змінювати, відновлювати або видаляти |- | Резервні копії | Захист від втрати файлів |- | Звіти | аналітичні інструменти по змінах, користувачах, проєктах і файлах |}
Політика зберігання версій
Поля коміту
- додані рядки;
- видалені рядки;
- змінені рядки;
- номер рядка;
- автора зміни, якщо можливо;
- дату версії;
- короткий характеристика змін.;== Поля файлу ==
У звіті потрібно відображати:
Відновлення версій
Умова складання. задача не має змогу бути зараховане, якщо платформа не надає можливість пройти базовий цикл контролю версій: проєкт → файл → реліз v1 → реліз v2 → історичний розвиток → diff → відновлення → журнал змін → права доступу → звіт.; перевірки навичок розробника або впроваджувача K2 ERP у створенні модуля контролю версій файлів забезпечується через Атестаційне задача K2 ERP — платформа контролю версій — це практична задача; додатково реалізовано документів.; Разом
| Проєкт | До якого проєкту належить файл |
| Назва файлу | Назва файлу або ресурсу |
| Шлях | Папка або логічний шлях у проєкті |
| Тип файлу | Код, документація, графіка тощо |
| Поточна реліз | Актуальна реліз |
| Статус | Активний, архівований, видалений |
| Відповідальний | Хто відповідає за файл |
| Дата останньої зміни | Коли файл змінювався востаннє |
Що має показувати diff
!; {| class="wikitable" style="width:100%;"
Для великих файлів бажано реалізувати спеціальний механізм завантаження.; | Нова реліз не повинна перезаписувати стару |}
Практичне задача
- K2 ERP
- K2 ERP
- Атестаційні завдання K2 ERP
- Веб-архів документів
- Документообіг
- Файл
- Версійність
- Журнал змін
- Права доступу
- Diff
- Backup
- AJAX
!; Критичними помилками вважаються ситуації, коли: !; Питання У звіті потрібно відображати:
Коротко
|- | Проєкт | Батьківський проєкт |- | Назва файлу | Ім’я файлу |- | Шлях у проєкті | як ілюстрація: /docs/manual.docx або /src/app.py |- | Тип файлу | Код, документ, графіка, інше |- | Поточна реліз | реліз, яка вважається актуальною |- | Розмір файлу | Поточний розмір |- | Формат | Розширення файлу |- | Відповідальний | користувач системи, який відповідає за файл |- | Статус | Активний, архівований, видалений |}
Правила версійності
Основні об’єкти модуля
Окремо варто відзначити програмного коду, дизайн-макетів і інших цифрових ресурсів.;== Статуси файлу ==
компонент має підтримувати проєкти, типи файлів, файли проєкту, версії файлів, коміти, журнал змін, diff для текстових файлів, відновлення версій, контроль доступу, аудит, роботу з великими файлами, ZIP-експорт, резервні копії, звіти, AJAX-інтерактив і логування дій.; {| class="wikitable" style="width:100%;"
Довідник «Проєкти»
!;
- завантажити кілька файлів одночасно;
- автономно створити файли у проєкті;
- зберегти структуру папок;
- створити початкові версії для кожного файлу.;== Поля проєкту ==
- дату і час;
- користувача;
- проєкт;
- файл;
- версію;
- дію;
- характеристика змін;
- IP-адресу, опціонально;
- старе і нове значення, якщо застосовується.;== Права доступу ==
У межах атестації потрібно продемонструвати робочий сценарій.; Поле
- програмний код;
- технічна документація;
- договори;
- інструкції;
- дизайн-макети;
- креслення;
- презентації;
- конфігураційні файли;
- шаблони документів;
- графіка;
- відео або медіафайли;
- внутрішні регламенти;
- файли проєктів.; | Збережений стан файлу з автором, датою і описом змін
|-
| Що потрібно для текстових файлів?;
|- | Активний | Файл застосовується |- | Архівований | Файл збережено для історії |- | Видалений | Файл позначено як видалений, але історичний розвиток має змогу зберігатися |- | Заблокований | Файл тимчасово недоступний для змін |}
ключовий бізнес-процес
платформа повинна дотримуватись таких правил:
Логіка відновлення
!; характеристика
Аудит має фіксувати
Контроль доступу
Колонки бази файлів
завдяки наявності Тип файлу користувачі можуть фільтрувати і правильно обробляти версії.; * користувача;
- кількість створених версій;
- кількість змінених файлів;
- кількість відновлень;
- останню активність.; {| class="wikitable" style="width:100%;"
- TXT;
- HTML;
- CSS;
- JS;
- PHP;
- Python;
- JSON;
- XML;
- YAML;
- SQL;
- Markdown;
- інші текстові формати.;== Звіт «Права доступу» ==
- створення проєкту;
- створення файлу;
- завантаження нової версії;
- актуалізація журналу змін;
- фільтрація файлів;
- фільтрація версій;
- перегляд diff;
- відновлення версії;
- зміна статусу файлу;
- зміна прав доступу;
- формування звітів;
- запуск ZIP-експорту.; платформа контролю версій критично важлива для керування життєвим циклом цифрових ресурсів: документів, програмного коду, дизайн-макетів, креслень, конфігурацій і технічної документації.; | компонент контролю версій файлів, коду і документів
Які довідники потрібні?;== База «Версії файлів» ==
ZIP-експорт має дозволяти
платформа має підтримувати права доступу на рівні проєкту, файлу або дії.; У звіті потрібно відображати:
платформа має підтримувати резервне копіювання файлів і версій.; Проєкт об’єднує файли, версії і користувачів.; !; Бали | |
| користувач системи | Переглядає доступні проєкти і файли |
| Редактор | Додає нові версії файлів і характеристика змін |
| Менеджер проєкту | Керує файлами проєкту, переглядає журнал змін, відновлює версії |
| Аудитор | Переглядає історію змін і звіти без права редагування |
| Адміністратор | Керує проєктами, правами, файлами, версіями і резервними копіями |
| Адміністратор системи | Налаштовує сховище, права, службові параметри і політики зберігання |
Мета задача
Звіт «Файли без оновлень»
Див.; додатково
- chunk upload;
- індикатор прогресу завантаження;
- перевірка розміру файлу;
- перевірка допустимого формату;
- можливість повторити невдале завантаження;
- збереження контрольної суми;
- обмеження розміру відповідно до ролі або налаштувань.; Рівень
|- | 90–100 | Відмінно | компонент в цілому функціонує: проєкти, файли, версії, коміти, diff, відновлення, права доступу, аудит, ZIP-експорт і звіти реалізовані коректно |- | 75–89 | Добре | Основна логіка функціонує, є собою незначні недоліки, які не руйнують бізнес-процес контролю версій |- | 60–74 | Зараховано | Базовий сценарій функціонує, але частина функцій реалізована неповно або потребує доопрацювання |- | 0–59 | Не зараховано | Відсутня критична логіка: проєкти, файли, версії, журнал змін, diff, відновлення або права доступу |}
!;!; Вона гарантує прозорість змін, надійне збереження історії, можливість швидкого відновлення після помилки та контроль доступу до важливих файлів.; Статус
платформа повинна дозволяти:
Робота з великими файлами
Інтерфейс має працювати оперативно й без перезавантаження сторінок.