- You can add multiple question. - Each question can have some content, one image and multiple options users can select. - Each option can have a title, an image and a feedback displayed to users when they select/confirm that option.
I want to add an option to import/export JSON. It's actually on the roadmap for v1:
- https://github.com/zoonk/uneebee/issues/41 - https://github.com/zoonk/uneebee/issues/40
In the future, I also want to implement some kind of plugin system because certain subjects require a different learning style. But I'm not sure yet how this would work. I need to think about it.
Right. People say that HelloChinese is better for Chinese because some of the question types are drawing Hanzi, so I think this is a perfect use case for a plugin system where a course could add a plugin for Hanzi/Kanji drawing and not be slowed down by the core developers.
I think that while this might be useful for teachers, it might be more sustainable if courses were stored in a version controllable medium to facilitate multiple collaborators.
My initial thought was to actually use GitHub to store the content. Either on Markdown or JSON - to have some version control. I like how Exercism [1] does it. But I thought it would be hard for teachers - unfamiliar with Git - to update lessons.
Then, I thought about implementing a version control system for the project but I felt I was overcomplicating things for an MVP. But I like the idea of having some kind of version control to improve collaboration.
You could also have a cloud service to store the project files, and then the teachers can just login to the editor and click save to upload their latest copy of the course.
I had the idea (I'm not saying it's original, it's just what I thought at the time) of course lessons consisting of a series of questions, and each question is defined as a JSON object.
There are built-in question-templates like multiple choice, free-form answer, or just true/false.
If a course needs something really specific, then it can implement a custom renderer for that new template type, so that a course isn't held back by the upstream project. If it's a template that might be useful for more people, then it can be integrated into the core project.