Progressive Web App

9th February – ⁠21st May '20

For the Intelligent Web module in my final year, I was tasked with building a progressive web app as a group project. The requirements for this were fairly restrictive. We were not permitted to use frameworks like React and Angular, which make it much easier to implement things like service workers and cache control. Instead, we would be required to build service workers using the available API, find a use for IndexedDB, and use things like AJAX and to manipulate the DOM without redirecting to other pages.

These limitations helped to build my understanding of service workers and caching techniques, as documented by Google's Offline Cookbook. This was also my first opportunity to work with a NoSQL database.

In spite of the runtime dependency limitation, I used my existing knowledge to make development faster and more sustainable. GitHub Actions ensured that the codebase would be linted and formatted at every stage, and I used Docker to ensure a replicable environment.

Copyright © 2016-2020 Simon Fish