prolic on v1.10.3
prolic on master
update changelog (compare)
prolic on master
fix restarting projection durin… respect lock in memory resetting projection and 12 more (compare)
Hey all, long time!
I'm designing a small quiz application that has a known structure:
Categories have 1 or more
Series has 1 or more
Questions. You could start any
Category or multiple and in any order (1, 4, 2, 3), but the
Series inside the [started]
Category are linear, as well as the
Question inside the
Again, for simplicity, we have a known structure.
This logic needs to be kept a bit abstract, in order to allow different "types" of quiz (i.e a single linear series of questions, with other hierarchy or something more complex like "if you answer A your next question is 5").
Scoring rules (for correct or incorrect answers and/or bonus for completion) might change for each instantiated
For each user participating in the quiz, we need to store his state/progress including scoring his answers.
We need to be able to mark events such as:
Answer Marked as Correct&
Answer Marked as Incorrectto be able to provide the right feedback as the appropriate
Series Marked as Completed
Category Marked as Completed
What is important here is to be able to determine at any moment the "next question" in each series as well as the states of each series (and the next available) & categories.
What I'm struggling a bit with is the modelling of the aggregates here - where would an answer be submitted to, who would the calculate the score (better yet, aggregate the scores) and how to maintain user-progress within the quiz.
For example: Would it make sense to have an QuizState aggregate that gets created when a new Quiz is started by a certain User and is responsible for all the above events? looks a bit too much responsibility, but I can't figure out how to properly split it...