Join Gymbox

Creating a new membership joining portal for the most popular Gym chain in London

www.gymbox.com/join

Gymbox, Forty Eight Point One

Project Overview

The disruptive London based gym chain, Gymbox were in need of a new, flexible, performant membership sign up platform that would sync bidirectionally with their back office software solution, their payment gateway providers and also be hugely configurable via a CMS.

The Challenges

  • Sync hundreds of membership package variants from back office to CMS
  • Accurately calculate applicable membership fees taking into account a multitude of variables including; single or all gyms access, credit card or direct debit payment method, promotional offers, contract length, membership level, day of the month of sign up for pro rata payment corrections and monthly or annual payments.
  • Process payments using an online secure checkout using Verfione's apis
  • Sync back office and CMS with updated membership after creation
  • Generate and email all necessary documents to new member including their membership id, contract, terms etc
  • Generate daily reports of new members for gym managers
  • Allow gym staff to login and generate membership packages to send on to prospective members, keeping track of all activity for commission basis
  • Allow staff members to be able to control all aspects of the site's content from a CMS

In order to achieve the flexibility the project needed, a headless CMS was an obvious choice. Enabling a separation of frontend and backend and allowing future applications to easily plugin to the backend's apis. We opted for the endlessly configurable Strapi CMS to pull the strings behind the scenes in conjunction with Next.js to power the frontend.

In order to simplify the huge task of state management across the frontend app Zustand was used, a hook based alternative to the libraries such as Redux.

Behind the scenes a series of AWS Lamda functions triggered by AWS SNS events handled all the heavy lifting of the intricacies of membership generation between all platforms and creation of membership documents without tieing up processing power on the CMS.

The applications were then dockerised and deployed to AWS using a custom set up of CodePipeline to pull the repo from GitHub, build the Docker image in AWS CodeBuild, push image to AWS Elastic Container Registry before being launched on AWS Elastic Container Service.

Tech stack

  • AWS
  • AWS ECR
  • AWS ECS
  • AWS Lamda
  • Docker
  • MySQL
  • Next.js
  • Strapi
  • Tailwind
  • TDD