Brainpick

Crowdsource data for research

Brainpick is an intelligence crowdsourcing app that minimizes researchers' time and effort in data collection and processing, while providing a way for normal people to utilize their free time to earn money.

Both commercial and academic researchers can submit tasks on the platform, and the system will automatically distribute micro-tasks to all users, for example, photo tagging, price estimation, questionnaire, word sentiment, and so on. In exchange, users receive monetary rewards provided by either the submitters or sponsors.

Amazon's Mechanical Turk has been a successful crowdsourcing platform for businesses to utilize remote "crowdworkers" to perform tasks that computers are not able to do. However, there isn't a way for users to fulfill requests on the go. We thus took the idea of crowdsourcing and put it into mobile platforms.

Problem

Researchers and data scientists in both the commercial world and academia have wasted a ridiculously huge amount of time, money, and manpower on data collection, cleansing, and processing. In fact, a survey reveals that data scientists spend 80% of their time on these tedious tasks instead of the value-adding parts of their duty, like modeling, algorithm design, testing and evaluation, etc.

At the same time, urban dwellers have also wasted countless hours on unproductive tasks like commuting and queuing. When they need to wait, most of them are just killing time by playing mobile games, watching junk videos, or browsing social media newsfeeds. Such phenomenon manifests the inefficiency of the modern urban lifestyle.

Solution

What if everyday people could help researchers and data scientists perform short tasks on their smartphones in exchange for micro-payment? Brainpick makes it possible by bringing these two groups of people together on a single platform. It is an intelligence crowdsourcing app that minimizes researchers' time and effort in data collection and processing.

Both commercial and academic researchers can submit tasks on the platform, and the system will automatically distribute micro-tasks to all users, for example, photo tagging, price estimation, questionnaire, word sentiment, and so on. They can then receive monetary rewards, either provided by submitters directly or sponsors of the request. By doing so, even ordinary people can contribute to state-of-the-art research projects or help companies develop products that solve problems for million of people. This is also the reason why we call the app Brainpick - picking the brain of the crowd.

Design

Before coding the user interface, we drafted a storyboard that indicates the basic flow of the app using Sketch. We then asked our friends for feedback and further improved the design. This saved us from repeatedly modifying codes to tweak the design of user interface. A draft of the storyboard is shown below.

System and Architecture

We decided to write a React Native app instead of a fully native one because it minimizes the development cost so that we can focus on the functionalities instead of pure software engineering. Our team members have already built several native Android apps in Java and Kotlin so we think that we would learn much more using React Native than native codes. Also, our team has solid experience in JavaScript and the web version of React, which flattens the learning curve of React Native.

We use the library React Navigation to handle the navigation of Brainpick. The entire navigation structure of the app consists of a tree of navigator objects and React components. Navigator object is a special type of React components that manages the navigation among a group of other React components. For example, switch navigator manages a group of mutually exclusive components, while stack navigator manages a group of components stacking on top of each other.

Result

In the end, we successfully implemented the app that demonstrates the potential of an intelligence crowdsourcing platform. Although the app is mainly written in JavaScript, it already has decent performance and feels exactly like a truly native app. Also, our app includes two types of tasks for users to complete and has a basic account management system with Facebook authentication. The app is able to communicate with the backend Firebase server smoothly under normal Internet connection.