Just wondering if a very similar approach to Discourse AI - Web Artifacts would enable to use H5P content in discourse.
AI artifacts are limited in size. I suppose, storing bigger content inside the database should be avoided?
I would like to learn about how to store bigger content and how a limited communication between rich content and discourse could take place.
Tasks to solve
- Serve H5P content from discourse
- Store achievements inside discourse
- Analyze achievements from discourse
- Integrate Achievements with Badges
Serve H5P content from discourse
H5P content is uploaded as a specific structured zip file. This archive has to be unzipped and moved to locations, from where it can be served.
Configuration data inside is usually quite small and could be stored in the database, as in AI Web Artifacts (AIWA). Included libraries and media might get quite big and should be stored as other uploads (as files or via CDN).
AIWA serves the content inside an iframe, which provides a sandbox environment. Since any code inside H5P should not be trusted, this seems the way to go for H5P too.
An alternative might be to embed H5P from foreign infrastructure via oneboxing.
Store achievements inside discourse
H5P uses a REST-API (xAPI) to store achievements. For integration with Discourse UI cross-document messaging might be interesting.