Serbiso in an online service platform aimed at simplifying the life of millions of people by raising public awareness and interacting with every citizen.
About the Project
Kazakhstan is a country of great potential and large area. Each Kazakhstan region is subordinate to the executive authority called akimat and has many sub-districts with scattered settlements and poor social infrastructure. One of the biggest problem for akimat is the issue of timely reporting of threatening situations and important events in the region, such as flood, quarantines, mudflow, traffic jams, and road repairs, as well as citywide events.
On this basis, the Client's first priority was to increase public awareness of emergencies through instant messaging, thereby allowing the public to respond to any citywide contingencies in a more effective and timely fashion.
The client wanted to create an app that would allow people to be kept informed of any changes in the public life of districts and cities, as well as to enable users to apply to the akimat for resolving municipal and public issues.
The complementary goals the Client set are as follows:
- create an e-directory with the fullest possible information about state authorities and private companies, such as hospitals, malls, beauty centers, restaurants, fitness centers, etc.;
- provide a function of an online queue system, which allows one to make a doctor’s appointment without coming to a hospital and wasting time in queues;
- make the public transport timetable available online and allow users to better plan their daily routes;
- provide entrepreneurs with an opportunity to advertise their goods and services effectively and to receive notifications from tax authorities;
- improve the app user interface via user feedback.
We started the implementation of Serbiso by identifying the team responsible for the project. Ultimately, the team included UI/UX Designer, Android and iOS Developers, Back-End Developer, QA Engineers and Project Manager. The Client provided data on the target audience, which has helped us to establish the goals of the application.
The close collaboration with the Client allowed the Sannacode team to decide on the Serbiso's functionality, to reach a compromise on the UI design issues and to create the first prototypes.
We developed user interface mockup and wireframe for the app. Then, we moved on to develop the most resource-intensive stage of the Serbiso project, namely the Back-End development, which took place in several steps. At first, we created the building blocks of the application. A solution stack on this step comprised PHP5, Laravel 5, and MySQL. After that, we created the user management system, the user authentication system, the data caching, and the synchronization system using MongoDB. We created server-side logic and integrated third party sources like social networks and public transport timetable services using Twilio. As the last step in ensuring full functionality of the back-end, we utilized OneSignal service to add push notifications to the system architecture. Vue.js and Bootstrap 3 frameworks allowed us to structure the app in accordance with the ideas the UI/UX designer came up with and apply the most complex solutions at the Front-End development stage of the project.
We utilized Android Studio, Android SDK, Retrofit 2, RxJava, Google Maps, Facebook SDK, Google+ SDK, Vkontakte SDK, OneSignal, Crashlytics for the Android app and Swift, Xcode, and RxSwift for the iOS app. Our team managed to make the iOS app modular with the support of the coordinators in the iOS app architecture. We decided to use RxSwift for reactive programming, which allowed us to develop a complex user interface and to provide a new level of abstraction for parallel programming and multithreading, which enabled us to refactor the code and optimize the app performance.
In the final development stage of Serbiso, we ensured the quality assurance of the app, made final modifications and deployed the application. We took into account every Client’s request in the development process, allowing the product to acquire new functions very quickly. We used agile development methodology to achieve efficient results in creating Serbiso.