rohit10000 / ourtest_reboot

A test website

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ourTest (A Test System)

It is an end to end real-time, responsive test website for hard-working aspiring candidates where they can practice for exams of their choice.

This project consists of 2 parts:

  • Frontend: build in reactJs and bootstrap using javascript, HTML and CSS
  • Backend: build in nodeJs, mongoDB.

Requirements of Test System

  • User can select the Test category like JEE Advance, CAT, GATE, etc.
  • User can further select the subsections inside of test category.
  • Every sub-area's can have multiple topic.
  • You can perform quiz on a particular chapter.
  • Every chapter can have multiple questions.
  • User can signup, login and logout.
  • User can even view his dashboard.
  • Admin can add or remove tests, sections, topics, questions.
  • Any user can only login from only one device and can only login to other device once it is logged-out from the logged-in device.
Actor Use Case
User Can select test category, subsection category and topic, can do quiz, can login, can see to dashboard, can only login from one device.
Admin Can add or remove tests, sections, topics, questions.

Class Diagram

alt text

Configure to run app

As I have earlier there are 2 parts in this project. For frontend part it is very simple. For the backend part, it is also very simple just you have to run mongo server in local and import few collections and then run the nodeJs server.

  • Clone the repository.

  • In the frontend folder run command npm install and npm start. Now, your frontend app server will be running on port 3000.

  • Run mongoDB server on local and import certain necessary collection to dB ourTest as is given in the folder /backend/database.

  • Then in the backend folder also, run command npm install and npm start to run the nodeJs server.

  • Last thing you need to set the config file n frontend and backend. Add config.js file inside /frontend/src/shared with the following content:

export const baseUrl = <base url>;
export const clientId = <clent id for google oauth>;


Also add a config.js file to /backend folder with the following code content:
const user = <user of mongo client>;
const password = <password>;
const host = <host ip>;
const port = <host port>;
const database = <db>;

module.exports = {
    'secretKey': <secretKey>,
    'mongoUrl' : `mongodb://${user}:${password}@${host}:${port}/${database}?authSource=<...>`,
}

Our basic structure will look like this: alt text

Go head and have a code look!

If you want to see how I deployed my first nodeJs app on google cloud. Feel free to checkout the link.

Screenshots for the project are as follows:

Web UI

Mobile UI

Happy Visiting!

About

A test website


Languages

Language:JavaScript 81.0%Language:CSS 13.0%Language:HTML 5.8%Language:Pug 0.2%