/Quiz

Quiz App for OCP

Primary LanguageJava

Quiz

Java OCP Quiz Application

Ubiquitous Language

Domain Definition "Quiz Maker" Bounded Context "Quiz Taker" Bounded Context

Choice

Choice for a question

Editable

Immutable

Answer

Correct choice(s) for a question

Editable

not directly visible

Single Choice

A question that has only 1 answer

Editable

Invisible

Multiple Choice

A question that has 2 or more answers

Editable

Invisible

Quiz

Collection of Questions

Define (editable)

Immutable/ read-only

Quiz Taker

Person that is taking the quiz

Does not exist in the Editable Bounded context

Stateful

Quiz Session

Quiz being taken by a person, collecting Responses

Does not exist

Stateful

Response

Choice selected by Quiz taker

Does not exist

Value Object

Grade

How well a Quiz Taker did for a specific, completed Quiz Session

Does not exist

Value Object

Explanation

Further information about question

Editable

View only

Category

Type of question - single, multiple, fill-in

Editable

View only

CRC Diagram

150639932 a91ef97d 8af8 44a7 802d 49bf33ed5777

Class Diagram

150657074 43c1a264 efb0 4e28 a4ff a2050258c61c

Sequence Diagrams

150699808 65f490cb 8018 42ac a049 8d99cb5f9ea9
154843182 412bae9a 485f 46b5 b19a db4a7aff4140
150698726 f11a8e5a cf9b 413f b038 ca88811df73b
150699135 19559c40 adfb 4a62 bce8 89959655c392
150699647 cba6c338 97b2 43a3 b5d7 1c143c5dc68b
154844920 747373d7 aebe 48a0 88c3 b75f87011217

Design for Multiple and Single Choice Questions

155522088 a98e19fd 049c 4bee 88cb 0355c1a01560

AskSingleChoice |

155892934 5cbec524 5e69 4599 aca7 3db57df4d572

AskMultipleChoice

155892935 0ada1222 76bb 4289 9dae 787428d4a425

ChoiceFormFactory

155892937 92fdda25 9eed 4b99 bdaf 26a8c5aa5e43

Database Diagram

162573740 9754afc6 5892 42ff a761 2df7d587b06d

Class Diagram (aim)

162574142 5a0994d0 39d3 41ba 9bed 7158ba3dcd24

Getting started

  1. Run mvn verify to download all dependencies to your local repository.

  2. Copy src/main/resources/application-local.properties.example to src/main/resources/application-local.properties

  3. Start the application from your IDE using the local profile.

  4. Run npm run build && npm run watch in a separate terminal window to have Live Reload. (If you like to have less output in the terminal window, run npm run --silent build && npm run --silent watch)

  5. Access the application at http://localhost:3000

    1. Access the application at http://localhost:3000

Test coverage - pitest

175924939 265713dd 180e 4f57 9f72 8c62948ddfc9