{"id":13906570,"url":"https://github.com/dodona-edu/dolos","last_synced_at":"2025-04-05T01:03:40.502Z","repository":{"id":37405764,"uuid":"193362888","full_name":"dodona-edu/dolos","owner":"dodona-edu","description":":detective: Source code plagiarism detection","archived":false,"fork":false,"pushed_at":"2024-04-12T15:11:39.000Z","size":41385,"stargazers_count":206,"open_issues_count":52,"forks_count":25,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-04-14T05:24:44.363Z","etag":null,"topics":["academic-dishonesty","code-similarity","collusion-detection","dodona","education","fuzzy-matching","hacktoberfest","learn-to-code","online-learning","plagiarism","plagiarism-checker","plagiarism-checking","plagiarism-detection","plagiarism-detector","plagiarism-prevention","software-plagiarism","source-code-analysis","text-similarity"],"latest_commit_sha":null,"homepage":"https://dolos.ugent.be","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dodona-edu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-06-23T15:12:32.000Z","updated_at":"2024-04-21T11:32:58.835Z","dependencies_parsed_at":"2024-01-31T00:29:01.588Z","dependency_job_id":"9c818248-0900-4c1f-acb6-c3d050f0ac49","html_url":"https://github.com/dodona-edu/dolos","commit_stats":{"total_commits":1748,"total_committers":18,"mean_commits":97.11111111111111,"dds":0.7597254004576659,"last_synced_commit":"e844a09b6b8620448ccf97b47175cf87ecde6550"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodona-edu%2Fdolos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodona-edu%2Fdolos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodona-edu%2Fdolos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dodona-edu%2Fdolos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dodona-edu","download_url":"https://codeload.github.com/dodona-edu/dolos/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271515,"owners_count":20911587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academic-dishonesty","code-similarity","collusion-detection","dodona","education","fuzzy-matching","hacktoberfest","learn-to-code","online-learning","plagiarism","plagiarism-checker","plagiarism-checking","plagiarism-detection","plagiarism-detector","plagiarism-prevention","software-plagiarism","source-code-analysis","text-similarity"],"created_at":"2024-08-06T23:01:38.440Z","updated_at":"2025-04-05T01:03:40.480Z","avatar_url":"https://github.com/dodona-edu.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Dolos\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://dolos.ugent.be/\" target=\"_blank\"\u003e\n    \u003cimg width=\"180\" src=\"https://raw.githubusercontent.com/dodona-edu/dolos/main/docs/public/images/demo-exercise-graph-circle.png\" alt=\"A plagiarism graph showing a lot of plagiarism.\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@dodona/dolos\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@dodona/dolos.svg\" alt=\"Current version of the npm package\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://doi.org/10.1016/j.softx.2024.101755\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/DOI-10.1016%2Fj.softx.2024.101755-28A745.svg?link=https%3A%2F%2Fdoi.org%2F10.1016%2Fj.softx.2024.101755\" alt=\"DOI of the latest journal article about Dolos\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://matrix.to/#/#dolos:matrix.org\"\u003e\n    \u003cimg src=\"https://img.shields.io/matrix/dolos%3Amatrix.org.svg?logo=matrix\" alt=\"Public chat channel for Dolos\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/dodona-edu/dolos/blob/main/LICENSE\"\u003e\n    \u003cimg alt=\"MIT source code license\" src=\"https://img.shields.io/github/license/dodona-edu/dolos\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nDolos is a source code plagiarism detection tool for programming exercises.\nDolos helps teachers in discovering students sharing solutions, even if they are\nmodified. By providing interactive visualizations, Dolos can also be used to\nsensitize students to prevent plagiarism.\n\nDolos aims to be:\n\n- **Easy to use** by offering a web app with an intuitive user interface\n- **Flexible** to support many programming languages\n- **Powerful** by using state-of-the-art algorithms to help you discover plagiarism\n\nDolos is a [web app](https://dolos.ugent.be) that analyses source code files for similarities between them.\nIn addition, it offers a command-line interface to run an analysis locally, showing the interactive user interface in your browser by launching a local webserver.\nThe analysis results are available in machine readable CSV files and Dolos can be integrated as a [JavaScript library](https://www.npmjs.com/package/@dodona/dolos-lib) in other applications empowering users to integrate plagiarism detection in their personal workflow.\n\nYou can use our free to use instance of Dolos on \u003chttps://dolos.ugent.be\u003e.\n\n## Self-hosting Dolos\n\nAs Dolos is open source, it is also possible to host the Dolos web app.\n\nFollow our instructions on \u003chttps://dolos.ugent.be/docs\u003e.\n\n## Local installation with Dolos CLI\n\nIf you want to run the Dolos CLI instead of using [the web app](https://dolos.ugent.be), you can install Dolos CLI your system using npm:\n```shell\nnpm install -g @dodona/dolos\n```\n\nSee [the installation instructions on our website](https://dolos.ugent.be/guide/installation.html) for more complete instructions.\n\n### Usage\n\nDolos can be launched using the command-line interface, but it is able to\nshow the results in your browser.\n\nLaunch Dolos using the following command in your terminal:\n```shell\ndolos run -f web path/to/your/files/*\n```\nThis will launch a web interface with the analysis results at \u003chttp://localhost:3000\u003e.\n\n[More elaborate instructions on how to use Dolos](https://dolos.ugent.be/guide/running.html).\n\n### Documentation\n\nVisit our web page at \u003chttps://dolos.ugent.be/docs\u003e.\n\n### Building and developing\n\nTo develop the parsers, library or CLI components, you will need to clone this repository recursively to include its submodules (the tree-sitter parsers):\n\n```sh\ngit clone --recursive git://github.com/dodona-edu/dolos.git\n\n# or, if you have cloned the repository already:\ngit submodule update --init --recursive\n```\n\nYou only need to run install the dependencies once in the repository root by\nrunning `npm install`. This will install all dependencies and link them in each\nproject's `node_modules`. You should **not** run `npm install` in each project's directory separately.\n\nThis will also link the `dist` folder from the core, lib and web projects as their versions match in the `package.json` file.\nThis allows you to simultaneously develop the CLI, lib and the web project together.\n\nEach component has its own build instructions in its own directory.\n\n## Components\n\n- [CLI](https://github.com/dodona-edu/dolos/tree/main/cli): the command-line interface\n- [Core](https://github.com/dodona-edu/dolos/tree/main/core): the Javascript library with only the core algorithms\n- [Parsers](https://github.com/dodona-edu/dolos/tree/main/parsers): the tree-sitter parsers vendored by Dolos\n- [Lib](https://github.com/dodona-edu/dolos/tree/main/lib): the Node.js library which can parse and analyze files\n- [Web](https://github.com/dodona-edu/dolos/tree/main/web): the graphical user interface in your browser which can be launched using the CLI\n- [Docs](https://github.com/dodona-edu/dolos/tree/main/docs): the source code of \u003chttps://dolos.ugent.be\u003e\n- [API](https://github.com/dodona-edu/dolos/tree/main/api): the API server running the Dolos web app at \u003chttps://dolos.ugent.be/server\u003e\n\n## Who made this software?\n\nDolos is an active research project by [Team Dodona](https://dodona.ugent.be/en/about/) at Ghent University. If you use this software for your research, please cite:\n\n- Maertens et. al. (2024) SoftwareX [doi:10.1016/j.softx.2024.101755](https://doi.org/10.1016/j.softx.2024.101755)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdodona-edu%2Fdolos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdodona-edu%2Fdolos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdodona-edu%2Fdolos/lists"}