๐Ÿฑ Today's menu

Hi ๐Ÿ‘‹, comments?

Contact me

v26.7.160724

Teaching Offline in a Country With Bad Internet

October, 12 2015. 6 minutes read.



This post is about a problem most developed countries never think about: what if the internet is too slow to teach?


The Reality


In 2015, Indonesia had more than 3,500 higher education institutions, 300,000 lecturers, and 7.8 million students. Many of them wanted to use Moodle, the popular learning management system. But there was a problem nobody in Silicon Valley thinks about: the internet was too slow and too unreliable.


Moodle needs a constant internet connection. Both lecturers and students. Every day. In a country with a bandwidth gap, that requirement alone made Moodle painful to use.


The Obvious Solution That Was Not Obvious


"Just install Moodle on a local machine," someone might say. But have you ever tried? You need to configure a web server, set up a database, manage the admin panel, then figure out how to back up your content and upload it manually to the remote server. For a lecturer who just wants to write learning material, this is a wall.


Most lecturers are not system administrators. They should not have to be.


What I Built


I built the Lecturer Based Supportive Tool (LBST). The idea was simple: a lecturer runs one Python script. That script starts a local web server (using Flask, which has a built-in server) and a local database. No configuration. No admin panel. The lecturer just opens a browser and starts writing learning material, completely offline.


Then, when the lecturer eventually gets a connection (even a brief one through the campus network), the tool synchronizes everything to the remote Moodle LMS.


The Clever Part: REST


The synchronization uses Moodle's REST web services. This matters because earlier solutions only worked between identical Moodle versions. Moodle updates frequently, so those solutions became obsolete fast.


By using the standardized REST API, the LBST treats all Moodle learning materials as resources and performs standard actions (GET, POST, PUT) on them. This means it works across almost all Moodle versions. The lecturer authors offline, syncs online, and never worries about version compatibility.


Why This Still Matters


This paper is from 2015, but the lesson is timeless: build tools for the reality of your users, not the reality of your assumptions. In Indonesia, the reality was slow internet. So the tool had to work offline first, online second.


Too much software assumes perfect connectivity. Billions of people do not have that. Designing for offline-first is not a limitation. It is empathy encoded in architecture.


Read the Full Paper


Read the full paper: Synchronizing Learning Material on Moodle and Lecture Based Supportive Tool โ†’


Published at IEEE ICTS 2015, Surabaya. This was part of my doctoral research at Kumamoto University.



Build for the reality of your users, not the reality of your assumptions.

@hepidad