MaturaToBzdura is one of the most popular Polish channels on YouTube. In order to monetize their popularity, they decided to create Quiz House with us. The authors of the app wanted to offer unique categories of quizzes and live games with friends or strangers. Our task was to create:
Our Android team was responsible for creating the application, improving UX, and designing new views. Quiz House is written in Kotlin, which is the latest programming language supported by Google. Kotlin makes it easy to create a clear and easy code that makes changes take less time. It is also 100% interchangeable with JAVA. Kotlin also solves the "Billion Dollar Mistake", which is NullPointerException, which translates into a reduction in application errors.
Quiz House also has a notification system that is implemented using the Firebase library. They serve to inform users about the latest events in the app, such as: friend invitations, game invitations, and game results.
The Quiz House backend is implemented in the architecture of the microservices and has been divided into 3 parts: REST API, game logic (websockets), PUSH notification servers. All modules have been written in Typescript 2.3 (Node.js ES6 / ES7).
REST API - this microservice is responsible for accessing all the structures available from the CMS panel and for communicating with the mobile application.
A separate microservice is responsible for the play mechanism, which is based on the SocketCluster framework, enabling fast, two-way live communication. Using the SocketCluster framework for websocket connections enabled the scalability of the entire solution.
The last microservice is a push server for queuing and sending notifications to individual users. This service, is responsible for the connection to the Google API (Firebase) for push sending, provides information about the user's devices, and stores notification templates in various languages. Thanks to this, you can easily generate a notification sending event from different system locations (other microservers).
The CMS panel is used to manage question base and users. You can add a new category of questions, questions, join a category in a group, and manage administrators. CMS is based on Angular framework, the latest version 4.x, and Angular Material components.
After 4 months of work we created:
After a month of being on Google Play, Quiz House has been downloaded more than 100,000 times and its rating is 4.3!