Building our Core Business Platform
The decision to build a new product
Over the years we have built a multitude of business systems that manage the data that drives the various projects we have worked on. These have varied from small platforms managing content for websites, to systems working with huge sets of secure personal data and everything in between.
The management systems were built from scratch for each project using some standard Microsoft tools. At the time they served their purpose well but, in this day and age, we expect a little more than just functional systems. Our clients rightfully expect fast, familiar feeling systems which look great and have a simple user journey.
With this in mind, we decided to build a new Core Business Platform for the future. It needed to:
- be fast and reliable
- look familiar to end users to simplify training
- employ a consistent and simple user experience
- provide simple and flexible tools to allow developers to build in new features quickly and robustly
- include a robust and flexible standard back end database technology to store all that vital data
- be future-proofed
The technology we chose for the build
We started investigating the best toolkit to use to develop the platform. After various prototyping exercises and lots of discussion, we plumped for the following technologies:
- Angular for the front end
There are several JavaScript frameworks around these days, the most prominent being Facebook's React, the lighter but excellent Vue.js and Google's Angular.
We plumped for Angular because it has a lot of built in tools to make it enterprise ready and those tools are being kept up to date consistently with Google's backing. The other 2 options are great in their own right. However, in order to obtain all the features needed for an enterprise ready admin system, we would have to use various 3rd party plugins with no guarantee that they would be kept up to date with the main technology stack. The all-in-one approach of Angular also means it is easier to bring extra developers on board without the learning curve required to get up to speed with various 3rd party plugins - if you know Angular you will be able to understand the architecture of our system.
- Material Design for the look and feel
Material Design is a set of standards from Google that are used across their suite of applications on all platforms. The design focus is very geared around accessibility and, as you will know from our previous posts, we strive to make our products as accessible as possible. More and more applications are using Material Design, which provides an immediate feeling of familiarity when people use our systems. In addition, Google have provided a set of pre-built components for Angular that can be used by anyone and will always be up to date with the latest Angular version.
ASP.NET core for the back end API We have a tonne of experience using Microsoft's web technologies, and the latest iteration is ASP.NET Core. It has only been around for a few years but is already a great platform to develop on. It also breaks with previous Microsoft programming technologies as it is cross-platform. We can build systems that can be run on Unix or Windows machines, and even create shareable libraries to let us use the same code on mobile and desktop apps.
MongoDB for the database
For several decades, almost all development was carried out using a concept called relational databases, where multiple tables store your data with links between the tables. Anyone who has used Microsoft Access will have seen this in action.
Recently the flexibility needed to store all the variations of data in the internet age led to the emergence of nosql databases. These allow developers to be free from various constraints enforced by relational databases, and are generally simpler to develop for, giving a faster time to live. MongoDB is super fast, a mature and reliable product and has great built-in features such as data encryption, allowing us to make sure that all that personal data is highly secure up there in the cloud!
Better and better
That was only the start though. We built the initial version of our platform and it was tested diligently by our client Bright Blue Day. Once it passed their standards, we worked with them to use it in several joint projects.
Our Core Business Platform is now on its 3rd iteration and we are very happy with the feature set we have included. Out of the box we have:
- a fast reliable data storage mechanism
- quick search listings
- standardised templates for create, view and update screens
- a robust and granular user permissions implementation, right down to button click level
- a standardised development methodology for new features allowing us to focus on making great functionality rather than constantly reinventing the wheel
- multiple colour scheme themes
- a keyboard navigable user interface
We are really enjoying developing for our new platform. We are now in a brilliant position to build great custom features to help simplify your business processes, or build that killer web application you have been thinking of.
Ian Williams
23 Dec, 2019