July 4, 2014

Case Study: Kollectables


Kollectables Community was founded on the belief that collectors, estate owners, eBayers, pickers, and business owners with inventory could use a place to collaborate, share, buy, sell, and trade their passions. Kollectables allows users to upload images of their collections to share publically or keep private. Businesses interested in communicating with audiences in a simple and visual way can display their shop online. The Kollectables platform allows you to create your collections quickly, add custom categories, select multiple files for upload, and update collection items in spreadsheet like format.

Design & Refine

The process started with a detailed analysis of the collection management industry, to see how others were doing it, if a separate system was needed, and if a separate system were created how best it could be used. The initial analysis found that the need for inventory or collection management was very industry specific, meaning what a cafe point of sale needed was very different than the needs of an online store selling comic books. The analysis also found that there was a need for non-externally facing inventory management, for usage on corporate networks for internal auditing purposes. The decision was to start with internally facing inventory management, and then to work outwards.

Overall system goals where developed, which were later worked into user stories accompanied by high resolution wireframes. The wireframes were used as discussion points for walking through the system with endusers in order to determine more detailed requirements. These discussions and decisions were then broken into different releases, for which task level details were developed. At this point the system was well enough understood and defined to begin development.

Architecturally the resulting system was best described as web portal, consisting of the standard three components: Front-end for presenting information to the user, a Mid-tier for processing information, and a Database for persistently storing information. The front-end was initially Flex based, but with the lack of adoption on mobile devices the Flex portion was replaced by more HTML5 friendly JQuery and Bootstrap solution. The Mid-tier was Java-Spring, which later became Grails once that more lightweight solution evolved. For the Database we used MySQL for relational persistent storage, and MongoDb as a NoSQL solution for storing documents and images. Later mobile platform support was added for Android and iOS using Sencha Touch.


Through continuous integration, every change resulted in unit testing, integration, and acceptance testing. Unit testing would verify code at the function level, integration testing would verify server-side functionality from the endpoint level, and acceptance testing would verify system behavior from a user perspective by executing automated tests in the web browser via HTML5 Robot. This allowed us to continually change the overall system while being assured that we were not breaking existing functionality, and the the front-end remained working in all supported web browsers. This level of stability also gave us enough confidence to be able to automatically deploy the system multiple times per day.