Coder Social home page Coder Social logo

cheating-detector's Introduction

Cheating Detector using Google Forms

This is a cheating detector which checks student responses in a Google Form for signs of possible cheating. Teachers will create a Google Form to act as a quiz for students to take. When creating the form, teachers will be required to create a Google Spreadsheet which is linked to the form. Instructions on how to do that are available here. Teachers must also make sure that they are collecting email addresses for students taking a quiz and each student must only be able to submit a form once. For each question that is to be checked, teachers will prepend the title of the question with "***". This identifies that the question should be put through the cheating detector. The main script (cheating_detector.py) can be run directly from the command line on Windows or terminal on Mac OS/Linux. This of course requires that the person running this has Python installed, preferably Python 3.8 or later.

The script checks for two signals of cheating. The first compares all students responses and looks for matches in those responses. The second will compare each student response to what is found in an online Google search. In order to do this, we make use of the Google Search API offered by RapidAPI (https://rapidapi.com/apigeek/api/google-search3). In order to use this, you must setup a RapidAPI account and obtain a key for this API. It is free to use for 600 queries per month. For those who need to exceed this, there are paid options available here.

When cloning the script files, there will be several things that need to be changed in order to get this to work for your Form/Spreadsheet.

  1. In gather_respones.py you must update the SAMPLE_SPREADSHEET_ID variable to match the string value of the ID of your Google Spreadsheet. This can be easily located by looking at the end of the URL for your sheet. It will look like a mix of numbers, and uppercase/lowercase letters.
  2. In gather_responses.py you might need to adjust the SAMPLE_RANGE_NAME to match how many rows are in your sheet. The second number, so for '!1:103' would be '103' represents the amount of rows. Each student will take up one row. So if you had 150 students responding on a quiz, you'll need to make this number probably a little over 150.
  3. In cheating_detector.py you will need to update the value of "x-rapidapi-key" to be the string value of the API key you get from RapidAPI for the Google Search API (https://rapidapi.com/apigeek/api/google-search3).

On a successful run, the results will be written to a text file in the same directory as the script files titled "cheating_detector_output.txt". This is a basic text file used to easily interpret the results of the script.

This project is primarily geared towards giving K-12 teachers a tool they can use to validate the honesty of student submitted work while learning remotely. It is not meant to be a sophisticated cheating detection mechanism. There also has not been extensive testing done so if bugs are found, please feel free to submit an issue/pull request.

cheating-detector's People

Contributors

sstenchever avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.