Portfolio


EventsList – Angular web app with CloudKit backend and iOS syncing

(In Progress) A web app for managing a live database of film screenings and events at an independent movie theater. After making updates, administrators have the option to “publish” which kicks off a remote notifiation that will push changes to a companion iOS app. The project design puts into practice Apple’s recommended techniques for implementing CloudKit as a data transport mechanism. View the web app on GitHub. The companion iOS app is available on GitHub.
HTML SCSS JavaScript AngularJS CloudKit
Developed and Designed by: Dave Hanagan

___

ImagePicker – JavaScript tool for cropping images to a specified aspect ratio

A frontend tool for selecting and cropping images in the browser. My task was to give the user a way to select an image from their file system but with the added function of easily cropping and resizing the image to a predetermined spec. The project makes use of HTML <canvas> elements, one to hold the selected image and the other to render an overlay box to indicate the cropped composition. A non-trivial amount of time was spent reviewing the technical spec for the many flavors of JPEG and PNG file formats in order to derive image dimensions from the raw data. View on GitHub or CodePen. A blog post describes some of the intent and implementation details.
HTML CSS JavaScript
Developed by: Dave Hanagan

___

Art House Box Office – Angular web app with MEAN backend

A web app with box office analytics for movie theater owners to make better curatorial decisions. Theater owners submit attendance and admissions data for movie screenings so that anyone can see aggregated results and compare national trends against their own theater’s performance. My contributions included wireframing and UX, data-modeling, front end architecture, coding the database analytics, implementing ChartJS and the query page features. View on GitHub.
HTML SCSS JavaScript Node.js AngularJS Express Chart.js Mongoose MongoDB
Developed by: Don Chatelain, David Goodwin, Dave Hanagan, Yvonne Hayes, Johnny Luangphasy
Designed by: Dave Hanagan

___

Conference-Connect – Web app with MEAN backend

A web app with REST API for conference attendees and organizers to share information. Organizers list conference sessions and track topics as available tags. Users can then post informative comments and add topic or sessions tags to their message. My contributions included data-modeling, routing, the filtering and settings features and API documentation. View on GitHub or a mock site (login with user: dave and password: dave for full access).
HTML CSS JavaScript Node.js Express MongoDB Mongoose
Developed by: Allison Davis, David Goodwin, Dave Hanagan
Designed by: Allison Davis

___

Gear – iPad app with LAMP backend

A custom iPad app for managing equipment inventory and checkout procedures. It serves as a task manager and as a catalog of inventory, classes and users. The app relies on a shared server as a data source so that multiple iPads can be deployed concurrently among staff members. Equipment is labeled with QR codes for easy scanning to look-up or checkout pieces of gear. View on GitHub. I have blog posts describe the app in more detail.
Objective-C Cocoa Touch PHP MySQL CloudKit
Developed and Designed by: Dave Hanagan

___

Kitsch Player – iOS music player app

A music player for iOS devices. It plays the music on the device’s music library with an interface and functionality reminiscent of transistor radios. Users rotate a dial to tune into different stations with randomly generated playlists. For the iPhone or iPod, the user can swipe to display one of four different skins.
Objective-C Cocoa Touch AV Foundation
Developed and Designed by: Dave Hanagan

___

Film Transfer – OS X app for image capture and device control

Using a modified HVX200 video camera, I created a system for the digital capture of images from Super 8 and 16mm film. Software made for a Mac is the controller, receiving a video stream from the camera and operating a mechanical film projector. It uses an Arduino micro-controller to manage the communication between the Mac application and the film projector. Objective-C and Arduino code is available on GitHub. Here is a video demonstrating the device.
Objective-C Cocoa Touch AV Foundation Arduino
Developed and Designed by: Dave Hanagan

___

Armies Vs Spies – iPad Strategy Game

(In Progress) A project in progress to replicate an ‘80s strategy board game called Supremacy on an iPad. The current codebase is an interactive game board with army and navy pieces that users can move around the board and engage in battles. Objective-C code is available on GitHub.
Objective-C Cocoa Touch
Developed and Designed by: Dave Hanagan

___

NW Film Forum Box Office – OS X desktop app with LAMP backend

An OS X desktop app created for Northwest Film Forum to use in the movie theater box office for making ticket and concessions sales. Before the app was implemented, staff used a cash register and tore tickets to track attendance. The app saved the house manager an average of one to two hours of work everyday, by eliminating the daily paper and pencil inventory tracking and reconciliation.
Objective-C Cocoa PHP MySQL Brown Paper Tickets API
Developed and Designed by: Dave Hanagan

___

Artist Portal – Web app using LAMP stack

A site for people to apply to grants offered by Northwest Film Forum. Projects are submitted with an online that is generated with HTML, CSS and PHP. Data is saved to MySQL. Implementing the site eliminated a paperwork hassle and saved the project manager 50 hours of work per year. The site is no longer active but a mock site is available.
HTML CSS PHP MySQL
Developed and Designed by: Dave Hanagan

___

Radio iPod – Transistor radio with guts replaced by iPod and Arduino

I always felt a desire to interact with the music player on my iPod in the same way I interact with a transistor radio. By making a custom iOS app and using an Arduino micro controller, I can control the music using a tuner dial. At start up, the iPhone generates 11 stations of music using the music library on the device, and I surf the channels using the very same tuner dial that had come from a transistor radio. I even went so far as to package the entire apparatus inside the shell of a tabletop radio to make it fully convincing. Arduino code is available on GitHub. Here is a video demonstrating the device interaction.
Objective-C Cocoa Arduino
Developed and Designed by: Dave Hanagan