Skip to content

Valzavator/AutomatedPlagiarismDetectionSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automated Plagiarism Detection System

Даний проєкт присвячений створенню веб-додатка для автоматизації виявлення плагіату в навчальних програмних проєктах.

Веб-додаток призначений для викладачів курсів з програмування, як допоміжний інструмент з метою попередження плагіату коду в програмних проєктах студентів. Для автоматизації виявлення плагіату в програмних проєктах використано систему JPlag, налаштовано взаємодію з веб сервісами для розміщення програмних проєктів на базі VCS, такими як GitHub і Bitbucket. Інформаційна безпека веб-додатка реалізована за допомогою розподілу прав доступу – процедури реєстрації та авторизації. Гостьовий доступ передбачає тільки можливість виявлення плагіату серед власноруч завантажених проєктів. Зареєстрований користувач має доступ до функцій, таких як створення курсів, груп, додавання інформації про студентів з посиланням на їх репозиторії, створення завдань на перевірку. Процес виявлення плагіату здійснюється автоматично в заданий користувачем час. Результатом роботи веб-додатка є статистика збігу програмного коду з виділенням ділянок, підозрюваних на плагіат.

У даному дипломному проєкті розроблено:

  • архітектуру серверної та клієнтської частини веб-додатка;
  • структуру бази даних;
  • модуль взаємодії з веб-сервісами для розміщення програмних проєктів на базі VCS;
  • модуль взаємодії із системою для виявлення плагіату в програмних проєктах;
  • модуль для організації робочого процесу користувача;
  • реалізовано графічні елементи та дизайн веб-сторінок.

Вимоги

Веб-додаток повинен забезпечувати такі основні функції:

  1. Підтримка наступних ролей: Гість та Користувач.
  2. Можливість реєстрації нового Користувача, процедуру автентифікації та авторизації.
  3. Організація Користувачем навчальних курсів та окремих груп в рамках кожного курсу.
  4. Створення завдань на реалізацію програмних проєктів окремо для кожної групи.
  5. Автоматизація завантаження програмних проєктів для створених Користувачем груп із веб-сервісів для хостингу проєктів на базі систем керування версіями.
  6. Користувач має можливість виявлення плагіату серед множини програмних проєктів в рамках створеної задачі для конкретної групи, цілого курсу або незалежно власноруч завантажених проєктів.
  7. Гість має можливість виявлення плагіату лише серед множини власноруч завантажених програмних проєктів без збереження результату.
  8. Можливість запуску процесу виявлення програмного плагіату для створеної Користувачем групи як власноруч, так і автоматично в конкретно заданий час.
  9. Вивід та збереження результатів процесу виявлення плагіату в інформативних графіках, діаграмах та таблицях.
  10. Можливість переглядати та порівнювати підозрюваний на плагіат вихідний код програм двох проєктів одночасно.

Додаткові вимоги:

  1. Локалізація веб-додатка українською мовою.
  2. Наявність адаптивного дизайну для пристроїв із різною роздільною здатністю екрану.

Ідея автоматизації виявлення програмного плагіату

The idea of automating the detection of software plagiarism

Засоби реалізації

  • Тип ПЗ – веб-додаток.
  • Мова програмування (сервер) – Java.
  • Мова програмування (клієнт) – JavaScript.
  • База даних – PostgreSQL 12.
  • Система для виявлення плагіату – JPlag.

Серверна частина:

  • веб-фреймворк – Spring Boot;
  • контроль доступу – Spring Security;
  • ORM для роботи с БД – Spring Data JPA (Hibernate).

Клієнтська частина:

  • бібліотеки – React + Redux;
  • UI-фреймворк – Bootstrap 4.

Структура бази даних

Database structure

Архітектура системи (загальна)

System architecture (general)

Архітектура клієнтської частини

Client architecture

Архітектура серверної частини

Server architecture

Функціональність системи

Use cases

Інтеграція з веб-сервісами VCS

VCS

Інтеграція з системою JPlag для виявлення плагіату

Налаштування JPlag:

  • мова програмування: Java, C#-1.2, C, C++, Python 3, Scheme та текст на природній мові;
  • чутливість порівняння;
  • мінімальний відсоток співпадіння;
  • архів з шаблонним кодом.

Оптимізація автоматизованої перевірки

VCS

Приклади роботи програми - разова перевірка

1

2

Приклади роботи програми - автоматизована перевірка

3

4

5

6

7

8

9

Приклади роботи програми - перегляд результатів

10

11