Games, apps & websites for education
pdf-code-feature.jpg

Tooling & Productivity

One of my favorite tasks as a software developer is to identify and resolve process inefficiencies. It’s not the sort of thing I aspired to do when I was 16, but as it turns out, I love it. I suppose you could think of these efforts as technical “life hacks”: they save time, money and sanity. We’ll typically engineer some small tools alongside most of our larger projects, whether it’s for quickly importing content from a Google spreadsheet, or automating some editing task that would take 8-12 person hours. We’re always looking for ways to improve efficiency; and if we get to code something to achieve that end, all the better. If you’ve ever thought to yourself: “there’s got to be a better way to…”, we might be able to make an app for that.

Pictured Above: PDF Generator with NodeJS, Chromium & Docker

Pictured Above: PDF Generator with NodeJS, Chromium & Docker

You’d be surprised how tricky it can be to create a clean, printable PDF report from a website. You’d probably be unsurprised to learn that this is a common requirement for web apps that present any kind of reporting or analytics to internal or client administrators. It takes a while to build this sort of tool from scratch and, if you’ve done it enough times, you’re happy to never do it again. Here, we aimed to solve this problem by creating a Docker container (that can be launched in just about any kind of server environment) to expose an endpoint to a NodeJS application running the Chromium headless browser package. We defined a protocol for how to send a web view to this ExpressJS server, and we let Chromium take care of the heavy work, creating a darn near pixel perfect representation of the web content in PDF form. Need to let your users create a PDF report on your site? We’ve got an app for that!

Pictured Above: Desktop MS Excel Report Generator

Pictured Above: Desktop MS Excel Report Generator

We’ve been collaborating for years with a non-profit organization that supports caregivers for people with special needs. With a multi-state and bilingual implementation, internal stake holders need to see periodic reports that calculate usage which can’t be easily captured with more traditional platforms like Google Analytics. Here, we engineered a desktop application using NodeJS, Electron and ExpressJS to connect to an RDS database in the Amazon cloud, to compile a set of usage analytics and print the report to a multi-sheet Excel file (i.e., not a simple CSV export.) Prior to this solution, team admins were manually assembling these spreadsheets, connecting formulas, populating charts etc., to render the report. This saved easily 3-4 person hours per week which, over the years, certainly adds up!