Даний проєкт присвячений створенню веб-додатка для автоматизації виявлення плагіату в навчальних програмних проєктах.
Веб-додаток призначений для викладачів курсів з програмування, як допоміжний інструмент з метою попередження плагіату коду в програмних проєктах студентів. Для автоматизації виявлення плагіату в програмних проєктах використано систему JPlag, налаштовано взаємодію з веб сервісами для розміщення програмних проєктів на базі VCS, такими як GitHub і Bitbucket. Інформаційна безпека веб-додатка реалізована за допомогою розподілу прав доступу – процедури реєстрації та авторизації. Гостьовий доступ передбачає тільки можливість виявлення плагіату серед власноруч завантажених проєктів. Зареєстрований користувач має доступ до функцій, таких як створення курсів, груп, додавання інформації про студентів з посиланням на їх репозиторії, створення завдань на перевірку. Процес виявлення плагіату здійснюється автоматично в заданий користувачем час. Результатом роботи веб-додатка є статистика збігу програмного коду з виділенням ділянок, підозрюваних на плагіат.
У даному дипломному проєкті розроблено:
- архітектуру серверної та клієнтської частини веб-додатка;
- структуру бази даних;
- модуль взаємодії з веб-сервісами для розміщення програмних проєктів на базі VCS;
- модуль взаємодії із системою для виявлення плагіату в програмних проєктах;
- модуль для організації робочого процесу користувача;
- реалізовано графічні елементи та дизайн веб-сторінок.
Веб-додаток повинен забезпечувати такі основні функції:
- Підтримка наступних ролей: Гість та Користувач.
- Можливість реєстрації нового Користувача, процедуру автентифікації та авторизації.
- Організація Користувачем навчальних курсів та окремих груп в рамках кожного курсу.
- Створення завдань на реалізацію програмних проєктів окремо для кожної групи.
- Автоматизація завантаження програмних проєктів для створених Користувачем груп із веб-сервісів для хостингу проєктів на базі систем керування версіями.
- Користувач має можливість виявлення плагіату серед множини програмних проєктів в рамках створеної задачі для конкретної групи, цілого курсу або незалежно власноруч завантажених проєктів.
- Гість має можливість виявлення плагіату лише серед множини власноруч завантажених програмних проєктів без збереження результату.
- Можливість запуску процесу виявлення програмного плагіату для створеної Користувачем групи як власноруч, так і автоматично в конкретно заданий час.
- Вивід та збереження результатів процесу виявлення плагіату в інформативних графіках, діаграмах та таблицях.
- Можливість переглядати та порівнювати підозрюваний на плагіат вихідний код програм двох проєктів одночасно.
Додаткові вимоги:
- Локалізація веб-додатка українською мовою.
- Наявність адаптивного дизайну для пристроїв із різною роздільною здатністю екрану.
- Тип ПЗ – веб-додаток.
- Мова програмування (сервер) – Java.
- Мова програмування (клієнт) – JavaScript.
- База даних – PostgreSQL 12.
- Система для виявлення плагіату – JPlag.
Серверна частина:
- веб-фреймворк – Spring Boot;
- контроль доступу – Spring Security;
- ORM для роботи с БД – Spring Data JPA (Hibernate).
Клієнтська частина:
- бібліотеки – React + Redux;
- UI-фреймворк – Bootstrap 4.
Налаштування JPlag:
- мова програмування: Java, C#-1.2, C, C++, Python 3, Scheme та текст на природній мові;
- чутливість порівняння;
- мінімальний відсоток співпадіння;
- архів з шаблонним кодом.