Case Studies

Building a data-driven B2B subscription service, for BOAT Pro

BOAT Pro is Boat International Media’s market Intelligence product for the superyacht industry.

When Boat International Media wanted to develop this sophisticated, data driven B2B subscription tool, they approached Byte9.   Byte9 were able to provide architectural oversight, full-stack JavaScript development, continuous integration, deployment infrastructure and AWS SysOps deployment skills for the development of the BOAT Pro product.

The Brief

The brief was to provide a shared source-code solution, working with the Boat International in-house development team, that they could take ownership of and then continue development, in a 'co-sourced' environment.

The challenge was to produce a system that draws millions of data points from a number of real-time sources, including Boat International’s Superyacht Directory (SYD) database and to allow dashboarding, charting and industry analytics, with real-time location and mapping data, to the yacht industry at large, including brokers, intermediaries and suppliers to the industry.

The Byte9 Solution

Byte9 worked alongside the Boat International digital team to create a super-performant, upwardly responsive, full-stack JavaScript solution built with NodeJS, MongoDB with an AngularJS front-end. An API framework and database adapters allowed for the easy acquisition of data, from different sources. Interfaces were created in AngularJS to allow non-technical users to create data ‘widgets’ and charts, that can be made available in dashboards for different client user-groups. Clients can additionally use the Elastic Search driven search across yacht and brokerage data and create their own dashboard tools for yacht data and industry reporting.

The application is supported by full Chai test assertions, running in Mocha and the application deployment is containerised using Docker, with the code managed in GitHub and deployed using CircleCI, which runs both the tests and linting, to maintain code quality and standards. BOAT Pro also utilises SNYK to manage code smells and to manage any security vulnerabilities across all packages used in the application.

BOAT Pro uses two types of continuous deployment. Firstly, deploying a serverless environment to Amazon Web Services (AWS) using Circle CI and Serverless Framework via AWS CloudFormation Templates. The CloudFormation template creates a serverless environment, the API gateway, an AWS Lambda Function and an AWS S3 bucket which stores the application code, CloudFormation then takes that code and deploys it on a an AWS Lambda function. Using Circle CI to trigger instances on demand allows Boat International to perform both tests and health checks, that utilise an environment for only the time that it takes to perform the tests and return the results.

The other kind of Continuous deployment utilises AWS Elastic beanstalk.  Elastic Beanstalk provisions the infrastructure and helps manage the BOAT Pro application. Using AWS Auto-Scaling Groups and AWS Elastic Load-Balancing allows Boat International to save on hosting and SysAdmin overhead. Immutable deployment allows us to update the platform with the latest patches and updates ongoing, without any down-time at all. Between CircleCI and AWS elastic beanstalk we are using AWS CodePipeline, which is picking up the code from the S3 bucket and delivering it to Elastic Beanstalk.

The BOAT Pro application is also using AWS CloudFront to deploy the front-end, which allows us to take advantage of the AWS backbone network and CloudFront edge servers to optimise delivery of the application and yacht data globally.

Additionally, we have delivered discrete micro-services for system notifications, using AWS Simple Notification Service, AWS Simple Email Service, and AWS Simple Queuing Service to allow BOAT Pro to manage all push notifications and emails in an elegant and scalable way.

The Result

Commercially the BOAT Pro application has been a tremendous success for Boat International Media. The recent addition of the world’s first AIS data Global Fleet tracker, by the Boat International in-house team, allows subscribers to build custom maps and reports based on yacht’s historical activity has really set the product apart, and is testimony to the collaborative, co-sourced approach to product development and management.

From a development perspective the co-sourced solution has allowed the Boat international team to work seamlessly with the Byte9 team to manage ongoing design and functional change, as we iteratively improve the BOAT Pro application. We are working as a contiguous team, pair programming, reviewing pull-requests, providing technical project management oversight and with full integration of testing, deployment tools and communication in shared Slack channels and within Jira.

The project continues to be a very successful collaborative effort, that is leading to industry leading results both within the yacht industry and best practice, full-stack JavaScript web application development.

"Easily the most productive relationship with any developer. They have one of the cleanest development processes anywhere…"

Katleen Richardson, Marketing Director, Kogan Page