What is SmartGolfa?
SmartGolfa is a web and mobile platform that allows users to play golf at their own pace. Users are able to buy golf packages that can be used throughout a network of courses in Sweden, according to their schedule. This service started in 2009. Since its launch, the platform has experienced continuous growth.
The idea for SmartGolfa was born from the simple concept of making golf more accessible, digitally and opening the market to a new audience, by keeping costs down.
The app allows users to book start times on 60+ golf courses and buy greens fees. Users also have the option to be rewarded with free greens fees by recruiting friends. Users log in with their phones to purchase packages that can be used via their account throughout the golfing season.
Miracle Mill started the cooperation with Smartgolfa in 2016. When Miracle Mill took over the development the site was deployed in a WordPress setup. As the business model grew it was time to build a custom platform that would allow for future scalability, mobile access, and more interactivity. The platform was initially deployed to Azure.
In 2018 it was identified that due to the ambitions of the client and the growth of customer base the platform needed a significant investment both in terms of features and infrastructure. An Agile collaborative approach was set up together with the client and a plan was put into place that gradually started using more cloud services. By mid-2019 the services have been deployed predominately “serverless” on AWS.
Since 2018 the team was comprised of the client Product Owner and CEO working alongside Miracle Mill’s CTO and development team, consisting of four engineers, one QA engineer, and one designer. This cross-functional team was assembled to work in an Agile capacity to ensure deliverables were on time and up to the predefined standards. We began to structure the migration plan that would be systematically completed. In addition to AWS services the platform is utilizing, Angular, Node.js, Cordova, Salesforce integration, and Klarna for the payment system.
Challenges & Plan
In 2018 one of the continuous challenges the project was facing were limitations in the current customer relations management. This triggered the team to move certain parts of the system into Salesforce while at the same time convert the remaining items to fully utilize the serverless services that had become available in AWS. In addition, a significant effort was put into making the system fully multi-brand enabled, which means the platform can be used for other brands and partners.
In order to manage content in an efficient way, all content was moved into Contentful while the translations are now managed in Locize.
We engaged in stakeholder interviews and daily conversations with the core team. The goal was to help articulate the goals and objectives for the changes. We also wanted to showcase how AWS could help the SmartGolfa platform, in terms of scalability, security, and cost savings. Helping them understand how they would benefit and how we would make the transition was our main objective. We wanted to validify how we could use AWS to solve some of the complex issues we were facing on the previous platform, while at the same time reusing the components that work well.
- Cloud Readiness Assessment
- AWS Migration
- Operating Model Design
- Security and Compliance
- Cost Optimization
- Agile Coaching
We knew that SmartGolfa would gain operational productivity and flexibility by moving to serverless. For example, costs will be closely related to traffic and therefore revenue. There will not be any scaling issues as the service grows in popularity and more services are integrated into the platform. We proceeded to assess cloud readiness and create a plan for the initial migration and future goals.
The first step was to set up a code pipeline that enables us to use continuous integration and also prepare the platform to use continuous deployment. Certain components were gradually changed and moved such as authentication to Cognito and backend code was moved to lambda functions. Step functions are used for anything that requires transactional safety and data was moved into Salesforce gradually.
Migration & Results
After approximately nine months of work, the following AWS services had been implemented with all corresponding data migrated successfully. In total, the project is utilizing multiple AWS services for development purposes and client interaction purposes.
The following are some of the core AWS services being utilized to enhance the platform. Lambda is being used for backend API calls. Step Functions are being used for functions that take longer than a few milliseconds to complete, and also where transactional safety is required such as bookings and purchases. CloudWatch is being used for surveillance and S3 for storage. Both the frontend and the backend utilizes an API gateway to front the customer and provide efficient service. Cognito has been extended with plugins for authentication for mobile and web using Amazon SNS for SMS notifications. MongoDB is the database in use. The next goal will be to migrate this to create an entirely serverless platform.
The web client is deployed almost 100% serverless with server-side rendering and all PWA features enabled, which enables the user to install the PWA with minimum efforts. There is also a version of the app deployed to Google Play and Apple App Store for users who prefer to install the app using the stores in their phones.