Skip to content

anisdzdev/ProctoPro

Repository files navigation

ProctoPro

Exam proctoring - TypingDNA Hackathon app


Logo


View Demo · Alternative link

Table of Contents

About The Project

Proctopro Screenshot

This project, realized for the Devpost Hackathon proposed by TypingDNA implements the api in a web app running on Node.js. The app is basically an exam proctoring system that includes the following features:

  • Login/Signup system
    • Uses MongoDB database hosted on mLabs
    • Hashed passwords for security
    • Token generation and validation using json web token
    • Data validation
  • Initialization system
    • Newly created users are marked as not initialized with TypingDNA
    • Users are requested to type three sentences (see screenshot above)
    • Gets three typing patterns of the user and saves them in the typingDNA database.
  • Exam system
    • ID system to access to specific exams
    • Practice exam available to get to know the system
    • Mouse position monitoring to prevent cheating
    • Right click disabled
    • Timed exams feature
    • Change theme (dark/light)
    • 3 types of questions (short, development, multiple choice)
    • TypingDNA match available at the end of the exam
  • Backend System
    • Creation/Edition of exams using Postman

Here's what drove us to build this project:

  • In difficult times like the situation of Covid-19, society shows how vulnerable it is. This project aims to lower cheating in online exams.
  • We think that if each person has its own typing pattern, then the technology must be extended to more formal fields such as education.
  • And of course, who doesn't like a good challenge !

Built With

Screenshots

Proctopro Screenshot Proctopro Screenshot Proctopro Screenshot Proctopro Screenshot Proctopro Screenshot Proctopro Screenshot

Getting Started

You will find here the instructions on how to install/run the project on your machine.

Prerequisites

A key prerequisite is Node.js so we suggest installing node v12.18.3 with npm 6.14.6.

  • npm
npm install npm@latest -g

Installation

  1. Clone the repo
git clone https://github.com/anisdzdev/typing_dna.git
  1. Install NPM packages
npm install
  1. Install global packages
npm install -g nodemon@2.0.2
  1. Enter your TypingDNA public and secret keys in the following file
    • config/default.json
  2. Also enter your database url in the same file, it should looke like this:
mongodb://username:password@ds01316.mlab.com:1316/db
  1. Run the project
npm run start
  1. Go to localhost:3000 (default port) to access the running app

Usage

  1. Create an account using the signup link under the login form.
  2. Write the 3 required sentences to initialize your account and save your typing pattern. (You can always reset if you feel the need to do so)
  3. Once you initialize your account once, you will be redirected to a page prompting an exam ID. Enter 123456789 for an actual exam or click "Enter practice mode" under the "start" button to start an exam.
  4. In the exam page, fill in the blanks as you would do in an actual exam, respecting instructions.
  5. After submitting your exam, your matching percentage is displayed on the screen (This would disappear in future updates where the professor panel is implemented).

Team

Contact

Anis Brachemi - @anis.brachemi - anis@novem.dev
Saoud Messaoudi - @saoudsss - saoud@novem.dev

Credits

About

Exam proctoring web app made for TypingDNA hackathon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •