NodeJS Web App

Tasting Party Web App

The Tasting Party web app was a new concept that would allow customers to create and host their own tasting event using a wine starter kit that my company provided. The main features of the tasting party app included:

The main features of the tasting party app that had to be included were:

  • Create a wine tasting party as a host
  • View all your tasting parties as a host
  • Edit an existing tasting party as a host
  • RSVP to a wine tasting party as an invitee
  • Send email notifications for upcoming parties, RSVP emails to host and invitees, event reminders, changes to the parties

I decided that we should build this app using a REST API approach, we prototyped the whole project in a 2-night hackathon using the MEAN stack. I enjoy rapid prototyping before building out a project because you can test out the technology and help to understand where you might get stuck. I was the lead developer on the project and had 2 other front-end developers on the project.

Once we had developed the prototype and showed it to the business, we had to build a production web app. The best approach was a cloud-based web app that we could integrate into our website using REST API’s, this is the preferred approach for most projects, as it allows us to use a JavaScript templating engine to create the views that are tied to the backend data.

Technology Used:

  • Appcelerator Arrow – to build the API’s using NodeJS – hosted in the cloud
  • Postmark – Transactional email for web apps with a really nice REST API
  • Compose – A cloud-based database service with backups, we used Mongodb

The project took about 3 months to complete from analysis, design to production build – it went live in August 2016. It was a fun project, that allowed myself and the team to get our hands dirty with building a web app using JavaScript for both the front-end and back-end.


Mobile Projects

My Wine Cellar Mobile App

I was the lead developer, architect and project manager for the My Wine Cellar Mobile App project at Direct Wines. The app was designed to be used by our existing customers to easily add favorites, dislikes, and ratings to their wine cellar. We used the Appcelerator Titanium platform for building the iOS app using JavaScript, HTML, CSS.

The app’s features include:

  • Browse your favorites and not for me list
  • Browse your purchase history list
  • Browse your ratings list
  • Quickly snap a photo of a wine that you are drinking and rate it, favorite it, or add it to your dislikes list
  • Purchase a wine from the above lists or one that you take a picture of

The app has a feature to allow customers to take a picture of a wine bottle and get more information about the product and/or purchase it. I built an API wrapper using the Appcelerator Arrow platform to integrate the Tineye Image Recognition API into the mobile app. The API allows the customer’s photos to be backed up in the cloud, which also allows the Direct Wines team to go back later and tag any pictures that were not matched at the time the customer took them. The photos are also sent up to tineye for image recognition matching. I built a nodejs app that allows Direct Wines to easily upload reference images to the image recognition database and also get reporting on successful matches and tagging back customer’s photos to the database to help improve the match rate.

This was a fun project that allowed us to work with Third Party REST API’s, Mobile apps and learn new technology, all with only 2 people on the app development team. My future goal would be to convert this to a React Native app.

The project took about 6 months to complete, which included analysis, requirements, design and development. We deployed this app to the US and UK app stores in May 2016.

NodeJS Web App

Case Cobbler Web App

The Case Cobbler web app an internal tool we use to build product case images using a set of templates, this was originally a PHP app developed by an outside agency. I decided to re-develop the app using the MEAN (Mongo Express Angular Node) stack. 

The old tool was limited in features, so I took the rebuild as an opportunity to add new features that included:

  • Ability to easily add new templates
  • Automatic resizing (we have 3 different sized images, the previous tool only produced 1 image and a designer would have to resize the other 2)
  • Case images are uploaded directly to production when completed
  • All completed cases configurations are stored in MongoDB

Technology Used:

  • NodeJS
  • MongoDB (local instance on the server)
  • ImageMagick
  • AngularJS for the front-end views

This project took about 1 month to build and was very challenging, I had never worked with ImageMagick before and had only a few interactions with Node. What drew me to node was the fact that I could access the file system and use ImageMagick in the command line to do all the image processing. I also used Node to move the completed files to production, the team was very happy with the new tool.

Web App

My Wine Cellar

The My Wine Cellar project was developed using REST API’s and the AngularJS framework. The goal of the project was to give customers a place where they could record favorites, rate their purchases, see all their purchases in one list, add their dislikes and quickly reorder their favorite wines. The project has been very successful in a number of ways. 

I was responsible for pushing the backend team to implement REST API’s as it would give the front-end team more flexibility in building a better customer experience. The REST API approach has definitely been the correct one and since this project we have been able to build more exciting features using the REST API’s and different JS frameworks.

The project took about 3 months to complete, it was built to be used by all markets (10 websites) and went live in April 2013.


Mobify Website Rollout

I was the lead on the mobile web strategy (project management, design, build and maintaining) for 8 mobile websites for US (4 sites), AU (3 sites), and HK (1 site) markets utilizing Mobify Co-development solution and manage vendor relationship.

Technology used:

  • Mobify Cloud Software
  • JavaScript Dust Templating
  • CoffeeScript
  • NodeJS build tools
  • HTML, CSS, JavaScript
  • jQuery

The project took 1 year and was completed in 2013. The project was such a success that Mobify did a case study on it, you can watch it here.


ATG Website Front-end Rollout and Redesign

This project involved converting 9 websites from a .NET platform to the Oracle ATG eCommerce platform. We started with 4 US white-label websites, then rolled out the AU white label websites and then finished up with the 3 UK white-label websites. All the websites share a common code base using JSP, HTML, CSS, and JavaScript.

The project took 9 months and was completed in 2011.