-
admin
- can include and remove any teacher from the examination portal at will.
- can also update the details regarding any teacher, which can potentially affect their activities or/and their stance, as a tier of authority.
- can include and remove any subject on which an exam may be conducted by the teachers.
- admin has the final say in regard to any subject upon which an exam may be conducted. however, teacher is granted full authority as to the actual conductance of the exam.
-
teacher
- has authority over the number and strength of the questions that would be included in the test paper.
- can include, remove and update the questions from the test paper, wihtout restriction, given that the test is still in the creation stage.
- teacher has root control on the start and end time pertaining to every single test, conducted by them, which would be terminated automatically after a set time duration, if not terminated directly by the teacher themselves.
- can view the complete stats (under construction), as per the test as a standalone event, which sports every single detail and nuance of the test.
- they have the authority to send the test link upon creation of the said test.
-
student
- can access the test, posted at any given time, provided that teacher has mailed them the unique test ID.
- Nodejs : Premium server supported with nodejs runtime, built, capable of handling potentially huge number of requests in real time, with latency, virtually, non-existent.
- Expressjs : A web application framework, which provides the intricate middleware, integral to the layered functionalities, hosted in the application.
- React : Javascript library, to construct the user interface fragments, configured to provide optimum control flow to any end-user.
- MongoDB: Real time database management operations, with hosted mongodb cluster, to enable operations pertaining to access and post events of data (identity and marks information when applicable).
- this functional exam portal, can be implemented by any standard, exam conducting body, being able to adapt to the specific needs (should they exist), backed by the varied functionalities it is bundled with.
-
Get a live and running instance of MongoDB
- Go to mongodb.com
- create an account
- create a database cluster
- you will get a connection string for that cluster
- paste that connection string as it is in the
backend/config/default.json
under themongodb: { connectionString: "<paste token here>" }
- Configure Sending Emails
- Enter your email credentials in the
backend/config/default.json
file under the key ofmail-credentials
where userid is your email address and password is generated by email console- Your google account needs to have 2FA on that mail
- Go to security ==> "Signing in to Google" section ==> App Passwords ==> Generate a password ==> Copy the generated password and paste in the password field (of your app)
- Add your email in the
backend/services/mail.js
file (line number 16), which says <\EMAIL_HERE>, replace it with your email - You can also change the name by which you send emails, by replacing the "Exam Portal" in line 16 of
backend/services/mail.js
by the name of your choice
- Enter your email credentials in the
-
Create the admin in the app
- Give the admin credentials in the
backend/services/tools.js
file (line 10 - 14). Credentials include name, emailid, contact and password (in line 7) - uncomment the line number 117 in file
backend/app.js
and start the app using the scriptyarn start
inside thebackend
directory - Once it shows the message "User Created", stop the app, using the keyboard shortcut
Ctrl + C
orCmd + C
or kill the running terminal - Comment the line number 117 in file
backend/app.js
as it was earlier, then start the server again (yarn start
in the backend directory)
- Give the admin credentials in the