RASMS / Part 3 of 5

No internet at school, so I built an offline installer

Event date / Last revised / 2 min read

Share: LinkedIn / WhatsApp / X / Facebook / Email

RASMS had been in use at Musamvu TVET School since I presented it to the parents' meeting in February 2020. Then COVID-19 closed schools in March.

While schools were closed, I kept working. I worked in a stationery shop again, and I did data entry for a business that supplied building materials to schools in Ngoma District.

On 2 November 2020, TVET schools reopened, starting with the second term. As soon as we were back, RASMS hit its first real problem.

A web app without the web

RASMS was built as a web application. But the school couldn't rely on an internet connection, so the system had to work completely offline on the school's own computers.

Asking teachers to install and configure a web server, a database and an application by hand was not realistic. It would have taken time teachers did not have, and I could not have supported every setup remotely.

One setup file

I bundled everything RASMS needed, the application, the web server and the MySQL database, into a single Windows installer. You ran the setup, and it installed and configured all of it.

It was the first desktop installer I had ever made. Once it worked, a teacher could go from nothing to a working RASMS on their own computer.

That became version 1 of the offline RASMS.

What changed when it went offline

Running offline meant some features had to wait. SMS notifications to parents need a connection, so the school used RASMS without them. Everything else, from marks to discipline to finance, worked on each machine.

It also meant every installation held its own data. That created the next set of problems, which I cover in the next post.

What I took from it

Design for the environment, not the demo. RASMS worked perfectly on my laptop with internet. The real environment was a school without reliable connectivity.

Packaging is part of the product. The best system is useless if people can't install it. Turning a complex setup into one file mattered as much as any feature.

Cut features to ship. Running without SMS was a trade-off, not a failure. A working system without one feature beats a complete system nobody can run.

Related case study: read the full case study.