Awesome engine for creating and solving quizzes
Table of Contents
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.
To get a local copy up and running follow these simple example steps.
This is an example of how to list things you need to use the software and how to install them.
- Open IntelliJ Idea
- Click on "Get from VCS" button
- Enter "https://github.com/Mimmey/WebQuizEngine.git" in the URL field, choose cloning path and click "Clone"
- Run project
- Open Postman and enjoy using
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 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 is an integer array:
{
"answer": [list of options]
}
Example:
{
"answer": [0,2]
}
User is:
{
"email": "name@second-level-domain.top-level-domain",
"password": "password"
}
Example:
{
"email": "test@gmail.com",
"password": "secret"
}
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Olga Motyleva - motyolya@gmail.com
Project Link: https://github.com/Mimmey/WebQuizEngine
README.md made using: https://github.com/othneildrew/Best-README-Template