MaturaToBzdura is one of the most popular Polish channels on YouTube. In order to monetise their popularity, they decided to create Quiz House with us. The authors 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 software application, improving UX, and designing new app screens. Quiz House is written in Kotlin, which is (as of February 2018) the latest programming language supported by Google. Kotlin makes it easy to create a clear and easy code that allows modifications to take less time. It is also 100% interchangeable with JAVA. Kotlin also solves the "Billion Dollar Mistake" (NullPointerException), which translates into application error reduction.
Quiz House also has a notification system that is implemented using the Firebase library. It serves to inform users about the latest app events, such as: friend invitations, game invitations and game results.
The Quiz House back-end is implemented using the microservice architecture and has been divided into 3 parts: REST API, game logic (WebSockets) and 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 communication with the mobile application.
A separate microservice is responsible for game mechanics, which are based on the SocketCluster framework, and enables fast, two-way live communication. Using the SocketCluster framework for WebSocket connections enabled scalability for the entire software 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) 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 themselves, join a category in a group, and manage administrators. CMS is based on Angular framework (the latest 4.x version), and Angular Material components.
After 4 months of work we have created:
After 5 months of being on Google Play, Quiz House has been downloaded more than 500,000 times and its average rating is 4.5/5!