A quiz application built with React, Express and MongoDB.
- Build with modern techniques
- React, SCSS, Express and MongoDB
- Create multiple quizzes
- Approve or reject teams
- Select your own categories
- Separate scoreboard
- User friendly
- Adjustable to your preferences
- API based
- No page refresh between questions
- Cross browser
- Safari, Chrome, Firefox and Opera ready
- Challenging questions
How To Use
You need a Mongo DB server (without authentication) to run this application.
# Clone the repo $ git clone https://github.com/MitchDorrestijn/QuizFall2017_Mitch_Sjoerd.git # Go into the server directory $ cd fall2017-quizz-MitchEnSjoerd/server # Install dependencies $ npm install
By default, the application runs on port 8080, and expects a local Mongo database to be running by the name of
quizzer. One round in a game has twelve questions. To change this behaviour, edit the
config.json file in the server directory.
After setting up
config.json you can install the questions to the Mongo server by running:
$ node setup.js
Finally, to run the application:
$ node app.js
If you want to run tests for the Mongoose schemas and the API, you need to have
mocha installed. Make sure the server is running and run:
Note: If you're using Linux Bash for Windows, see this guide or use
yarn from the command prompt.
You can download latest installable version of this Quizzer for Windows, macOS and Linux.
This software uses code from several open source packages.
- React - The client side framework used.
- Express - The server side framework used.
- SCSS - The CSS preprocessor used.
- MongoDB - The database behind the Quizzer app.
- Mongoose - The object modeling package for MongoDB.
- Socket.IO - The extension used for real-time bidirectional event-based communication.
- Webpack - The module bundler used.
Why these packages?
- React - Was required for the assignment.
- Express - Was required for the assignment.
- SCSS - To organize CSS and for variable support.
- MongoDB - Was required for the assignment.
- Mongoose - To add data validation and because it will abstract away most of the mongoDB code.
- Socket.IO - For backwards compatibility with AJAX, easier socket management, and automatic reconnection.
- Babeljs - To convert React and ES6 code to es5 so non-ES6 browsers can use it.
- Webpack - To make the app faster.
- Mitch Dorrestijn - Mostly client-side development - MitchDorrestijn
- Sjoerd Scheffer - Mostly server-side development - ixnas
The Quizzer application is created in commissioned by the Hogeschool van Arnhem en Nijmegen for the SWD/CWD courses.