In January I set myself the challenge to build a Force.com application that would allow project teams to create small intranet sites, providing a modern channel to share information.
My requirements were initially very modest (e.g. display basic content), however, after crowdsourcing some ideas, I decided to target a more ambitious goal.
The following functional requirements were defined for minimum viable product:
- Basic content, including text, images, videos, links, etc.
- Posts, including blogging, success stories, release information and updates.
- Training, including training activities, status tracking and gamification.
- FAQ, displaying frequently asked questions as a customisable list.
- Trust, providing the status of products and/or services.
- Team, including the ability to share and manage team members.
To ensure the application felt modern and to help drive adoption, I also wanted to ensure the following requirements were met:
- No technical expertise required to create or maintain a site.
- Content can be created an updated using a rich text editor.
- Mobile responsive.
- Social enabled.
- A granular security model.
The diagram below highlights the basic application flow, where an author would select a “page type”, add their “content” and finally select a “template”. Once happy, the author can publish the site to a specific set of users.
The application architecture utilities 7 Custom Objects, 18 Visualforce Pages, 4 Visualforce Components, 16 Apex Classes, as well as Bootstrap and jQuery (including plugins). The diagram below provides an overview of the design.
Over four days (mostly in the evenings) I built the application following a Continuous Integration methodology. By the end of the first week, the application was fully functional, with 92% test class code coverage. The diagram below is a screenshot from the Force.com Schema Builder, showing the completed data model.
In early February, Site Builder went live in beta to a limited set of authors. The video below shows Site Builder in action:
I’ve also included a few screenshots, highlighting the responsive design.
Home Page - Fully customisable home page.
Blog - A list of blogs.
Training - A list of training activities.
Training Detail - Ability to launch training and get credit.
Update Detail - Updates, showing status, priority, etc.
Since going live, 33 Site Builder sites have been created, with 1,486 unique users accessing a site, resulting in 30,353 page views and an average session duration of 7mins 14 seconds.
Considering the speed in which Site Builder was developed and deployed, I’m very pleased with the adoption and look forward to opening up to more authors in the near future.