-
Notifications
You must be signed in to change notification settings - Fork 8
Project 4: Hyper Quiz
The main goal of the project is to implement a web application allowing the Users (Players and Administrators) to create and take different Quizzes (ala Kahoot - https://kahoot.com/ :) online.
All Users should have following common attributes:
- id (generated automatically) - long number;
- username - string 2 to 15 characters long - word characters only, unique within the system, cannot be changed;
- email - should be valid email address, unique within the system, cannot be changed;
- password - string 8 to 15 characters long, at least one digit, one capital letter, and one sign different than letter or digit, NOT sent back to the User clients for security reasons;
- gender - MALE / FEMALE enumeration;
- role - PLAYER or ADMIN enumeration, PLAYER by default, editable only by Administrators;
- picture of the user (optional) - valid URL, if missing should ne substituted with an avatar according to the gender;
- description (optional) - string 20 - 250 characters long;
- metadata (optional) - string up to 512 characters long, visible and editable only by Administrators;
- status - validity status of the user account (ACTIVE, CHANGE_PASSWORD - should change password on login, SUSPENDED, or DEACTIVATED), visible and editable only by Administrators;
- quizzes - list of all Quizzes created by the current User;
- created (generated automatically) - time stamp of the moment the user account was created;
- modified (generated automatically) - time stamp of the moment the user account was last modified;
- results - list of all Results from Quizzes the Player has taken;
- overallScore - integer number representing Player's experience (sum of all scores form Quizzes taken), to be transformed to Rank enumeration, using formula chosen by you.
- quizzesBlocked - list of Quizzes the Administrator has temporarily blocked for non-compliance with the site policies;
All Users should be able to add, browse, search, and play Quizzes. The Results of different Players should be presented and compared using a leader dashboard for each Quiz. Administrators can add and play the Quizzes but their results are not remembered permanently, nor they participate in the Quiz leader dashboards.
All users should be able to signal (report) suspicious Quizzes, and Administrators should be able to block such Quizzes temporarily, until compliance with site policies is established (all such communication will happen by email, outside of the Hyper Quiz system).
Each Quiz has the following structure:
- id (generated automatically) - long number;
- title - string 2 to 80 characters long;
- author - the User that created the Quiz;
- description - string 20 - 250 characters long, supporting Markdown syntax;
- questions - list of Question entities (containing the answers with their scores too);
- expectedDuration - integer number in minutes;
- picture (optional) - best representing the Quiz, valid URL to a picture, if missing a placeholder picture should be used;
- tags - string including comma separated tags, allowing to find the Quizes by quick search;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
- id (generated automatically) - long number;
- quiz - reference to the Quiz the Question belongs;
- text - string 10 - 300 characters long, supporting Markdown syntax;
- picture (optional) - if the Question includes picture, valid URL;
- answers - list of Answer entities for the Question;
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
- id (generated automatically) - long number;
- question - reference to the Question to which the Answer belongs;
- text - string 2 - 150 characters long, supporting Markdown syntax;
- picture (optional) - if the Answer includes picture, valid URL;
- score - integer number (could be negative too);
- created (generated automatically) - time stamp of the moment the entity was created;
- modified (generated automatically) - time stamp of the moment the entity was last modified;
Each Player should be able to manage (edit / delete) her/his own Quizzes (including Questions and Answers). The Administrator should be able to view and manage (edit / delete / block / unblock) Quizzes of all Users. All Questions and Answers for a Quiz should be visible from the Quiz details view.
All input data should be validated, and actions authorized, according to the above specified requirements. For further questions and clarification - please ask the instructor.
Copyright © 2003-2019 IPT - Intellectual Products & Technologies. All rights reserved.