Inspiration
The "Natural Disaster Aid" category is common at hackathons; however, too often solutions to such challenges rely on internet access, which is not guaranteed in an emergency. Whether a website or an app that needs to be downloaded, such solutions are not always practical. We approached this project aiming to answer the question: "How can we make disaster relief tools available without ever requiring an Internet connection?"
What it does
The QRlicious meal rationing app is a proof of concept QR-code-application-hybrid which can be opened in the browser by scanning a QR Code, with no Internet connection necessary.
How we built it
We used the data URI scheme. This allowed us to package the entire website within a single link, which could then be displayed and scanned as a QR Code. We built the meal rationing app in JavaScript and plain HTML/CSS - it is a very bare-bones web page because we were under severe space constraints.
Challenges we ran into
Building a website that looks presentable and functions well is hard enough without also trying to fit it into 2953 bytes. Far from the comfortable environment of programming within a framework, we were forced to optimize to a nearly obsessive extent. We spent much of our time building the world's tiniest INFLATE implementation, optimizing it in concert with the data we fed it. Despite our strides in decompression, the overhead imposed by bundling the decompressor with our site payload outweighed an impressively high compression ratio, and we were forced to hand-optimize our site for hours. By the end, every byte was celebrated and charted on the whiteboard in our corner of the building.
Accomplishments that we're proud of
For all members of our team, this was either a first or second hackathon. We faced exceeding adversity with the logistics of driving to this hackathon, but despite these challenges, we finished our project on time.
What we learned
We learned a lot about compression, optimization, information theory, and finishing projects on time(!!)
What's next
We'll continue to play with QRlicious to push the possible website sizes ever higher.
Log in or sign up for Devpost to join the conversation.