Fly Buys is New Zealand’s leading loyalty programme and is managed by Loyalty New Zealand. Fly Buys members receive points for shopping at participating stores, which they can then use to redeem a variety of rewards from coffee machines to television sets. The Fly Buys website allows members to search for rewards or participating companies, maintain their account information, as well as allowing Loyalty to maintain content and graphics for the site.
Late last year Loyalty engaged Provoke to help redesign their website using MOSS 2007. This post describes how we used MOSS 2007 to deliver a dynamic and user-friendly website.
Loyalty wanted a new website to coincide with their brand refresh. The previous Fly Buys website was hard to maintain and unintuitive for users. Content often had to be updated in several places, or required developer intervention. Loyalty wanted a vibrant and user-friendly website that the marketing team could own and update easily, without developer intervention.
Some of the key objectives for the site were to:
- Make it easy for the marketing team to manage content
- Encourage people to join the programme
- Encourage members to be more active in redeeming rewards, and in engaging with participants
- Provide an easy way for maintaining semi structured data, including rewards and participant information
Our solution used MOSS 2007’s Web Content Management and platform capabilities as a foundation, with ASP.NET 2.0 components providing additional functionality when needed. Not having to create any WCM features allowed us to focus on the visual design and custom development, and complete the build phase of the project within the scheduled 7 weeks.
All content and images within the site are sourced from MOSS lists and rendered using master pages, page layouts and web parts. These can all be managed by members of the marketing team and are subject to an approval process before being deployed to the production environment.
Custom development was all done using Visual Studio 2005 and deployed using the WSS 3.0 solution deployment. This has meant releases can be combined into a single package and deployed via a single script.
Public vs. Publish
There are two sides to the Fly Buys website, an internal content authoring environment and the public facing internet site. The internal content authoring environment uses Windows authentication within the Loyalty environment, drawing users from Active Directory. This provides the marketing team with an accessible and secure environment for managing content. Standard MOSS 2007 Web Content Management features also make it easy to control the look and feel.
The public facing website uses a custom forms based authentication implementation built on the ASP.NET 2.0 provider model. This allows us to integrate with the existing membership application to authenticate and manage account information. Using forms based authentication also allows us to take advantage of the ASP.NET 2.0 login controls, as well as standard ASP.NET 2.0 authentication and authorisation techniques. MOSS’s Content Deployment capabilities are used to move content from the internal content authoring environment to the public site.
Master pages, content types, page layouts, web parts and other MOSS components were all created and deployed as features to create the website.
The master page was based off a minimal master page and serves both the content authoring and public facing sites.
Content types and page layouts were all created inside Visual Studio and deployed using a feature. This means that these files are stored on the file system, instead of the content database, improving performance and making future releases easier.
Many of the pages on the site required custom development. These include the member related forms (join, update details, create password etc…) as well as the reward search and display. To create these pages we created user/web controls inside Visual Studio and placed these on pages within the site. To give our designers full control over the UI for the site, we render the output using XSLT.
A solid deployment strategy is crucial for a smooth release process both initially and for subsequent releases. The deployment of the Fly Buys website is controlled entirely through solution deployment. This meant that the majority of the initial release was completed via a single script that ran STSADM commands. Subsequent releases have also been completed using a single ‘upgradesolution’ STSADM command, making the release process a breeze. This includes:
- Creating and updating sites, lists, list items and pages (via features that use the object model)
- Deploying master pages, page layouts, content types, style sheets and images (ProvisionedFiles within a feature)
- Deploying user controls and custom assemblies (via solution deployment)
- Configuration modifications (via FeatureReceiver)
We found the WSPBuilder project on CodePlex great for automatically creating the solution packages.
Lists vs. SQL
As well as the content pages, the site contains structured data such as reward and participant (a company who issues points) related items. Early on in the project we discussed the pros and cons of storing this information in SharePoint lists or in a custom SQL database. We liked the versioning, approval and editing features provided by SharePoint lists but were concerned about limitations around querying over multiple lists (i.e. as in a SQL ‘join’). To get around this our solution uses SharePoint lists to manage and publish the data, but uses a custom process to export this information into a SQL data structure that is optimised for fast searching.
This architecture allows content authors to utilise list feature such as custom views, and bulk editing (shown below), while retaining the ability to create complex cross-list queries for displaying this information. For example the random display of rewards on the homepage shows items from a de-normalised table that sources data from several lists within MOSS. This solution also means all content can be deployed using a single content deployment job, simplifying the publishing process.
Below: Some of the possible actions available from the reward list.
To make it easy for content authors to maintain this list data we created a set of screens that replace the default ‘edit item’ forms. This extended control over the UI allows us to provide a more friendly user experience. Within these screens SharePoint field controls are used to provide rich HTML editing functionality as shown below.
In subsequent posts I’ll provide more details around the deployment strategy. Please leave a comment if you would like to know more about any other aspect of the project.
The Fly Buys team from Provoke was
Chandima Kulathilake (Solution Lead)
Ari Bakker (Technical Lead)
Zef Fugaz (Design & User Experience Manager)
Sarah Lewis (Account Management)
Marty Pine (Project Management)
Bob Medcalf, Kate Insoll (Design & User Experience)
Isha Hartono, Callum McNeill, Julian Clarke, Pablo Garcia, Doug Taylor, Dean Moor (Development & Integration)
WSPBuilder on CodePlex – Automated solution packaging