🖐️ ROLLCALL ROOMS
RollCall Rooms is easy way to take attendance with in less time. We generate a random QR CODE for every 15
or n
seconds, users can scan to qr to record their presence in the room.
Application Home Page Preview
https://rollcall-rooms.herokuapp.com
About Project
I have build this web application with react as front-end and express as the backend.For the database i have used the Mongodb Atlas online database under free tier (500mb max).
Working
- Well, Each class will have an admin who can control the room like editing room description,create rollcall session etc.
- An User can join the room using the room id provided by the admin*. Now he/she can have the privilege to attend the rollcall session.
- An admin can now create rollcall session that closes in certain seconds and qrcode refresh interval.
- The User can now open the rollcall session and scan the qrcode.** Using the socket io the scan result will be immediately send to admin.
- After closing of session, the session data is available nest 10 minutes. Admin can download the result of the rollcall in form csv with absentees at first.
* Admin can also block the room joinings.
** We will be storing the ip address of the user in the cache which will ensure that same user couldn't scan from multiple accounts on same device.
Planning
I have attached the Balsamiq Wireframes
file in extras/wireframes
, which show the planning of the website.(I took some of the front-end design inspiration from HackerRank).
Deploy Process
Added all the folders to this repo (not the private one
Created a package.json file in the root directory and written the following in it.
{
"name": "rollcall-rooms",
"version": "1.0.0",
"main": "",
"scripts": {
"start": "npm start --prefix server",
"install-client": "cd client && npm install && npm run build && cd ..",
"install-server": "cd server && npm install && cd .. ",
"heroku-postbuild": "npm run install-client && npm run install-server"
}
}
heroku-postbuild
* - Run's the command after installing the node_modules in root directory.This really worked for me
*reference - https://www.codegrepper.com/code-examples/javascript/heroku+post+builds