Financial Overview Tool

Key Technologies: HTML, CSS, JavaScript, CSV, Chart.js

I really wanted a quick and secure way to get a breakdown of my spending without having to give up my banking details to a third-party. For the longest time I was using an excel spreadsheets and doing a lot of work manually to categorize transactions and compute totals. One day I decided to just build my own tool!

  • Chase’s developer API is invite only, so used their csv data dump option
  • Lots of pre-work happens before rendering the charts, data from csv is converted to objects, grouped by months, computed for totals/averages/etc., and then categorized by user inputted data
  • The transaction list allows me to flag what category a transaction should fall under – under similar transaction will automatically be assigned that category unless explicitly overwritten.
  • Using chart.js to render the charts – this framework is incredible and really easy to use

Below is a video of what I settled on for a v1. It does everything I need it to quickly, and makes understanding where I’m spending my money clear. Some future enhancements will include:

  • Monitor Chase’s API to see if it opens up for normal developers
  • Flag transactions that fall outside a specific variance (unexpected transactions)
  • Show top 5-10 places I’m spending money, e.g. how much money am I spending at Chipotle!
  • Add pagination for transactions list
  • Show YOY information and trends
  • Add ability to layer in a second account
  • Refactor code to reduce redundancies in calculations
Example with fake data.

Custom Urban Airship Message Center Templates

Key Technologies: HTML, CSS, JavaScript (with jQuery), UA Console

To make a better guest experience I was asked create some new html templates to be used in our app’s message center (powered by Urban Airship). Although this used technologies I already knew, there was a ton of specialized learning to understand how all the pieces fit together.

Some key callouts were: understanding how the html entities needed to be prepared/attributed in the template creation process so that the UA CMS sees them as editable fields, exploring how the UA webview creates a JS bridge and passes a UA object to be used by template at run-time, and how the template itself reaches out to UA for user specific data with the help of data passed in the CMS process.

End result
Original email
Custom editable fields within UA CMS

Ulta Smart Mirror – Pilot

High-level overview:

  • Informative walk-by video
  • Browse products by featured category, add products to a collection and then text yourself that list
  • Scan products and get information/reviews quickly with the built in UPC scanner
  • Learn about our rewards program and text yourself a link to sign-up
  • Play around with the build in lights and lighting presets
  • Watch how-to tutorials videos
  • Try on virtual lipstick
  • When all else fails, use it as a mirror!
Video overview of features (screen capture over rendering)
Full view. Tap for larger view.

PTS Explorer

Key Technologies: Bootstrap (HTML/CSS), JavaScript, JSON, and AR QuickLook

PTS Explorer is a quick way to find instagram photos of a given PTS (paint to sample) color. A few months ago I noticed there were many Instagram accounts centered around PTS colors – this worked well to see many examples of different colors, but what if you didn’t know all the colors, or wanted to see many examples of a certain color?

These questions prompted me to create PTS Explorer.

Responsive layout using Bootstrap. Tap image for larger view.
Filter colors by name. Tap image for larger view.
Filter colors by hue. Tap image for larger view.
View instagram photos tagged with color. Tap image for larger view.
Example 2. Tap image for larger view.
On iOS12 via Mobile Safari preview colors in AR QuickLook.
Use photoshop scripting to quickly generate swatches from JSON data file.

https://www.ptsexplorer.com

Command for Mac

Key Technologies: RS-232, Hex, and Cocoa (Mac)

Command for Mac is a [native] application I built to run DCC trains on my office layout. It works by using the USB Interface for Power Cab to bridge the gap from the computer to the NCE cab bus. The application uses the RS-232 serial interface to send hex commands to control the locomotives.

The application’s main interface can be accessed from the OS menu bar, this interface allows you to open the manage the connection, add/remove trains, and create new throttles.

Want to develop your own application? Hex command documentation can be found here.

Menu Bar Application. Tap image for larger view.
Manage Trains Window. Tap image for larger view.
Single Throttle. Tap image for larger view.
Multiple Throttles. Tap image for larger view.

Intern Project – ARKit!

Key Technologies: Swift, ARKit 2, Cinema 4D

I had the distinct pleasure to help with this year’s intern project – a proof of concept app to test out viewing virtual makeup with augmented reality.

We chose to model a popular Nar’s lipstick that was visually interesting, and had some great colors.

  • Created the mesh and animation sequence in Cinema4D / took accurate measurements to endure model closely matched its real-world counterpart
  • Exported as Collada file
  • Imported into Xcode and converted to SceneKit file
  • Textured in SceneKit
  • Changing the mesh material at runtime to show off different lipstick shades
  • Added scene lights for realistic plane shadows