Student Submission Integrity Diagnosis (SSID) is a Ruby on Rails web application suite for managing courses, assignments, staff, teaching assistants, students, and student code submissions and most importantly, to detect and visualize plagiarism among student code submissions.
SSID works with lexers based on ANTLR4 Grammars so if you can find / write a grammar for it, SSID can detect and visualize plagiarism for it (scroll down and click on the guide on "Adding support for new language in SSID" to learn the steps needed to add a new grammar). SSID uses the JavaScript InfoVis Toolkit for its plagiarism visualization. Code display and syntax highlighting is handled by google-code-prettify. The file upload preview feature makes use of JSZip.
NOTE: If you are using a Windows OS, please ensure that you have a linux environment to make changes to the code and run it in either the development or production mode. This is because some functions like fork are not supported by the Windows OS. To run a linux environment on Windows, you can either
11
(revision 11
or later) installed in your Computer.Before following the below instructions, please ensure that you have met all the prerequesties listed below. Alternatively, you can also setup the application via docker by clicking on the docker setup documentation all the way below.
Clone SSID's source code onto your computer
git clone https://github.com/WING-NUS/SSID.git
Go to config/database.yml and modify the file by changing the username and password fields with your MySQL database settings (Please do it for all the 3 listed databases in the file)
Now, go to config/environments/ and add the respective line to the respective file(s)
Under config/environments/development.rb & config/environments/test.rb, add the below line:
config.eager_load = false
Under config/environments/production.rb add the below line:
config.eager_load = true
Open your terminal and navigate to the code directory. Run bundler to install the necessary gems (including rails) from the root directory of SSID:
bundle install
https://stackoverflow.com/questions/66919504/your-bundle-is-locked-to-mimemagic-0-3-5-but-that-version-could-not-be-found
Execute the following command in the root directory of SSID depending on which mode you wish to run the app:
Production Mode
rake db:migrate RAILS_ENV=production rake db:seed
Development Mode
rake db:create db:schema:dump db:migrate RAILS_ENV=development rake db:seed
Running SSID: Execute the following command in the root directory of SSID depending on which mode you wish to run the app:
Production mode: configure Apache to serve web requests to SSID
Development mode:
RAILS_ENV=development rails server
To request features, you may want to log an issue on Github.
For other inquiries, please contact us with subject starting with [SSID]
SSID is licensed under the GNU Lesser General Public License