Video Quiz App — an app for learning
Develop a mobile application for the Asian market that allows you to create and run video quizzes on any topic. Authorization and registration must be done using WeeChat.
The solution was to implement the basic business logic on the backend part. Users had the opportunity to be both authors of content and participants in other quizzes. Since each user can play 2 roles at the same time, it was decided not to separate the functionality into different applications.
The business idea was singled out in the main functionality:
- Creating video quizzes. This will allow any user to fill the content environment. The answers to the quizzes were filled in by the authors themselves;
- Search quizzes and trends section. Each user had the opportunity to create their trend and post a video with a quiz on this trend, or join the trends of other users;
- Rating system for each of the trends and quizzes;
- Authorization and registration of new users through the social network WeeChat;
- Working with video was considered only in the format of working with files, without the support of media servers and media libraries for streaming video;
- Due to the limited budget, there was no pre-and post-processing of video materials to test the business idea.
The development process began with a study of key functional requirements:
- Play streaming video without a media server;
- Connect WeeChat as a social network.
The most difficult part of the development process was the connection of the social network, as it was radically different from conventional technologies. Several factors became an obstacle:
- An existing user invite is required;
- Constant user activity in the system. Users who did not use the social network were blocked;
- Paid access to the developer console to create your apps;
- All tutorials, articles with examples, and communication with technical support were conducted exclusively in Chinese.
Clean Architecture and MVVM architectures were taken as a basis during the development. All business logic is separated in the domain module. ExoPlayer was used as a video player. It was the implementation of its modules that allowed to play a remotely saved file in streaming video format. Also, additional settings and implementation of local storage allowed to creation of buffering and caching functionality.
We managed to develop a comprehensive system that includes a backend part with the implementation of basic business logic and native client mobile applications for the Android platform.