B2C Web and Mobile Parking Application
The legacy code revived with new architecture, testing, and refactoring - all to build an outstanding mobile app.
The company and product
The product allows its users to avoid lines for parking spots at their local shopping centers in South Africa and other countries, including The Zone in Johannesburg, Centurion Mall in Pretoria, and Blue Route Mall in Cape Town.
Simply a great experience working together
I’m very satisfied with the cooperation with Monterail. We’ve been very lucky to get a team that just clicked and jelled. We’ve had the same core team for over two years and everybody who worked on the project learned really quickly and contributed to our growth vastly. It was a great experience to see this young team showcasing a lot of experience and quality of work while enjoying themselves.
They came to us with a two-year-old web app built in Node.js and React based on fifteen servers.
The legacy code was written on naive logic, lacked proper system architecture, documentation, and had poorly established testing processes.
It required the refactoring of a great deal of legacy code and a needed a mobile version built from scratch.
Given the character of the app, handling hundreds of requests per minute, there was no room for errors—database rollbacks would be impossible in this case.
Key challenges of the project included:
Lack of proper documentation and poor app stability.
Syncing data from thirty different servers with the main Web app and optimizing server performance.
Handling real-time requests and processing them in a few timezones: Polish, US, and South African.
ADMYT APPLICATION SCREENSHOT
Upon receiving access to various parts of the system and the codebase, we met for a three-day Discovery Workshop to work on the project scope, identify pain points, and challenge admyt’s business ideas.
To facilitate development and make sure every element of the app worked well, we wrote 2,000 unit tests and implemented Cypress.io to automate the testing, considerably reducing the amount of time spent on testing functionalities.
We also added Redis and BullJS on the backend. Thanks to this setup, we were able to simultaneously build new features and refactor legacy code in the existing parts of the app.
Our core efforts at this stage included:
Developing the mobile version of the app with React Native
Integrating third-party platforms and connecting additional payment gateways (PayU)
Discussing documentation, communicating on Slack, and having daily internal stand-ups
Data processing with PostgreSQL to the limit
Hours of testing, refactoring, and planning paid off
Taking over admyt was a huge challenge. On one hand, we had to deal with performance issues and the whole server-to-server communication that needed to be optimized and rewritten. On the other, we already had 30K users that have been using the application almost every day so we just couldn't pause the app and start development from scratch. Hours of testing, refactoring, and planning paid off — we have a stable and testable application that is ready to serve even more new users and reach new markets.
Monterail released the web app to the South African market in June 2018.
So far, it has recorded over 41,000 sign-ups and now links approximately 60,000 cars.
With a stable version built in Node.js and React, the app is now easy to maintain and augment with new features. It’s also much easier for new developers to jump quickly into the project.
Optimizing requests between servers resulted in a reduction of synchronization time from 20-30 seconds to just 30 milliseconds, making the app easy to scale. The team, however, is far from slowing down and is averaging around eight releases per month.
Since we began our collaboration, admyt has expanded from shopping centers to retail, offices, and residential real estate. In Poland, they make parking a seamless experience for patrons of Pasaż Grunwaldzki in Wrocław, Galeria Młociny in Warsaw, and Galaxy in Szczecin.
The admyt parking platform is also deployed in fifteen premier malls across South Africa and a handful of hotels in Australia, with more launches to come in 2019.
The mobile app for the Polish market, built in React.js, is available for Android and iOS.
The success of this project hinged on the following factors:
Refactoring a great deal of legacy code with a focus on features that were most important business-wise.
Validating ideas and cooperating closely with the client, combined with impressive performance delivered by a highly functional team.
Creating a well-written documentation and improving testing processes.
Read more case studies
Lightning-fast Prescription Delivery
A web and mobile application enabling the UK’s fastest prescription delivery service built in 7 months.
Guest Engagement Platform
SuitePad could use a proactive partner that offers more than hard technological expertise - here's how we collaborated.