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.
Home Page
Student Register Page
Admin Upload Result Page
Registration Successful Page
Results Uploaded Successfully Page
Enter Details to View Results Page
Results Page
https://ers-by-chaitanya.herokuapp.com/
- Used the concept of Asymmetric Key Encryption for encrypting and decrypting results for ensuring confidentailty and security of results.
- Used multer middleware to parse various types of input files such as .xls, .xlsx and .txt
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
- Clone this repo using
git clone https://github.com/Chaitanyab2001/ERS.git
- After cloning create a
.env
file to store all the environment variables - 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)
- After setting the
.env
file, run the commandnpm i
so that npm automatically installs all the node packages and their dependencies which are required for the project - To start the server run the command
npm start
Chaitanya Bulusu (2019IMT-029)