Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/easterneas/code-checker
Code Checker is a Javascript-based project that checks for any similarities between 2 (or more) strings from all branches (excluding main/master branch) of a selected repository.
https://github.com/easterneas/code-checker
Last synced: 25 days ago
JSON representation
Code Checker is a Javascript-based project that checks for any similarities between 2 (or more) strings from all branches (excluding main/master branch) of a selected repository.
- Host: GitHub
- URL: https://github.com/easterneas/code-checker
- Owner: easterneas
- License: mit
- Created: 2021-02-06T19:23:46.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-07-07T03:22:40.000Z (over 3 years ago)
- Last Synced: 2024-11-08T02:47:42.212Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 52.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme-id.md
- License: LICENSE
Awesome Lists containing this project
README
# Code Checker
Code Checker merupakan project berbasis Javascript yang memeriksa kemiripan antara 2 (atau lebih) string dari semua branch (kecuali branch `main`/`master`) pada repository yang dipilih.
Project ini juga memanfaatkan [Moss](https://theory.stanford.edu/~aiken/moss/) untuk opini kedua dalam pemeriksaan.
## Background
Repo ini merupakan kelanjutan dari repo Diffchecker Bot yang dikembangkan oleh [isrotrip](https://github.com/isrotrip), dibuat untuk mencari kemiripan di dalam kode yang dibuat oleh masing-masing student. Project ini semula dikembangkan dengan Javascript dan Python.
## Fitur
* Berbasis Javascript, menggunakan Dice's Coefficient untuk pembandingan antara 2 (atau lebih) string yang berbeda.
* Hampir seluruh prosesnya asynchronous, membuat proses menjadi cepat.
* Rasio yang dinormalisasi, ditarik dari `base_ratio` yang di-set pada file `config.js`.
* Moss file submition untuk opini kedua dari hasil pengecekan.## Cara Kerja
Aplikasi ini memanfaatkan package [`string-similarity`](https://github.com/aceakash/string-similarity) yang menggunakan algoritma Dice's Coefficient, untuk membandingkan 2 atau lebih, string yang berbeda. Class Similarity Checker juga akan melakukan stripping terhadap comment yang tidak diperlukan, mengurangi noise dan meningkatkan akurasi ketika pembandingan berlangsung.
## Instalasi & Konfigurasi
Jalankan `npm i` terlebih dahulu untuk meng-install package yang
#### `config/config.js`
Ubah nama file `config.example.js` menjadi `config.js`, dan ubah konten sesuai kebutuhan:
``` js
module.exports = {
batch_name: "batch-name", // batch/organization/class name
base_ratio: 0.8 // minimum base ratio to be filtered, ranging from 0-1. Default: 0.8
}#### `moss`
[Daftar akun Moss baru](https://theory.stanford.edu/~aiken/moss/) untuk mendapatkan script yang dibutuhkan.
`tl;dr` \- Kirim email ke `[email protected]` tanpa subjek seperti berikut:
``` sh
registeruser
```Ganti `[email protected]` dengan email-mu, tanpa kurung siku.
Setelah beberapa saat, script akan dikirimkan dari Moss, berisikan script yang dibutuhkan, berikut dengan instruksinya. Tempatkan script dengan nama `moss` di direktori yang sama dengan `app.js`.
#### `config/valid-repositories.js`
Tambahkan repository yang valid dalam format array of objects seperti contoh berikut:
``` js
module.exports = [
{
name: "your-repository-name"
}
]
```**CATATAN**: Satu repository harus dibungkus dalam satu object.
Saat ini, setiap object hanya berisikan property `name`. Property lainnya akan ditambahkan di kemudian hari.
## Penggunaan
Jalankan `node app.js` untuk melihat daftar perintah yang bisa dijalankan:
``` md
Code Similarity Checker
Version 2.0Usage
check repo-name [no-moss]
Validates repository of a set organization,
and checks for similarity for each branch(es).
Submits 2 files to Moss by default, for second opinion.
- repo-name specifies repository name
- [no-moss] disables Moss checking
- [min-ratio] <0-100> filters normalized ratio
```Daftar perintah saat ini:
* `node app.js check repo-name [no-moss]`
Perintah ini membutuhkan parameter `repo-name` yang lalu diikuti oleh nama repo yang dituju. Ketika selesai dijalankan, maka hasil bisa dilihat di direktori `batches///results.json`
## Kontribusi
Dengan senang hati kontribusi dibuka untuk umum! Kamu cukup melakukan kontribusi dengan membuat pull request pada menu [Pull Requests](/pulls), dan detilkan kontribusi apa yang kamu sudah lakukan pada branch kamu.
## Issue?
Adakah issue ketika menjalankan aplikasi ini? Jika ya, kamu bisa buka thread issue baru pada menu [Issues](/issues).