Plagiarism Checker for .c and .txt files built using C Programming Language.
A C-based plagiarism detection tool that efficiently compares text files to identify similarities with the extensive use of different Data Structures and Algorithms. It ensures accurate and fast detection, making it ideal for academic and professional use.
View Demo
·
Report Bug
·
Request Feature
Table of Contents
This is a CLI tool built using C with the use of Various Data Structures and Algorithms. It is a part of the DSA Mini Project (OddSem 24-25). As of now the tool support Plagiarism Checking for .c and .txt and .pdf files only. Support for other types of files can be added with the relevant grammar for the corresponding language. List of Data Structures Used --
- Singly Linked List
- Doubly Linked List
- Binary Search Tree
- Arrays
- Stack
- Custom Pair DataStructure for Efficient Memory Management
List of Algorithms Used --
- N-gram Similarity Algorithm for .txt Files
- Modified Sim-Utiliy Algorithm & JPlag for .c Files
- Free and Open Source: Distributed under the permissive MIT License, fostering collaboration and innovation.
- Intuitive Result Visualization: Presents results as interactive graphs rendered in an HTML file for easy analysis.
- PDF File Support: Includes a precise and reliable PDF parser for seamless comparison of text within PDF documents.
- Batch File Comparison: Allows comparison across multiple files or entire directories for comprehensive analysis.
- Bidirectional Similarity Check: Generates results for both directions— 1-to-2 similarity and 2-to-1 similarity—for thorough detection.
- Fast and Accurate: Delivers results quickly and with high precision, rivalling leading plagiarism detection tools.
This tool offers a robust and user-friendly solution for all plagiarism detection needs.
The Major Programming Languages/Libraries Used are :
- C Programming Language
- Flex Tool for Efficient Tokenization
- Poppler Library for PDF Parsing
- PbPlot Library for Graph Plotting and Result Visualization
This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.
This is an example of how to list things you need to use the software and how to install them.
- Flex-Tool Installation for Debian based Systems.
sudo apt install flexFor other Linux Distros, use the corresponding package manager
Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services.
-
Clone the repo
git clone https://github.com/HardikMutha/Plagiarism_Detection_Using_C.git cd ./Plagiarism_Detection_Using_C/ -
Install poppler Library
sudo apt install libpoppler-dev
Use MakeFile to run the Project. The type parameter should either be c or txt depending upon the type of file being checked. The Directory parameter should specify the directory of the files to be checked.
make type=c/txt directory=directorynameIf the type of the files being checked is C and the files are located in ~/CPlagiarism/Tests/, then command should look like,
make type=c directory= ~/CPlagiarism/Tests/Expected Output -
The resultant index.html file contains the results in the form of bar-graphs.
Distributed under the MIT License. See LICENSE.txt for more information.
Hardik Mutha
Tanmay Karad
Suswan Joglekar
Project Link: Plagiarism_Detection_Using_C
We would like to express great thanks to the following resources which greatly helped us to design and build our Project :
- PDF Parser - Poppler Library
- Graph Plotting- pbPlots by Inductive_Computer_Science
- JPlag Research Paper
- Sim-Utility
- N-gram Based Text Categorization
- Special Mention to our friend Mehmood Deskmukh for helping out with PDF Parser
