Skip to content

Chaitanyab2001/Exam-Results-Publishing-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ERS (abbreviation of Exam Results Publishing System)

ERS is a web application that is built with the aim to help the process of uploading and viewing results of school/university exams in a smooth and efficient manner. Using this web application, the admin can upload the results and the students can view their respective results securely. This security is ensured using the concept of 'Asymmetric Key Encryption' in which we generate a pair of two keys - public key and private key, when a student registers for the first time on the website. The private key is downloaded by the student and is stored on their computer system for future use. The public key is stored on the database. In this web application we use public key for encryption of results and private key for decryption of results. So, whenever the admin uploads the results, it will be encrypted using the public key stored in the database. When an individual student wants to view his/her result, they will have to first login and then provide the private key that they have downloaded in their computer system, and if this private key is correct and not tampered, then using it the encrypted result that has been uploaded by the admin will be decrypted and the corresponding result is displayed to the student.

This entire system ensures that the results are uploaded and displayed in a secure manner while also ensuring confidentiality of results. i.e, a student can only view his/her result only and not somebody else's unlike the traditional system wherein all the students' marks are displayed publicly on the notice board which leads to students comparing themselves with others and judging themselves on the basis of that. This creates unnecessary pressure on the students thereby leading to undesirable consequences. Just like in the movie '3 idiots' wherein 2 characters namely Farhan and Raju are unhappy with the fact that their names are present on the bottom of the result list, but they eventually become even more depressed after realizing that their friend Rancho's name is present on top of the list. Then further in the movie we can see Rancho saying to the director of their institute that this entire system of displaying students' results on notice board is not really a good idea. So taking this into consideration, I have developed this web application that provides a solution to the above mentioned problem.

Screenshots

Home Page

Screenshot (82)


Student Register Page

Screenshot (84)


Admin Upload Result Page

Screenshot (87)


Registration Successful Page

Screenshot (88)


Results Uploaded Successfully Page

Screenshot (90)


Enter Details to View Results Page

Screenshot (91)


Results Page

Screenshot (92)


Hosted URL

https://ers-by-chaitanya.herokuapp.com/

Project Video Demo

https://youtu.be/HYSd2FvwzUs

Features Implemented

  1. Used the concept of Asymmetric Key Encryption for encrypting and decrypting results for ensuring confidentailty and security of results.
  2. Used multer middleware to parse various types of input files such as .xls, .xlsx and .txt

Technologies/Libraries/Packages Used

Technologies

  • HTML
  • CSS
  • JavaScript
  • Bootstrap
  • NodeJS
  • ExpressJS
  • MongoDB
  • EJS

Libraries/Packages

  • node-rsa
  • multer
  • body-parser
  • method-override
  • xls-to-json-lc
  • xlsx-to-json-lc
  • dotenv
  • express
  • nodemon
  • ejs
  • ejs-mate
  • mongoose

Local Setup

  1. Clone this repo using git clone https://github.com/Chaitanyab2001/ERS.git
  2. After cloning create a .env file to store all the environment variables
  3. Fill the .env with the following content : (Note: RETRACTED means we should not share this variable, and thus should not be present in public repos)

DB_URL = RETRACTED (Put your mongodb atlas url here)

  1. After setting the .env file, run the command npm i so that npm automatically installs all the node packages and their dependencies which are required for the project
  2. To start the server run the command npm start

Team Member

Chaitanya Bulusu (2019IMT-029)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published