Our client, Intelligent Health Ltd., is a well-established public benefit organisation that arranges street games in the United Kingdom. They recently created a mobile app to engage people in activities, and they needed a tool to manage these games and users more effectively.
Their main aim was to make the street games planning process centralised and digital, as they relied on multiple and dispersed files beforehand. The client needed to have one source of all information about users and games and be able to manage it easily.
We were responsible for creating an administrative web app from scratch that would help Intelligent Health Ltd. manage their games and users. This app had to be a central hub for administrators to create, manage and monitor games and manage users efficiently.
Therefore, we had to build an ultra-secure backend solution that would handle thousands of users playing games at the same time, assign the exact number of points and verify whether those were collected according to the rules.
Intelligent Health required for the system to be serverless and future-proof. The client needed to build a system that will work flawlessly for many years, but also be stable, secure and scalable.
We were responsible for creating an administrative web app from scratch that would help Intelligent Health Ltd. manage their games and users. This app had to be a central hub for administrators to create, manage and monitor games and manage users efficiently.
Therefore, we had to build an ultra-secure backend solution that would handle thousands of users playing games at the same time, assign the exact number of points and verify whether those were collected according to the rules.
Intelligent Health required for the system to be serverless and future-proof. The client needed to build a system that will work flawlessly for many years, but also be stable, secure and scalable.
As a result, we built an admin dashboard and the backend solution for street games management from scratch. The system allows administrators to manage users and user groups and their physical cards. The backend is responsible for assigning the right amount of points to each user and preventing from collecting them users who are driving a car.
Because the mobile app was being developed, it provided us with new possibilities so we added an extra type of items to collect – gems. That needed an additional logic for points gathering.
To make street games management easier, we implemented a map solution, where managers can browse and place checking points and check the stats. Administrators can monitor which street games are running, how many people take part in them and what are the most commonly visited places.
One of the main goals of Intelligent Health is to measure how street games affect the health of participants. To measure that, we integrated an appropriate solution so they can send surveys before and after the game that are thought to collect such data and assess its effectiveness.
The client realised that the system can serve not only for Intelligent Health purposes but can also help other companies to provide their employees with additional gamified entertainment. We extended the system capabilities to provide third-party’s representatives with access to the BTS system, so now they are able to configure their own games.
The aspect of providing privacy was highly important – we don’t store within the app data we don’t need at the moment. If they are not required for current street games, data is anonymised and all the sensitive information is hidden. Because the app falls under the GDPR regulations, we implemented a role-based access management solution that allows us to assign different permissions to different user groups. That allows us to guarantee that admins, other companies and users will see only the contacts they are allowed to. It was extremely important as the app is utilised by governmental institutions.
Currently, we’re working on a comprehensive UI-friendly analytical section where Intelligent Health and its partners can observe game stats, including how much they walk and how often they take part in games.
We began the project by understanding the client’s business needs. We needed to define what functionality they needed and put that into wireframes. There was a clear view of what we wanted to achieve, but we had to define the best way to do that and how to implement all the needed functionalities.
Apart from wireframes that were evolving while we were defining the client’s needs in detail, we had no designs to rely on while building the admin dashboard – the system was built and designed by developers. They employed the MaterialUI component library to achieve a stylistic order and user-friendly design, all while avoiding significant investments in custom design. The analytical part was designed by the client’s designer.
The final street games management functionality started to emerge while we were working on the backend solution for point management. We had to address a few main challenges:
1. Make sure that users will gain the right amount of points.
The second aspect needed to be properly conceptualised when it comes to the integration with physical devices hanging on lampposts. Those devices are powered with batteries so they could be discharged or physically damaged. When such a device switches on, it starts sending multiple signals at once so we still need to make sure that people will gain the right amount of points. The points should not be lost or over-assigned.
2. Users should not be able to collect points for driving a car so we monitor the time periods in which they reach the next checking points and react when that happens too soon.
In software development there are no one-fit-all solutions, each time we need to choose the best solution for the particular project. Beat the Street app is highly used, and must be able to handle thousands of users at once, providing them with a smooth user experience while keeping the operational costs of infrastructure at a reasonable level. Therefore, we designed the infrastructure in a way that reflects their business objectives and expectations, focusing primarily on flawlessness and scalability, but keeping the costs at the lowest level possible.
When we were starting the cooperation, we agreed to focus on the development speed so we decided to use AWS Amplify. However, when they were defining additional needs, we realised that this technology was limiting. Therefore, we moved away from using Amplify for hosting the backend and, instead, crafted our own configuration in AWS CDK. Additionally, we revamped the database structure to enhance speed and scalability, a shift that was necessary for efficient data retrieval. We set it up in a custom way based on the solution we developed ourselves to address the needs of the project. That allows us vast opportunities for optimisation, data analysis and aggregations.