Skip to content

Open-source Web-browser based General purpose Software to make bubble OMR sheet Checking and Grading task Easy & Efficient, that runs on localhost using Python.

License

Notifications You must be signed in to change notification settings

venisprajapati/vps-auto-grading-software

Repository files navigation

Venis Prajapati's Auto grading Software

vps-auto-grading-software

Date of first Availablity: 21 August, 2021

Purpose

  • Open-source Web-browser based General purpose Software to make bubble OMR sheet Checking and Grading task Easy & Efficient, that runs on localhost using Python.

Technical Info

  • Requirements: python 3.9 support, Web browser
  • languages: Python == 3.9.6, Batchfile, HTML, CSS
  • libraries used:
    • Flask
    • opencv
    • numpy
    • openpyxl
    • python-docx
    • os, glob, date
    • werkzeug
    • waitress
    • webbrowser, threading

Concept

  • Scanned images will be processed to find biggest contour in image, after applying some Threshold, algorithm will crop scanned image using Perspective Transform.

  • Converted scanned images of OMR sheet with specific width and height with maintain aspect ratio will be given GaussianBlur; make it grayscale using cvtColor with COLOR_BGR2GRAY and apply some threshold to convert the pixels above threshold value to Black.

  • There are specific rectangle gird like design to Scan specific Area, then inside area it will scan virtual grid like area inside OMR rectangle (i.e. around the bubble) in OMR Sheet so then functions will count the number of Black pixels in specific area (or bubble), if count of black pixels is above specific value then it is filled or marked otherwise not filled or marked by the user (or student).

  • 200 MCQs Bubble OMR Sheet with perspective-transformed image and mcq area highlighted to check count black pixels in specific square in virtual grid.

  • Returned objects/dictionaries from scan function used to make results with answers given by users and scanned by openpyxl functions, then results are added to students excel file; then omr resonses and results are used to make a document that contains all details, ranking, analysis by marks, analysis by sections, results in details for individual students and also a response ticked by students in OMR Sheet.

  • Hence, OMR Sheet is checked and you get result and student-report-cards.

Installation

Windows

  • Download or Clone Project from GitHub
  • Unzip :/ the Project
  • Install python Python 3.9.6
  • Run install.bat to install all dependencies in the project
  • Run vps-ags.bat to start the software
  • Server runs with output like: Venis Prajapati's Auto grading Software Started At PORT: http://127.0.0.1:2102/

Linux and Mac

  • Download or Clone Project from GitHub
  • Unzip :/ the Project
  • Install Python 3.9.6
  • Create virtual environment(venv) env and activate env
  • Run following command to install required packages & libraries
    pip3 install -r requirements.txt
    
  • Also create 2 folders in project directory uploads and uploads/omrs.
  • To run project run this command
    python3 app.py
    
  • Server runs with output like: Venis Prajapati's Auto grading Software Started At PORT: http://127.0.0.1:2102/

Testing

  • For testing, you may put scanned images of 90 and 200 mcq omr-sheet in test/mcq-90 and test/mcq-200 directory respectively, then run test.bat in current directory.

  • For linux & mac run following command after putting scanned images in respective directory in test/.

    python3 test.py
    
  • This will show detected contour, perspective transform, draw rectangles in mcq area as shown in above image in Concept section.

  • It will also print python dictionary, containing information of all scanned OMRs for test.

For customization in software features, you can mail using link given below.

Follow the important links given below:

Contributing

  • Clone and Fork project repository, add/commit changes to new branch "new-feature-{a0}-" or "bug-fix-{a0}-"
  • Follow the community guidelines at CODE_OF_CONDUCT.md .

Developer Info.

Venis Prajapati

License

Copyright (c) 2021 Venis Prajapati.

Licensed under the Apache-2.0 License .

Screen Shots

  1. Home Screen

    home-page

  2. Result Screen

    result-page

  3. Info Screen

    info-page

happy exams & results