Adora is a marketing CMS platform that is currently being developed by Global Vision and is being built to replace their highly successful current offering, Eureka. The driving force behind Adora is communication, not just marketing, through all effective communications channels. Using Adora, marketers will be able to communicate effectively with consumers and be able to maintain a complete picture of consumer relationships to their respective brands.
As Global Vision made the decision to develop the Adora front-end using Microsoft Silverlight (at the time a very brave move – Silverlight 1.1 was VERY limited compared to Silverlight 3!), New Media Labs was asked to provide some assistance in the development process. With full-time in-house User Experience (UX) designers and interface designers from Stonewall+, this project has really brought to light the power and flexibility of the Silverlight platform.
Design of Adora
The application is built along a classic Model-View-ViewModel (M-V-VM) architecture and utilises a custom-built framework for this that supports all the required elements. We had a number of technical challenges to overcome along the way, mainly related to data storage and using the same Domain model on both the Client- and Server-side. Most of these issues are posts in their own right and will be covered in the near future.
Adora consists of many layers, each with its own set of technologies. Starting from the client and working our way to the backend:
- Client
Silverlight 3, utilising the Silverlight Toolkit and numerous custom-built controls. - Services
The application services are provided by WCF services that are hosted on the server. These are communicated with using a custom-built data-contract serialiser. - Data storage
Data storage is provided by SQL Server 2008 and data goes through many stages of filtering and matching to ensure maximum data integrity. - Messaging
A messaging and scheduling engine resides on the server side to handle all email and SMS communications with consumers. Messages received are linked to the consumer’s profile.
The Development Process
The goal is to deliver a product that is not only scalable, flexible and fast but is also pleasant to use with minimal or no user training. With a team consisting of UX designers, developers, graphic designers and QA testers, we are continuously and iteratively tweaking the design. Using an Agile approach has allowed us to make fast-paced design changes whilst ensuring that the end result not only looks good, feels good and performs well but also matches the expectations of the Product Owner.
We currently employ a mix of various established practices – test driven development, peer reviews, daily stand-ups and whiteboard sessions are some of the things that we do every day.
Interface Design
Adora’s interface borrows heavily from concepts used by Windows Explorer to allow users to work in a familiar environment. For example, “folders” represent brands and “files” represent elements such as email lists, creatives or even communication schedules.
Wireframe designs are created by our UX designers and the initial development work to implement functionality is done by the developers and testers. Whilst this is taking place, the interface design is UAT-tested by the UX designers – the interface is then sent to Stonewall+ for “polishing” and styling. Due to Silverlight’s dynamic binding model, it is simple for the developers to drop the finished interface on top of the functional elements built.
All work with consumer populations is graphical – that is, instead of reams of confusing numbers that may not appear to have any significant proportions or relationships, Adora presents interactive graphs. A user with little or no SQL knowledge is able to build up complex queries very quickly with this system and it provides a “quick-glance” overview of the consumers that the user is currently communicating with.
Adora Query Language
Central to Adora’s success is our own query language that we have developed: Adora Query Language, or AQL. With a syntax that is similar to SQL, AQL allows developers to retrieve consumer related information using queries that are business oriented. If that doesn’t excite you, how about this:
SELECT firstname, lastname, age FROM brandname WHERE gender=’male’ AND age>25
The result of this query is a list of consumers within the “brandhouse” brand that are male and over 25 years of age. A complete subset of SQL is supported, including ORDER BY, GROUP BY, INTERSECT, UNION and many more. On top of this, we have our own extensions to the language that allow us to apply pagination to data results or to even group data into ranges. The result? Our developers can focus on working with data, not on retrieving data. It is envisioned that future versions of Adora will allow 3rd party vendors to create add-ins to the Adora system using AQL.
What’s next?
Still to come – details on the technical challenges faced and more screenshots! Beta 1 is scheduled for release in January 2010.
An introduction to Adora



No Responses to “Creating the Adora CRM with Global Vision”
Trackbacks/Pingbacks