Code Monkey home page Code Monkey logo

automatedplagiarismdetectionsystem's Introduction

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

automatedplagiarismdetectionsystem's People

Contributors

valzavator avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.