Bitmove

Bitmove is a marketing company which specialises in interactive photo and video capabilities that allow final users to create fun and unique photos/videos using customers brand as a medium. The result is a personalised message from the final user and the customer's brand spread online via social networks and email.

With the Bitmove Messages Tools consumers can easily make unique videos and photos of themselves and share them with their friends through email or social network sites like Hyves, MySpace or YouTube.

Sourcesense set up a set of web applications permitting bitmove to manage the whole process of creating and administer the cabinets, the messages coming in from customers and the emails going out to friends. The goal was to keep the software in the cabinets as simple as possible, trying to concentrate the complexity of the application in the central server where the web applications run.

When defining the structure of the whole application Maven was chosen as tool to structure every single java project and to manage the integration between them. Thanks to the convention over configuration approach whoever ever worked with maven will find the code easily readable and immediately understandable from the first glance. Maven requires an organized folder structure in order to manage all the lifecycle phases in the development, packaging, testing and deployment of the web applications; this helps developers to structure their code in a way which is common in the industry.

The whole application was organized as a set of modules. The core one contains the proper business logic code and the code for the interaction with the database and the operating system. The other modules, each corresponding to a different web application will all access the core package to get the classes to perform the basic actions. This was simply realized by defining the core project as a dependency in the other web applications modules. In addition to basic features provided by standard maven plugins, we used the cargo plugin to handle automatic deployment.

For the individual web applications we chose to use Spring as a framework. We used the spring framework both for the very basic features as the Inversion of Control (Ioc) realized via the Dependency Injection and the MVC web flow.