Brainpick

Crowdsource data for research

Date

Apr 30, 2018

Status

Ended

Tags

  • Prototype
  • Machine Learning
  • App
  • Coursework

Collaborator

  • Martin Shin

Links

  • View Report
  • View on GitHub

Overview

Brainpick is an intelligence crowdsourcing app that minimizes researchers time and effort in data collection and processing, while provides 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, sentiment of words, and so on. In exchange, users receive monetary rewards provided by either the submitters or sponsors.

Background

This app was developed as a coursework for the course COMP4521 - App Application Development at HKUST.

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, test and evaluation, etc.

Time spent by researchersData cleaning and processing: 60%Data collection: 19%Data mining for patterns: 9%Others: 5%Refining algorithms: 4%Building training sets: 3%undefined%undefined%undefined%undefined%undefined%undefined%

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 newsfeed. Such phenomenon manifests the inefficiency of modern urban lifestyle.

Solution

What if everyday people can help researchers and data scientists to perform short tasks on their smartphone in exchange for micro-payment? Brainpick makes it possible by bringing these two groups of people together in 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, sentiment of words, and so on. They can then receive monetary rewards, either provided by submitters directly or sponsors of the request. By doing so, even average people can contribute to state-of-the-art research projects or help companies develop products that solves million people’s problems. This is also the reason why we call the app Brainpick - picking the brain of the crowd.

Design

Before coding the user interface, we have 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 have 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 component. 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 mutual 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 descent 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.

Share