Lightweight, AI-enhanced platform for effortless quiz creation and sharing with lightning-fast performance
tldr: You can watch the setup tutorial here
- node.js - > Version 16.20.1 or higher
- MongoDB Cluster - > Free Tier or higher
Navigate to the folder in the terminal
cd quiz-maker
Rename the .env.example
file into .env
and open the file.
PORT
is preset to 3000
, however, if another instance is already running on that port, you can change it to something else (ex 5000)
Fill the MONGO_URI
field with your MongoDB Cluster's Connection Uri. If you do not know how to fetch the uri string, please read here
(enter the URI within the double-quotes)
This is the Administrator password to be used while logging in to the project dashboard to perform actions. It is Case Sensitive! (enter the password within the double-quotes)
Avoiding spam is necessary for smooth functioning. Similar to PORT, this is preset to 4
which is the recommended value
To utilise the productive AI features, you need to signup for a Cloudfare Account (free) and fetch the UserID and API Key here and enter them into the respective field in the .env
file
(enter the fields within the double-quotes)
Your .env
should look something like this:
# Required
PORT="3000"
MONGO_URI="YOUR_MONGO_URI"
PASSWORD="YOUR_ADMIN_PASSWORD"
MAX_REQUESTS_PER_SECOND=4
# Optional (Required if you want to use the AI features)
CLOUDFARE_USER_ID=""
CLOUDFARE_API_KEY=""
If you are checking out the application for the first time or using it for a very short period of time, run the following in the terminal:
npm start
If you are deploying this for an event or production, you should use PM2 (free) so that the server restarts automatically in case of a shutdown.
npm i -g pm2
npm run production
If you get any error while starting the application, especially if it a MongoError
, it means your MONGO_URI was invalid.
🎉🎉 Congratulations! Your Web Application is now online: http://localhost:{PORT}/
Setup.mp4
Read the Guide/Wiki to learn how to use and operate the application
ExpressJS
defaults to creating a localhost instance which you cannot access from other devices. However, if you want do want other devices accessing it:
- Open
index.js
file using any basic text editor - Navigate to
App.listen(process.env.PORT...)
function (line 59) - Replace the entire code block (lines 59-63) with the below code:
App.listen(process.env.PORT, '0.0.0.0', () => {
misc(
`Admin Dashboard running on http://localhost:${process.env.PORT}/dashboard`,
);
});
Restart the application and other devices should be able to access your application at: http://{SYSTEM_IP_ADDRESS}:{PORT}/
If the application is still inaccessible from other devices, please check your firewall configurations to allow other devices to access
If you feel there is an issue, kindly email me at thesinisterdev@gmail.com
. Alternatively, you can open an issue in the repository, however, the email method would be faster
Hope you enjoy using the application! You can raise feature requests similarly by email or raising an issue!
A small one-time donation would be very much appreciated!