I live in one of the third world country where access to internet(Data or bandwidth) is a luxury most time. and as IT provider I have the follow scenario on my hand, hence I need fast solution to it.
Our small enterprises had been saddled with task of providing e-learning contents for over fifty android devices with same content (The device will be given out to student).
Moodle software was selected because, we had work with it in the past to provide e-learning environment across multiple location.
Moodle is locally connected to by each android device via wifi network, Each of the device use same single username credential setup on the Moodle server, this is to ensure that all device pull same content from Moodle. All these setups work fine but there is snag somewhere
Where are pulling e-learning materials of over 16GB to each device over the network, hence the network become slow (on average, 3 device connect and pull data for roughly 4.5hours) and contents seem to be forever downloading.
Then, we felt that inasmuch we had a single user account on all of the devices, with single contents, the contents on one device should work for another device, right?
We, do copy all downloaded material store in one of the device that had complete synchronization with Moodle server, from our finding all download files are store in folder name "filepool" under moodle forder on android.
What we observed is that in spite of copied files existence on the new device with similar credential,
moodle mobile is not recognizing the existence of the copy file, hence it download and overwrite the copied files and this take us back to square one.
Hence, i have the following question
2. Why is that Moodle App does not check local folder for existence of file before designate as yet to be download
3. If Moodle App, use local db, how can one access it and probably modify it to point to file that exist locally on the devices.
I have other question about the APP customization though some of it had not been answer from other thread, i will keep watch over those asked question.
I hope someone will be kind enough to guide me through this meandering.
Thanks a bunch.
- The current app (3.4.2) uses IndexedDB or WebSQL to store which activities are downloaded, amongst other things. The new app (3.5.0) that will be released in the next weeks will use SQLite DB for that.
- In most cases, downloading an activity isn't just downloading a file, it also downloads other data for the activity. For example, for SCORMs we also download the list of attempts performed. We check the DB (explained in point 1) to check which files are downloaded because it's faster than checking the file system.
- Unfortunately, there's no way to modify that DB unless your device is rooted, otherwise it would be a huge security issue. IIRC rooted devices can modify the SQLite database, I'm not sure about IndexedDB or WebSQL.
We find ourselves in a somewhat similar boat to Qamarudeen. Is there any hope of maybe forcing Moodle Mobile to check the file system instead of the Database in order to avoid downloading the large content? If all we had to download on each iPad would be the additional data, like the attempts information you mentioned, it would significantly help our situation as I assume the download size would be minuscule in comparison.
We're happy to test some approaches on our end and report our findings if you could perhaps point us in the right direction.
Thank you for your help Dani!
reading from database should be faster than checking at the file system, that's why we took this approach. Also, database allows us to store more data about the file like the original URL of the file, its timemodified and revision in Moodle, its download time, etc. Some of this data could be calculated if we read the file system, but for example we wouldn't be able to tell if the file needs to be updated or not because we don't know the time it was modified in Moodle.
In any case, I'll write down your suggestion so we can take a look at it in the future, but you shouldn't expect a change soon.