Skip to content

Mimmey/WebQuizEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


WebQuizEngine

Awesome engine for creating and solving quizzes


Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. Contact
  6. Links

About The Project

This project was made in educational purposes. I really enjoyed while creating and hope you will enjoy using it.

The engine provides multi-user creation, solving and deletion of little web-quizzes using HTTP requests.

Built With

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

Installation

  1. Open IntelliJ Idea
  2. Click on "Get from VCS" button
  3. Enter "https://github.com/Mimmey/WebQuizEngine.git" in the URL field, choose cloning path and click "Clone"
  4. Run project
  5. Open Postman and enjoy using

Usage

The program uses port 8889.

Send requests using that template:

localhost:8889/request

Here is a list of requests that you can use:

Method Request Params or body Description Access
GET api/quizzes int page (optional, default 0), int pageSize (optional, default 10) returns paginated list of all quizzes made by all users (paging starts with 0) only for authorised users
GET api/quizzes/{id} gets a quiz by its id only for authorised users
GET api/quizzes/completed int page (optional, default 0), int pageSize (optional, default 10) returns a list of successful solving attempts made by user (paging starts with 0) only for authorised users
POST api/quizzes Quiz quiz publishes a new quiz only for authorised users
POST api/quizzes/{id}/solve Answer answer solves specified quiz only for authorised users
POST api/register User user registers a new user public
DELETE api/quizzes/{id} deletes a quiz by its id only for authorised users

Quiz

Quiz is a special entity having the following structure:

{
  "title": "title",
  "text": "quiz text",
  "options": [list of options],
  "answer": [list of answers, numeration starts with 0]
}

All of the fields are required, number of options should be equals or more than 2

Example:

{
  "title": "Coffee drinks",
  "text": "Select only coffee drinks.",
  "options": ["Americano","Tea","Cappuccino","Sprite"],
  "answer": [0,2]
}

Answer

Answer is an integer array:

{
  "answer": [list of options]
}

Example:

{
  "answer": [0,2]
}

User

User is:

{
  "email": "name@second-level-domain.top-level-domain",
  "password": "password"
}

Example:

{
  "email": "test@gmail.com",
  "password": "secret"
}

Contributing

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

Olga Motyleva - motyolya@gmail.com

Links

Project Link: https://github.com/Mimmey/WebQuizEngine

README.md made using: https://github.com/othneildrew/Best-README-Template

About

JetBrains Academy project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages