Admyt logo

B2C Web and Mobile Parking Application

Legacy code revived with new architecture, testing, and refactoring - all to build an outstanding mobile app.

Admyt mobile parking app

The company and product

admyt is an innovative car parking system aiming to compete with regular paper ticket-based approaches.

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.

Client’s feedback

admyt logo

Devon Beynon

COO AT ADMYT

Devon Beynon

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 vastly contributed to our growth. It was a great experience to see this young team showcasing a lot of experience and quality of work while enjoying themselves.

Scope and Highlights

15

TEAM MEMBERS

2000

UNIT TESTS

8

RELEASES PER MONTH

15

SHOPPING CENTERS

41k

USERS

60k

cars

The Challenge

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

1.
Lack of proper documentation and poor app stability.
2.
Syncing data from 30 servers to the main web app and optimizing server performance.
3.
Managing real-time requests across multiple timezones: Poland, US, and South Africa.
1.
Lack of proper documentation and poor app stability.
2.
Syncing data from 30 servers to the main web app and optimizing server performance.
3.
Managing real-time requests across multiple timezones: Poland, US, and South Africa.

ADMYT APPLICATION SCREENSHOT

  • Admyt parking mobile app
  • Admyt mobile app
  • Admyt mobile application

The Process

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 2000 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 a 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

Team’s voice

Monterail logo

Magdalena Poprawa

Tech Lead

Magdalena Poprawa

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 couldn't just 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.

admyt application screenshots

The Outcome

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 well-written documentation and improving testing processes.

tttrtrterterer

dgfgdfgdf

dfgfg
Grzegorz Hajdukiewicz | Chief Delivery Officer

I'm here to gather your requirements, answer all your questions, and push your idea into development as fast as possible.

Grzegorz Hajdukiewicz | Chief Delivery Officer

Get in touch