In Thailand, graduation diplomas are conferred in an elaborate ceremony with the actual conferment being done by royalty. For this to happen efficiently, the entire graduated class attend the ceremony together over a span of a few days.
This pose a nice logistic problem. Some 5000 students attend the ceremony each day. The school need to perform attendance check and make sure the actual diploma are in the correct order of the student lining up.
The process was done manually for a long time, until about 10 years ago. Th make the story short, the process was computerised. The current version of the software, in used since about 8 years ago, was written by me when I was a 3rd year undergraduate student. It hasn’t really been maintained since. While it works well, there were lots of bad parts (like, many part has zero error handling). The OS needs updates (the server is on Ubuntu 16.04 and all my attempts to upgrade it failed).
It really, really need to be rewritten. The code was written during Node 6 LTS era. So Promises aren’t native (I used Bluebird). async/await
is not available (though generator is so it was abused with Promise/co
). But the thing is, the system is quite big, and it works well and stable enough that nobody want to touch it.
I probably need to come back to this system one day.