A kickass Quiz app built using NodeJS, Express 4 and MongoDB; designed to be run inside an organization, where users can register and take a quiz everyday. Also features a full-fledged admin interface for adding questions.
- Fully built using the latest stable versions of Node.JS, Express (4.x) and MongoDB.
- NEW! LDAP authentication support.
- Beautiful responsive frontend using Bootstrap 3.x and jQuery, including skins.
- Standings/Rankings page that shows detailed organization-wide statistics, along with fancy graph charts built using Flot.
- Custom admin interface complete with image upload functionality (for questions) using DropzoneJS and detailed userbase statistics using DataTables.
- Uses the
swig
template engine instead of the defaultjade
. (That's because I come from Django). - Well-designed responsive templates for all email communication, thanks to Antwort.
- Tons of interesting fraud counter-measures.
Make sure the following packages are installed first.
Once these basic packages are installed, DEPLOYMENT TIME!
pm2 is the recommended process wrapper for deploying this app. It is a zero-downtime, automatic-clustering process manager that offers logging, hot-reloading, monitoring and a ton of awesome stuff. Install pm2
globally using the following command -
sudo npm install -g pm2
Once installed, simply execute the command -
pm2 start app.js -i x
where x
is the maximum number of processor cores available to the app.
For a ridiculously speedy app, also setup nginx
as a reverse proxy on top of the pm2
process. Refer the nginx.conf
file in config/
for a highly optimized nginx deployment setup.
All other app-specific configuration is present in config/config.js
.
There's a very small level of code smell - most of the routes are still in[COMPLETED]app.js
. Pull requests for cleanup are super-welcome.- Templates are all plain and are not structured into base/inherited templates.
- Could probably use a Grunt or Gulp task runner script for continuous deployment.
All versions of the NodeQuiz icon were designed from the wonderful vector icon set from Brankic1979.