Content pre downloading
This part is about how user will receive a content for a specific course on their device to be able to work while offline. This requires to download:
course info
dates
discussions
XBlocks
updates
handouts
Solution
Create an endpoint that generates a compressed file with all data for the course. Data is compressed and structured by the main course components.
Implementation assumptions
provide all the text based data into JSON format
content for a course can be potentially big. Therefore it is needed to be compressed
media file is going to be created for downloading on demand
static content (course info image, handouts etc) is transferred using links. On the mobile device it can be pre downloaded
each XBlock is separate HTML file (assumption for now)
Pre downloaded XBlocks
XBlocks are assumed to be a single HTML file for now. But there are different types and different complexities. This means one xblock can load something else which makes things complicated.
The idea is to separate XBlocks into offline-friendly and non-offline-friendly and incrementally work with each type.