An AI-powered multi-language code plagiarism detection and visualization platform that combines token-based similarity analysis, AST structural comparison, semantic embeddings, and interactive visual analytics to identify copied, modified, or obfuscated source code submissions.
PlagShield is an intelligent plagiarism detection platform designed to detect source code similarity across multiple programming languages using both traditional and AI-powered approaches.
Traditional plagiarism detection systems primarily rely on token matching techniques and often fail against advanced obfuscation strategies such as:
- Variable renaming
- Code restructuring
- Loop and control-flow transformations
- Cross-language translation
- Semantic modifications
PlagShield addresses these limitations by integrating:
- JPlag token-based similarity analysis
- AST (Abstract Syntax Tree) structural comparison
- Cross-language normalization
- CodeBERT semantic embeddings
- Machine learning-based plagiarism risk scoring
- Interactive visualization dashboards
The platform supports multiple programming languages including:
- Java
- Python
- C/C++
- JavaScript
PlagShield is designed for:
- Academic institutions
- Competitive programming platforms
- Technical assessment systems
- Software quality analysis
- Research environments
- Multi-language plagiarism detection
- Token-based similarity analysis
- AST-based structural comparison
- Cross-language code normalization
- AI semantic similarity detection using CodeBERT
- Machine learning-based risk scoring
- Anomaly and collusion detection
- Interactive visualization dashboard
- Similarity heatmaps and network graphs
- Side-by-side code diff viewer
- Exportable PDF and CSV reports
- Batch processing support
- Modular multi-service architecture
Input Code Files
↓
Preprocessing Module
↓
Token-Based Analysis (JPlag)
↓
AST Structural Analysis
↓
Cross-Language Normalization
↓
AI Semantic Embeddings (CodeBERT)
↓
ML Risk Classification
↓
Clustering & Anomaly Detection
↓
Visualization Dashboard & Reports
Handles batch upload and language identification of source code submissions.
Performs:
- Comment removal
- Whitespace normalization
- Identifier anonymization
- Constant normalization
Uses JPlag’s Greedy String Tiling (GST) algorithm for token-based similarity detection.
Analyzes Abstract Syntax Trees to detect structural similarities and obfuscation techniques.
Maps language-specific constructs into a unified intermediate representation.
Uses CodeBERT embeddings for semantic similarity analysis between code fragments.
Combines all similarity features into a unified plagiarism risk score.
Detects collusion groups and suspicious submission clusters.
Provides:
- Similarity heatmaps
- Network graphs
- Risk-ranked tables
- Code diff viewers
Generates:
- PDF reports
- CSV exports
- Statistical summaries
- React.js
- D3.js
- HTML
- CSS
- JavaScript
- Python
- Flask / FastAPI
- CodeBERT
- Transformers
- Scikit-learn
- MongoDB / MySQL
- JPlag
- Git & GitHub
Make sure the following tools are installed on your system:
- Git
- Python 3.10 or newer
- Node.js 20 or newer (npm included)
- Windows PowerShell
- Java 17
- Maven 3.9+
git clone https://github.com/Shivank2005/Code_Plagarism.git
cd Code_Plagarismpython -m venv .venv
.\.venv\Scripts\Activate.ps1Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypasspip install -r requirements.txt
pip install flask flask-corscd frontend
npm install
cd ...\start-all.ps1This starts:
- CodeBERT Service → Port
8090 - Backend API → Port
8082 - Frontend → Port
5173
Open in browser:
http://localhost:5173/
If you prefer running services separately:
cd codebert-service
python app.pycd backend
python mock_app.pycd frontend
npm run devhttp://localhost:5173/
http://localhost:8082/health
http://localhost:8090/
- Upload source code submissions
- Select supported programming languages
- Run plagiarism analysis
- View similarity scores and visual reports
- Export plagiarism reports
The dashboard includes:
- Similarity Heatmaps
- Submission Network Graphs
- Risk-Ranked Submission Lists
- Cluster Visualization
- Side-by-Side Code Diff Viewer
- Shivank
This project is developed for academic and research purposes.
- JPlag
- CodeBERT
- GraphCodeBERT
- CodeXGLUE
- AST-based clone detection research papers