Stuff I Made in Node.js

November 29, 2021 by Steven Ng (Updated May 21, 2022)

Just a curated selection of things I've made with NodeJS.

Web Applications

Braintapper Radar

Braintapper Radar is a list management web app that I made. I have removed the link since it's more of a private service now that is grandfathered in for anyone who had previously signed up. Since I'm now working a full-time job, I don't have the time to support or update the application on a regular basis.

This was my "pandemic project". I built early prototypes in Svelte that ran locally in the browser, and I found myself using this app daily to manage my work and personal lists. At some point I decided to make it something more real, as I outgrew the proof-of-concept's limitations. So I ended up migrating the app to Sveltekit (with the node adapter, which also provides a back-end server) and using Postgresql as a data store. It's free to use with no plan to charge anything for it.

I have thought about making it a standalone app using Electron, but I'm in no rush to do that conversion. If I do, I'll update this post.

Utilities

PST to JSON converter

I had an Outlook mail archive I wanted to dump so I wouldn't need to view it in Outlook (which I hate), so I made a command line utility to convert it.

NPMs

Javascript Libraries

Offin

Offin is short for Office Injector. I needed to inject some JSON data into some Office templates (Excel, Word, PowerPoint) using an easy/consistent API, so I wrote a wrapper for a couple pre-existing libraries. I use this to generate reports in Word, etc.

Sugar and Spice

I'm a heavy user of Sugar.js, this NPM, currently a work-in-progress, has some enhancements based on common functions I need when writing Javascript.

PG Forward Migrations

A tool for performing database migrations with Postgresql. This tool only does forward migrations.

Sqlite Forward Migrations

A tool for performing database migrations with SQLite. This tool only does forward migrations.

Hardware Integrations

Any time I get a "smart" device, I have an urge to write a script to communicate with it. It's an addiction.

Cyberpower Powerpanel Status

This is a script that can get the status of a USB-connected Cyberpower Uninterruptible Power Supply (UPS). I use this script to post periodic readings to a database.

Elitech RCW-800 WiFi Data Logger TCP Server

I wanted to have an Elitech thermometer/humidity sensor to send information to my local server instead of Elitech's cloud service. The sad irony is that less than a day after I managed to reverse engineer the protocol, the wifi on my unit broke, making the whole effort a little pointless.

EZCoo HDMI Switch Control

This is a script to control an Ezcoo HDMI Matrix 4x2 switch via USB.

Neewer GL1 Control

I reversed engineered the protocol for the Neewer GL1 wireless LED panel so that I could control it using my Stream Deck.

QingPing Air Monitor Lite Client

This is a fork I made of another Miio client so that I can poll my QingPing Air Monitor Lite for air quality readings. I populate a database with the data so I can see trends in air quality in my home.