menonjayraj79 / bctproj

0 stars 0 forks source link

BCT Project

📝 Problem statement :

"Summary: 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"

-----------------------------------------------------

🚩 Overview :

Getting fine grained questions for board examinations is a difficult and time consuming task. Along with this setting examination paper taking into consideration various paprameters such as difficulty, weightage is quite error-prone. The question paper that is generated should be secured in a proper and effective manner to prevent any mishap such as leaking of paper. Sending question paper to the students across the network should be in a highly secure environment. So our team proposed a solution to tackle all this. We developed an online decentralized crowdsource model to have stakeholders contribute questions on our platform which will be later vetted by experts and using them to generate a question paper. The question paper generated would be encrypted and send across the network to the third party blockchain and would be distributed to the students whenever required and would ensure a secure and smooth process of sending question paper to the students who registered for it.

-----------------------------------------------------

🚩 General Features and Interfaces:

Feature Images

Hompage
Fast, easy to use, and incredibly convenient with a minimalistic UI! |image Contributor Dashboard All the accepted questions are shown here|image

Teacher Expert Dashboard Experts after secure authentication can access all the features provided to them through this dashboard |image

Add Question Section Stakeholders can add questions throught this interface with ease |image

Virtual keyboard Virtual mathematical keyboard to ease the process of typing any mathematical equation |image

-----------------------------------------------------

🔐 Expert authentication system

Expert's authentication can be the primary security breach to the board's question paper generation and distribution. The diagram below shows all steps to generate the expert's login data hash from the username, the password, the 6 digit code (that will be provided by respective board to each teacher expert) and the ethereum address. To register the user must fill a form to provide the username, the password and the 6 digit code, the ethereum address is retrieved directly from the wallet. This address is associated to the username to generate a signature via the web3 function sign, the generated signature is hashed (hash1). The password is associated with the 6 digit code to generate another hash (hash2). The two hashes are combined to generated the final hash that is stored in the smart contract(Refer Authentication.sol). To login, the user must be connected to the Blockchain with the same address used during registration, and fill the login form with right username, password and the 6 digit code. The back-end solidity code then generates the hash with this login information and compares it with the hash that was stored in the smart contract by the ethereum address which request the login, if the two hashes match, then the user is authorized to login, if not, the access is denied. image

-----------------------------------------------------

🌐 Web flow

image

image

-----------------------------------------------------

🚩 Technologies used:

Programming Languages : Solidity, Javascript, HTML, CSS

Face Recognition Model : TensorflowJS

Database : Polygon (Ethereum Layer-2) Blockchain

Frameworks/Libraries/Tools : Bootstrap, FreeOCR, Google Transalate, Truffle, Ganache, VSCode, IPFS, Moralis, Web3, Tokenizer

Version Control : Git

You can also see the list of dependencies in the package.json file.

-----------------------------------------------------

🚩Installation/Environment Setup

1. Clone App

3. Ganache

4. IPFS

6. Smart Contract

  1. Install Truffle using npm install truffle -g
  2. Compile Contracts using truffle compile

7. Starting your local development blockchain

8. Local server

  1. Install Node lite-server by running the following command on your terminal npm install -g lite-server

9. Run Locally