Solving over it
- There are certain tasks for one subject (for example, to get prepared for one test), grouped by topic
- Each run, for every topic, a random (maybe the one that hasn't occured before) task is chosen, thus creating a list of all tasks grouped by topic
- Each task has an answer. The user is only shown the current task, and he has an input field for the answer for the task
- If the user has the correct answer, he goes to the next task. If he has an incorrect answer, he gets reset back to the beginning, with all the tasks randomizing (maybe without repeating) again