Projects
Data Audit Tool
Elevator Pitch
Across North Carolina are hundreds of sensors installed to count pedestrians and bicyclists. When these malfunction, the counts that get sent back can range from subtly to wildly inaccurate. Planning decisions get made using this data, so these errors need to be caught, flagged, and removed from officially released count reports. The data audit tool is one module of the Non-Motorized Count Assurance Tool (NMCOAST) that provides a graphical overview of incoming sensor counts and allows auditors to review flagged data and flag data themselves.
Technology Used
I developed an API using Node.js to query count data and equipment data from a MySQL database. The count data was graphed using Canvas.js. Vanilla JavaScript was used to add interactivity for selecting counting locations, sensors, and the date range of data to display. Wireframing was completed using Sketch.
Unique Hurdle
At one point, graphs didn't visually indicate invalid days or days flagged as needing review. User feedback determined that this was an important feature, so I set off to make that happen. After digging through the Canvas.js documentation for custom tooltips I found a solution that could work. This required continuously crafting and refining SQL queries to keep load times minimal, but with plenty of collaboration with the team's MySQL expert, we were able to get what we needed.
Trip Maker
Elevator Pitch
For transportation systems, paper manifests for drivers make day-of updates difficult to share and require resources to be spent on transferring completed forms to a digitized database. Trip Maker is a progressive web application that provides digital manifests to drivers to help overcome these problems.
Technology Used
Built using React and the Material UI component library, this PWA interfaces with a centralized MySQL database via a Node.js backend.
Unique Hurdle
I'm still thinking of a good one to share. In the meantime, here are some pictures of baby animals.
Combo Mambo
Elevator Pitch
In the game Tetris, when a row on the gameboard is filled it gets cleared. Repeatedly clearing lines with consecutive pieces is called a combo. Combo Mambo is a game with a narrower gameboard and where your goal is to get the highest combo. It's fast-paced and unforgiving.
Technology Used
Combo Mambo is built with just HTML, CSS, and vanilla JavaScript. The gameboard is rendered using the Canvas API.
Unique Hurdle
Early versions only had two modes: what's now titled challenge mode and missions. In challenge mode, the game ends once a player's combo is broken (which is when a line is cleared but the next piece doesn't also clear a line). Watching people play revealed that some new players didn't know why the game was ending and got frustrated. This led me to create the mode '49 Piece Practice', where a combo breaking wasn't game over, and instead, your score just reset to zero (this mode's name comes from the round ending after 49 pieces). I found that this introduction to the game didn't as severely violate the expectations of Tetris gameplay that people brought to this game and provided a more forgiving entry to learn Combo Mambo's main objective.