- Date: 2006-2008
- Roles played: Information architect, web and database developer
- Development language: PHP
- Screenshot: See screenshots below
Problem: One of the primary things that design agencies need to be able to do is present work to clients during the course of the project. These presentations can’t always be done face to face, with conference calls often serving as a substitute. In order to have effective presentations, Sequence needed a flexible tool that supported a number of filetypes and presentation formats. Previous approaches using Flash or HTML clickthroughs were cumbersome, and often required special skills to create. They were also hard to modify and error-prone, and generally took a lot of time to create.
Solution: Packaged software didn’t really exist to support the flexibility of presentations desired, so we decided to build a custom, web-based tool using PHP and MySQL. The tool would have a client-facing view for reviews and downloads, and an administrative view for the creation of clients, projects and reviews.
Key features included:
- Object-oriented design: The entire system was designed around a set of core objects / classes (Clients, Projects, Users, Reviews, Files, Folders). A clean design made it easier to extend and scale the system.
- Granular permissions system: Clients often have situations where they have multiple projects, but a desire to limit visibility to certain users. As a result, a permissions system was created whereby multiple users could be created for each client, and user permissions could then be specified on a per project basis.
- Multiple presentation types: Sequence wanted to have at least three different styles of presentations: (1) simple group of images, (2) HTML clickthrough, and (3) a set of arbitrary files. The first presentation type (an “image set”) needed to be drop-dead simple to create, with as much automation as possible.
- Smart default behaviors: The system was designed so that metadata could be applied to files under review, but it was not required. As a result, it became possible to create reviews and just drop files into a folder, with no further action needed on the user’s part. The system would autogenerate thumbnails of files when possible, and default to using the files visible in the filesystem, rather than storing all of the information associated with reviews in a database.
Development challenges: The single largest problem with this project was one commonly faced in software development: creeping featurism. The system was built in stages over the course of several years, and refined repeatedly based on user needs and feedback. User adoption was a challenge, because people had ways of doing presentations that they liked, and were reluctant to change. Finally, the system underwent a significant redesign halfway through its life, which required a significant data migration effort.