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.

Built With

Share this project:

Updates