Hello Everyone,
Greetings.
I am getting started with an H5P XBlock development. For the once who are not familiar with h5p, H5P is a platform that lets you create various kinds of activities that can be implemented in courses. If someone is interested to get insights of these activities can visit Examples and Downloads | H5P. H5P supports over 50 activities that are interactive and engaging.
Motivation behind developing this XBlock
H5P is open-source project and currently it can be implemented in edx using LTI functionalities. However, there is downside to this approach.
- It is complicated to implement.
- This approach depends on h5p.com hosting which is costly for many users.
- One needs to depend on external website (h5p.com) for creation of activities
End Goals
Create an XBlock that supports most h5p activities that can be hosted within open edx at no extra cost and there are no dependencies to external services. This will be open source for everyone to us.
In order to achieve these goals, I need few clarifications as below.
-
Can XBlock create and access a specific directory at the installation time?
Context: H5P activities are built on several libraries. I would like these libraries placed within edx code base while installing this XBlock -
Can XBlock store and access .json (also images, audio and video) files at the run time?
Context: These activities will be created based on inputs by author and these inputs needs to be stored in form of .json file. In few activities user may also need to use images, audios or videos. These files needs to be stored within our instance at the run time without having to run compile assets -
Can XBlock grade student with help of javascript?
Context: H5P renders score using java script. Can XBlock capture this values and grade user?
It would be great if some of you can express what you think on the above question? What are standards to follow or how would you go about it?
There are some more questions which are as below
-
What is the best way to implement 40+ activities under XBlock?
What I have generally observed is one XBlock usually implements one task. What I am attempting is to have one XBlock that can implement nearly 40 activity types and user to be able to choose among them. So, is there any suggestion how to go about this? -
How best to create a ActivityCreationFormat so that it is user friendly?
This is the most complicated piece of the puzzle. Once user selects what activity they would like to create, they can be presented some sort of user interface where pre populated form is presented and user needs to supply the parameters related to their activity/question/answer. I am planning to use simple interface that edx uses for some of existing XBlocks such as MCQs. Have some one developed something more sophisticated than that? How to implement a link generator button where user clicks the link to upload image, audio or video and generate a link just like edx studio upload option but within XBlock interface. -
Any advice??
Anyone who has any advice or suggestion that I shall consider??
Apologies for making this post so lengthy. If anyone is interested on process/logic/idea behind the XBlock, I will be more than happy to share it here.
Thanks