{"id":19863129,"url":"https://github.com/lcian/leetcode-plagiarism-detector","last_synced_at":"2025-11-24T04:01:54.492Z","repository":{"id":255261549,"uuid":"842199209","full_name":"lcian/leetcode-plagiarism-detector","owner":"lcian","description":"🔍 Automated plagiarism reports for LeetCode Contests","archived":false,"fork":false,"pushed_at":"2024-09-25T09:57:20.000Z","size":382,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-11T15:21:49.733Z","etag":null,"topics":["competitive-programming","leetcode","plagiarism-detection"],"latest_commit_sha":null,"homepage":"https://leetcode-plagiarism-detector-1a267dde2df3.herokuapp.com/","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/lcian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-13T21:58:03.000Z","updated_at":"2024-09-25T09:57:23.000Z","dependencies_parsed_at":"2025-01-11T15:20:55.078Z","dependency_job_id":"becc4cc1-0cff-4955-8206-f7978be70c7e","html_url":"https://github.com/lcian/leetcode-plagiarism-detector","commit_stats":null,"previous_names":["lcian/leetcode-plagiarism-detector"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcian%2Fleetcode-plagiarism-detector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcian%2Fleetcode-plagiarism-detector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcian%2Fleetcode-plagiarism-detector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcian%2Fleetcode-plagiarism-detector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lcian","download_url":"https://codeload.github.com/lcian/leetcode-plagiarism-detector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241272618,"owners_count":19937091,"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":["competitive-programming","leetcode","plagiarism-detection"],"created_at":"2024-11-12T15:13:41.001Z","updated_at":"2025-11-24T04:01:49.432Z","avatar_url":"https://github.com/lcian.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\t\u003cimg align=\"center\" src=\"https://github.com/user-attachments/assets/3a05ad19-289e-4f47-bd26-f5f9dd3ae9e0\" width=\"7%\" alt=\"LeetCode plagiarism detector logo\"\u003e\n\t\u003ch1\u003eLeetCode plagiarism detector\u003c/h1\u003e\n\u003c/div\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://leetcode-plagiarism-detector-1a267dde2df3.herokuapp.com/\"\u003e🔗 Automated plagiarism reports for LeetCode Contests\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg alt=\"Java\" src=\"https://img.shields.io/badge/Java-%23ED8B00.svg?logo=openjdk\u0026logoColor=white\" /\u003e\n\u003cimg alt=\"Spring Boot\" src=\"https://img.shields.io/badge/Spring%20Boot-6DB33F?logo=springboot\u0026logoColor=fff\" /\u003e\n\u003cimg alt=\"separator\" height=\"20\" src=\"https://github.com/user-attachments/assets/5a8e5260-544e-4641-946a-46c2c75721f3\" /\u003e\n\u003cimg alt=\"Python\" src=\"https://img.shields.io/badge/Python-3776AB?logo=python\u0026logoColor=fff\" /\u003e\n\u003cimg alt=\"separator\" height=\"20\" src=\"https://github.com/user-attachments/assets/5a8e5260-544e-4641-946a-46c2c75721f3\" /\u003e\n\u003cimg alt=\"TypeScript\" src=\"https://img.shields.io/badge/TypeScript-3178C6?logo=typescript\u0026logoColor=fff\" /\u003e\n\u003cimg alt=\"React\" src=\"https://img.shields.io/badge/React-%2320232a.svg?logo=react\u0026logoColor=%2361DAFB\" /\u003e\n\u003cimg alt=\"TailwindCSS\" src=\"https://img.shields.io/badge/Tailwind%20CSS-%2338B2AC.svg?logo=tailwind-css\u0026logoColor=white\" /\u003e\n\u003cimg alt=\"separator\" height=\"20\" src=\"https://github.com/user-attachments/assets/5a8e5260-544e-4641-946a-46c2c75721f3\" /\u003e\n\u003cimg alt=\"Postgres\" src=\"https://img.shields.io/badge/Postgres-%23316192.svg?logo=postgresql\u0026logoColor=white\" /\u003e\n\u003cimg alt=\"Docker\" src=\"https://img.shields.io/badge/Docker-2496ED?logo=docker\u0026logoColor=fff\" /\u003e\n\u003cimg alt=\"AWS\" src=\"https://img.shields.io/badge/AWS-%23FF9900.svg?logo=amazon-web-services\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n## 📍 Overview\n\nLeetCode Plagiarism Detector is an automated system to scrape, detect, and report plagiarized submissions in LeetCode Contests.\n\n#### ❓ Motivation\n\nIn the last few months, LeetCode's DSA contests have seen a large increase in plagiarism.\nThis has diminished the credibility of the contest rankings and the overall experience for serious participants.\n[[1](https://leetcode.com/discuss/general-discussion/5478175/On-solving-the-cheating-epidemic%3A-Opinion/)]\n[[2](https://leetcode.com/discuss/feedback/4144304/(LC-Replied)-So-frustrated-because-of-cheating-in-contest/)]\n[[3](https://leetcode.com/discuss/feedback/4812899/What-does-Leetcode-actually-do-about-cheaters/)]\n\nLeetcode Plagiarism Detector aims to help the LeetCode community to solve this problem by providing open source, automated plagiarism reports.\nIts web interface makes it easy for users to identify and report cheaters, so that LeetCode can verify instances of plagiarism and take appropriate action.\n\n#### ✨ Features\n\n- Automated scraping of submissions for new LeetCode contests (Python scripts)\n- Plagiarism detection using advanced algorithms (currently based on \u003ca href=\"https://github.com/blingenf/copydetect\"\u003ecopydetect\u003c/a\u003e, more detectors coming soon)\n- REST API for storing and retrieving plagiarism reports (Spring Boot + Hibernate + Postgres as the underlying database)\n- User-friendly web interface for reviewing and reporting plagiarism (React + TailwindCSS)\n- Scalable and cost-effective deployment (AWS Fargate spot instances + StepFunctions + Heroku)\n\n## 📐 Architecture\n\n![architecture](https://github.com/user-attachments/assets/bfc612ab-927b-4e97-81a3-8345a630db8d)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flcian%2Fleetcode-plagiarism-detector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flcian%2Fleetcode-plagiarism-detector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flcian%2Fleetcode-plagiarism-detector/lists"}