Below are a few selections from the dozens of solutions we've built for our clients:

Event Promoter Leverages Technology To Expand Business

An Atlanta event promoter needed a ground-up design and development project to replace their current, non-dynamic web site. The project required a completely new design, graphics and functionality for the customer-facing site plus a new back-end management system that would:

  • Allow the company to pre-schedule the appearance of upcoming events.
  • Allow people to register for the company's mailing list.
  • Automatically resize, thumbnail and publish galleries of photographs taken during each event to two separate sites.
  • Allow site visitors to share photographs to friends directly from the gallery.

In order to eliminate software licensing fees for the customer and take advantage of the strong graphic processing power of PHP, we specified a WAMP platform (Apache running on one of the company's existing Windows server with MySQL and PHP). We worked with the client to create the user experience and wrote all the HTML, CSS, Javascript and PHP. Using MySQL we designed a normalized database schema, allowing the client to manage it via web custom web interfaces.

The front-end of the site was straightforward with PHP pages serving out HTML with jQuery. On the admin side, Javascipt translated form data into JSON and sent it via Ajax calls to a PHP API, with data returning the same way.

The company contracted photographers to take hundreds of photos at each event. Before the site re-design the the best 50 images were selected and photographers were paid an additional fee to resize, thumnail and watermark two separate sets of images (the company had an affiliated web site that published images under its own watermark). Back-office personel then manually built HTML galleries for each event and pushed them live. This process was time consuming, expensive and caused considerable deadline stress for the company's personnel.

We leveraged the GD Library through PHP to batch-upload, resize, thumbnail, watermark and FTP event photographs to folders on the appropriate servers (each server had its own unique watermark). Using PHP and Javascript again, we designed and built an image gallery that pulled the first thumbnail from each folder to compile a self-updating "gallery of galleries" menu page. Using similar logic, I wrote an ASP page that also auto-published galleries to an affiliated, legacy web site. All of this combined to turn a process that previuosly required approximately 40 hours of semi-skilled labor into a button click and 90 seconds of processing time.

Similar PHP pages with HTML/Javascript interfaces allowed the back-office to pre-publish/schedule upcoming events and specify thumbnails for a javascript-based slide show on the home page. The automation freed enough resources that the company expanded into an additional market (Nashville, TN).

Network Monitoring Widget

A satellite-based B2B broadband ISP had an extensive network and server-monitoring infrasctructure. Network performance and uptime were critical to their mission, so we designed and developed a system to distill mountains of monitoring data into simple network health alerts that could be inluded on any of the company's intranet pages.

The network monitoring data for dozens of network servers was stored on one of three Linux servers in RRDs (Round Robin Databases). Using PHP scripts on the servers we grabbed the last several active records from the RRDs and distilled the data, converting it to JSON. We then designed and built a Javascript widget that made regular Ajax calls to these PHP scripts on each server comparing the data to pre-set thresholds and displaying an alert when the numbers indicated potential network performance issues. The system was designed to work cross-domain allowing the widget to be included in any web page across the company with a single javascript include.

Task Management System

An independent project designed as a web-based solution for managing a person's appointments, contacts, links, to-dos and all the other bits of information in one's life. Think of it as as a smart, organizable, infinitely scalable, searchable, online bulletin board that could be selectively shared. We designed and developed the project from scratch with an HTML/Javascript front-end communicating with a PHP business layer via JSON Ajax calls and data housed in a MySQL database.

While designing the interface, we realized that similar applications failed by focusing exclusively on gathering information with little thought to retrieval and presentation. Most solutions save that data the way a computer does - namely, in one category or folder (single database table entry). Normally, a contact is stored under their name in your contacts - and lost forever if you can't remember their name.

In order to easily retrieve that kind of data, information would have to be stored the way your brain stores things - not in rigid categories. The system must somehow follow connection paths formed from networks of knowledge nodes that allow information to be approached from multiple directions. The solution was a database design that allowed any piece of information to be categorized as a relative of any number of other pieces of information - in effect making the database a closer model to the human brain's network rather than forcing the brain to think like a computer. Now your mortgage broker could be stored under his name... and under brokers... and under Brave's fans and under party guests and so forth - allowing him to be found by connecting all these obscure categories and seeing what they have in common. The next challenge came in designing an interface that makes this possible without making it tedious. Javascript was used to allow any two notes to become related simply by dragging one into the other. A simple solution to a very complex problem that works.

While common now, all of the interaction on the site occured through a single page. Login, note creation, note relation, keyword searchs and results, calendar layout, etc. all occured in a web page with windows that had drag/drop, open/close, min/max functionality familiar to any user of a Windows desktop - reproduced inside a single web page (long before this approach was common).

The growing ubiquity of Google and mobile applications made the project obsolete but it is still an excellent example of our end-to-end skills in product and interface design and leveraging lean resources and techniques to build useful, interactive web-based applications.