Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ivankalmar/simple-quiz
Creating simple quizzes.
https://github.com/ivankalmar/simple-quiz
education flashcards learning obsidian obsidian-md obsidian-plugin plugin
Last synced: about 6 hours ago
JSON representation
Creating simple quizzes.
- Host: GitHub
- URL: https://github.com/ivankalmar/simple-quiz
- Owner: IvanKalmar
- License: mit
- Created: 2024-11-03T13:44:14.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-12-15T10:00:54.000Z (about 1 month ago)
- Last Synced: 2024-12-15T10:31:52.590Z (about 1 month ago)
- Topics: education, flashcards, learning, obsidian, obsidian-md, obsidian-plugin, plugin
- Language: TypeScript
- Homepage:
- Size: 1.06 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Spaced repetition using flashcards
## Summary:
- Only manual input cards are supported;
- Support loading with js or by json;
- Works on mobile devices (Tested on android);
- Can run the quiz directly in the note by using `quiz` markdown block.
- Shows the current steak, the number of repeated cards and the number of quizzes for the day;
- Shows charts with month, year, and cards progression;
- Enabling grouping by conditions;## Demo
## Card fields
```json5
{
id: "uniqueID", // Card unique id, if empty create automatically, using question data;
question: {
left: ['Question', ...], // Left question options;
right: ['Answer', ...] // Right question options;
},
pool: "pool", // Card pool;
tags: ["tag1", "tag2", ...], // Array of tags;
defaultSide: "left", // If card not reversible, then that side will be considered questions;
notReversible: true // If card reversible, then the questions and answers will switch places;
}
```## Definition
JSON
~~~
```quizjson
[
{
"question": {
"left": ["question1", "subQuestion1"],
"right": ["answer1", "answer2", "answer3"]
},
"pool": "testPool1",
"tags": ["exampleTag1", "exampleTag2", "exampleTag3"],
"notReversible": true
}
]
```
~~~JS
Must be enabled from settings.
In the code `fc` object is available with two methods:
- `addCard(flashcard);` - Adds a card, if it is not valid performs an exception.
- `commit();` - Must be called after all cards have been added.~~~
```quizjsfor(let i = 0; i < 100; i++) {
fc.addCard({
question: {
left: [`question${i}`],
right: [`answer${i}`]
},
pool: "testPool2",
tags: [`exampleTag${i}`]
});
}fc.commit();
```
~~~## Running quiz
There are several ways to start a quiz:
1. Using the `Simple Quiz:Run quiz!` menu command;
2. Using play icon button in menu;
3. Using start button in card placeholder, or today statistics, if the minify mode is not activated;
4. Insert `quiz` markdown block, who render inline quiz form;Depending on where the quiz was launched from, the set of cards will be different:
1. Quiz from icon in menu, by command, or today statistics, all available cards will be loaded;
2. Launching from the placeholder, only cards declared in it will be loaded;
3. If start from `quiz` markdown block, by default it will load all possible cards, but you can customize with `sources` argument;If saving results is enabled, the cards will be sorted by success, otherwise they will be randomly mixed.
## More
[Markdown blocks description](documentation/MarkdownBlocks.md)
[Groups description](documentation/Groups.md)
[Examples of usage](documentation/examples/Example.md)## Manually installing the plugin
Copy over `main.js`, `styles.css`, `manifest.json`, to `/.obsidian/plugins/simple-quiz/`## TODO
- [ ] Add new card types
- [ ] Manually cards
- [ ] Matching cards
- [ ] Option select cards
- [ ] Add images to cards## Third-party libraries
[Chart.js](https://github.com/chartjs/Chart.js)