Quizcrawler is an application that, when fed a file of class-notes, crawls the structure and generates interactive quizzes that can be used as review. It leverages spaced repetition and forced / active recall to enhance learning. The gamification of studying should further increase engagement and recall.
- Basic Persistence
- Fix MC (Similarity)
- Support multiple question types
- Flashcard-style
- Proof / Process / ordered list
- Topical Details / unordered list
- Quiz Types
- Typed answer
- Configurable strictness (case-sensitive, etc)
- "I was right" option
- Multiple choice
- Basic support
- Hint / eliminate some answers
- Detect and present similar answers
- Check yourself / open
- Basic support
- Pull out keywords / emphasis
- Keep user answer & correct on screen together
- Typed answer
- Subject organisation
- Parse into a tree data structure (files are top level)
- Allow for menu based exploration of the tree
- Show actual tree preview
- Easy keyboard navigation (no return needed)
- Persistence & Metadata
- Save tree data / metadata
- Record how many times a question was answered correctly & incorrectly
- Have a single "mastery" number (higher -> less asked)
- Record the last time questions were asked
- Interface
- Main screen
- List of quizzes due for review (spaced reps)
- Based on last time seen & mastery
- Explore the tree
- List of quizzes due for review (spaced reps)
- When asking a question display the tree path for context
- Colour coding / fancy terminal witchcraft
- Clear screen
- No return
- Colour by mastery
- Colour by right / wrong
- Main screen
- Presentation & Publication
- Formal & professional release notes + feature list on Gitlab
- Add to CODING section of my website
- Produce a video showcasing usage and features
- Support more question types
- Tables
- More Quiz Types
- Fill in the blanks
- Focus cutting out keywords
- Targeted Revision (no answer needed)
- Brings up parent / siblings with context of the question
- Gives the notes with answer inside, but you need to find it
- Go up another level is parent / siblings are too small
- Fill in the blanks
- Better Subject organisation
- Allow certain subjects to be bookmarked
- Stars out of 5
- Allow certain subjects to be bookmarked
- More Persistence & Metadata
- Store which types of question each bit of info best fits with
- Quiz type preference
- Strictness preference
- Store which types of question each bit of info best fits with
- More Flexible Interface
- Main screen
- View the bookmarks / stars ranking
- Sort by difficulty / mastery (most needed)
- Show mastery percent (inverse difficulty)
- Quiz tweaker: Allows for viewing & setting
- More colour coding / fancy terminal witchcraft
- Colour answers diffs
- Rankings in tree view
- Fun effect motivational messages
- Motivational & informative messages
- After each question
- Mastery memes / jokes
- Main screen
- Presentation & Publication
- Formal & professional release notes + feature list on Gitlab
- Produce a video showcasing usage and features
- Set up some unit tests
- Comments and documentation
- Better / smarter answer checking
- Clean up multi-line strings (get rid of whitespace after '\n')
- A nicer interface with colour and ansi terminal features
- Error handling! No more unwrap! Move error handling to main.
- Document the purpose of each module. Including mod.rs
- The QuizDispatcher should be configurable and pick the most needed questions
- If one quiz is more difficult than another, pick it for higher mastery q's (is_applicable)
- Crawler should try to find a title at the top of a file, falling back to the filename