Skip to content

Latest commit

 

History

History
188 lines (124 loc) · 6.09 KB

README.md

File metadata and controls

188 lines (124 loc) · 6.09 KB

EnormoQB

EnormoQB is a crowd-sourced question bank developed as a part of Smart India Hackathon 2022 for Department of School Education & Literacy (DoSEL), Ministry of Education.

Screenshot 2022-08-20 at 12 13 20 AM


Table of Contents

Problem Statement

To be able to graduate to objective type questions for one semester of online board exams, a question bank of at least 5000 questions will be required for each subject. Setting question papers for the exams is a complicated task. Can you think of a Crowd Sourcing model where questions are set by large number of anonymous stakeholders thereby creating a large question bank? These questions can be vetted by experts before freezing the same in the question bank. The actual question paper can be set through an automated system.

Inspiration

As we all know setting question papers for the board exams is not an easy task. The following are the drawbacks of the existing board paper setting system:

  1. It takes a lot of time to manually find and add questions to the question papers of each subject which leads to a prolonged process.
  2. Another drawback to the existing way is that it requires manpower and unnecessary storage space for the management of previously generated question papers, which is difficult in the longer run.
  3. Also, Due to the changing environment of examinations in the light of ongoing events, there emerged a need to develop multiple question papers for a single academic year.

We decided to build to work on this problem statemnet to overcome these drawbacks and make examination system better in India.

Solution

You don't have to worry because board question papers have a new QB introducing EnormoQB. We came up with an eco-friendly and easy solution to generate question papers for the board exams from the ocean of questions created by the contribution of some brilliant teachers. EnormoQB is advancing the traditional board paper setting system in the following way:

  1. The generated crowdsourcing model can help us to create a hassle-free and quality question paper with the input of all the brilliant minds around the world.
  2. The genre of the application not only focuses on a particular use case but can be extended to any format according to the need of the examination.
  3. From practice set to actual exam set, every other question paper can be set through an automated system in no time.
  4. There are currently no existing solutions that can automate the question paper generation for Board Exams with a large question bank.

Features

  • Unified website with different privileges (Admin / Reviewer / Exam-setter / Contributor).

  • For Admin

    • Maintain the question bank.
    • Assign and change roles.
    • Has all access rights.
  • For Reviewer

    • Review submitted questions and give feedback on rejection.
    • Freeze spam user's account.
    • Contribute questions like any other contributor.
    • Request contributions in topics having less number of questions.
  • For Exam-setter

    • Have all rights of a reviewer.
    • Generate question papers through an automatic system.
    • The permission to generate the paper will be valid for 48 hours and after that exam setter's role will get demoted to the reviewer by the admin.
    • View and download the previously generated question papers.
  • For Contributor

    • Contribute questions via a form.
    • Manage their pending, rejected, and approved questions(View/Delete).
    • View previous year's papers.
    • Be rewarded for contributions through EnormoQB points system.

Tech Stack

  • ReactJs
  • Redux + RTK Query
  • NodeJs
  • ExpressJs
  • MongoDB
  • Docker
  • Docker Compose
  • Redis
  • Natural Language Processing(NLP)
  • Python
  • Amazon Web Services(AWS)

Project Setup Guide

Frontend

  1. Clone EnormoQB-Frontend-v2 repo and install dependencies

    git clone https://github.com/EnormoQB/EnormoQB-Frontend-v2.git
    cd EnormoQB-Frontend-v2
    npm i
  2. Copy .env.example content to .env

    cp .env.example .env
  3. Start the react app

    npm start

Backend

  1. Add .env in the root directory. Here's an example env file for you.

    MONGODB_URL
    GOOGLE_CLIENT_ID
    GOOGLE_CLIENT_SECRET
    GOOGLE_REFRESH_TOKEN
    SMTP_PASSWORD
    CLIENT_URL
    SECRET
    AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY
    AWS_ENDPOINT
    S3_BUCKET
    ADMIN_EMAIL
    ADMIN_PASSWORD
    NODE_ENV
    BASE_PATH
    SIMILARITY_API
  2. Start the backend server

    npm run dev

Working Model Screenshots

image


screencapture-enormoqb-tech-anonymously-2022-08-26-19_24_26


image


image


image


image


image


image


image