This is a case study and user analysis of the South African MyCiTy Bus app. The app enables commuters, visitors and locals to plan their journey around Cape Town and the surrounding area using the MyCiTi bus service.

The app is very useful for determining a route, checking bus arrival and departure times and seeing where one needs to change buses on any given route.

Using the MyCiTi Bus system is dependant on having a MyCiTi Bus card which can be purchased and loaded at all main bus stations. The app can be used to locate these main stations which are located at various points in the city. To use the bus system the card is tapped when a traveller gets into the bus and again when they get out of the bus. In this way the fare is calculated based on the bus trip. When tapping the card in or out the balance of the card is displayed on the LED screen.

But the problem is …

After interviewing MyCiTi Bus commuters there were a few common pain points regarding the app and it’s functionality.

Firstly, loading the card with credit can only be done at the main bus stations. This means queuing during rush hour and needing to get to the station earlier to load the card before travelling. This is inconvenient and time consuming.

Secondly, checking one’s balance on the card can only be done when loading the card or tapping in and out of the bus. This means a commuter needs to “mentally keep track of their balance” to know when the card will run out so that they don’t enter a bus and tap in, only to discover they are short of credit.

In summary, the app does not offer the commuter a comprehensive service and it is not fully integrated with the MyCiTi Bus service and card payment system. It offers a one dimensional solution which can be improved for a better user experience.

A solution …

To define a solution the main issues are first summarised: (1) the user wants to be able to load their bus card with credit from the app and (2) the user wants to check their card balance from the app. Both of these actions will empower the user and give them more freedom while using the app which will improve the user experience and make the app more useful.

The solution is quite simple: integrate financial functionality into the app so that users can sign in, link their bus card to their bank account, and then load their card using the app. This function can also display the card balance.

Below are wireframes for how the banking aspect of the app could work. I have shown the login process as this is an entirely new aspect to the app which currently does not require a login. The wireframes show the 2 step process of linking the user’s bus card by scanning in a QR code unique to each bus card, and then linking the user bank account. Thereafter the user can easily load their bus card with credit and also see their balance.


I found this process interesting and enjoyed researching and thinking through the problem to come up with a solution. When a solution is so simple that it seems quite obvious, I do wonder why it remains a problem! So the next step is contact the app developers with a few questions and some suggestions.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Karen Anne Lilje

Karen Anne Lilje


Designer illustrator, fascinated by user experience and how everyday decisions are influenced by the way that the world around us has been designed.