@dodona/dolos

Code similarity detection based on the Winnowing algorithm

Usage no npm install needed!

<script type="module">
  import dodonaDolos from 'https://cdn.skypack.dev/@dodona/dolos';
</script>

README

Dolos

A plagiarism graph showing a lot of plagiarism.

Version of the npm package GitHub checks status Source code license

Dolos is a source code plagiarism detection tool for programming exercises. Dolos helps teachers in discovering students sharing solutions, even if they are modified. By providing interactive visualizations, Dolos can also be used to sensitize students to prevent plagiarism.

Dolos aims to be:

  • Easy to use by having minimal installation instructions and an intuitive user interface
  • Flexible to support many programming languages
  • Powerful by using state-of-the-art algorithms to help you discover plagiarism

Dolos is a command-line (CLI) tool that analyses source code files for similarities between them. It is able to show an interactive user interface in your browser by launching a local webserver. The analysis results are available in machine readable CSV files and Dolos can be integrated as a JavaScript library in other applications empowering users to integrate plagiarism detection in their personal workflow.

Installation

You can install Dolos on your system using npm:

npm install -g @dodona/dolos

See the installation instructions on our website for more complete instructions.

Usage

Dolos has to be launched using the command-line interface, but it is able to show the results in your browser.

Launch Dolos using the following command in your terminal:

dolos run -f web --language <language> path/to/your/files/*

The above command will launch a web interface with the analysis results at http://localhost:3000.

More elaborate instructions on how to use Dolos.

Documentation

Visit our web page at https://dolos.ugent.be.

Development

This project uses yarn workspaces so you will need to use yarn.

  • Run yarn install in the root directory, this will link the web project with the cli project as well.
  • If you want to use the web format, you need to build the web project first.
  • Build the project with yarn build
  • Run tests with yarn test