The COVID-19 pandemic has people around the world stuck at home in an attempt to practice social distancing, and we have noticed three unique problems we now face:
- self-quarantine can be detrimental for personal health
- local business have been forced to close and have lost many revenue streams
- the timeline for practicing social distancing increases every day
This made us realize that we need a solution to improve quality of life during the COVID-19 pandemic; it had to be something practical so that it could be built efficiently, had to be put in the hands of as many people as possible to have the most societal impact, and had to take a unique approach to dealing with quarantining in order to provide value that existing applications are not.
GAMIFY is our attempt at enabling people to turn self-quarantining into a game that incorporates team-based collaboration with friends, competition with other teams, and prizes from local business that can be redeemed once the pandemic ends. GAMIFY is a mobile application where users can create/join a team with their close friends and enroll in one of the weekly generated challenges. Each challenge consists of a set of tasks that each user has to complete each day for the duration of the challenge in order to get points, and at the end of the challenge the team with the most points (most completed tasks) gets a complimentary prize from a local business that was forced to close. We will use revenue from the application to purchase the prize, and it can be redeemed once social distancing practices are no longer required; the team can then enroll in another new challenge. GAMIFY uses advanced machine learning API's to ensure verified task completion, and this protects the integrity of our application and our mission.
GAMIFY directly solves the three problems listed above while maintaining all the important qualities to ensure product success.
- Personal Health: We select tasks that are healthy habits to build, and by encouraging the user to repeat these tasks every day for the duration of the challenge, we help them build these habits without them even realizing it. For example, in our demo application we included the tasks eat an apple, drink water, read a book, and wake up early. These tasks help provide structure to an otherwise routineless day at home and encourage healthier habits.
- Local Businesses: GAMIFY will be an ad-supported application and because the combination of teams participating in challenges in order to complete tasks drives a lot of activity, we will use some portion of the revenue to support small businesses. By essentially providing product/experience "gift cards" to the user, these businesses can create another revenue stream for the services they provide even if current circumstances render them unable to fulfill them at this moment.
- Quality of Life: GAMIFY is fun! There are so many self-care apps out there, but most of them focus on telling the user how/why to live healthier. We wanted to take a different approach and really turn the day-to-day boredom of staying at home into a game. By collaborating with your friends to hold everyone accountable for doing their tasks to competing with other teams, GAMIFY is all about making quarantine fun and doing it in such a way that the user develops healthier habits, local businesses are supported, and no matter how long this pandemic lasts, at least the user will have some awesome prizes to look forward to.
When the user first opens GAMIFY they will either login or signup. Afterwards, they will be given the option to either join a team via a unique team code or they can create their own team and send out their team code to their friends. Once the user gets on a team, they will be taken to the main dashboard where they view their daily tasks. Each person on their team must complete each daily task.
At this point, users may feel the need to deceive themselves or their peers to gain an unfair advantage. To prevent that, we require the user to take a picture of themselves performing that task while showing a unique daily code. We have integrated machine learning image detection to ensure the code and their actions demonstrate and prove they are performing that task. Teams can also join challenges which give more tasks for the opportunity to win more points. Teams can see how they stack against other teams via a leaderboard, and the top team at the leaderboard every week will win a nice prize.
GAMIFY has two parts: an Android mobile app and a Django backend service. The Django backend service provides a variety of endpoints to the mobile including signup/login flow, team creation/joining flow, challenge joining/viewing flow, and task viewing/completing flow. The Android mobile app handles the majority of the application logic with everything from Google Auth sign-in to task verification. The Django backend service interacts with a Postgres database, and both of those servers are Dockerized and deployed using docker-compose. The entire backend is deployed on Google Cloud Platform and surfaces a REST API.
Our automated pipeline for verifying that images prove task completion was technically challenging to build but provides an impressive experience to the user. We relied on a variety of Machine Learning API's including Google Cloud Vision API and Microsoft Azure Cognitive Services. Our verification flow starts with notifying the user of a unique code to write on a piece of paper and show in the image. We then rely on GCP Cloud Vision's Optical Character Recognition to extract the code for verification. Then we use Azure's Face service to verify that the person in the submitted image is the user they claim to be. We do this by running facial recognition on the submitted image and their profile picture. Then we have additional custom verification code depending on the task. The eat an apple task uses GCP Cloud Vision's Label Detection API to detect apples in the image, the read a book task uses the same API to detect books in the image, and the video call a friend uses GCP Cloud Vision's Face Detection API to determine if there are 2 or more unique people in the image. We were able to successfully integrate all these API's, test our verification endpoints, and deploy them on GCP.
Google Cloud Platform
GCP provided an intuitive platform for us to use to develop our application. Apart from all the Cloud Vision API's we took full advantage of, we deployed our backend docker containers on a container optimized OS compute engine instance. We found the process simple to use and enabled us to quickly get end-to-end functionality.
The core premise of our application is encouraging collaboration and accountability within friends. Social distancing makes it challenging to check in on friends, and social interaction is crucial for all humans, but especially for those who may be going through a tough time (which is all too common these days because of the pandemic). Without face-to-face meetings it can be hard for these check-in's to occur organically, but our application helps solve that by providing at least a small reason for everyone to touch base a couple times a day. Whether it's a simple message reminder or a group video call to make sure everyone does their tasks at once, we believe our application will ensure people continue to connect with each other.
GAMIFY aims to make every day life more fun! Our application was carefully designed to ensure we provide maximum value for as many people affected by the pandemic as possible, and we hoped to do so in a way that was enjoyable and did not feel like a chore. We were able to execute all of our goals for the hackathon, and we hope that GAMIFY will evolve from the prototype it is today to a truly useful application soon.