Skip to content

Instantly share code, notes, and snippets.

Last active Jan 4, 2019
What would you like to do?
Final report to list all the work done on PowerUp - Android during Google Summer of Code, 2018

PowerUp Android - GSoC'18 Final Report

PowerUp is a project specially designed to impart knowledge to pre-adolescents about reproductive health, personal hygiene, STDs and common hormonal changes that they undergo. It aims to increase knowledge among the users through simple scenarios and mini games.

During Google Summer of Code period I worked on new scenarios and minigames to make the app more involving and interesting. In the way to include new scenarios, the avatar migrates to high-school, the next level of the game. The removed feature from the first version of PowerUp, progress bars, was re-included with proper functionality. The new design elements, developed as a part of Outreachy, were included to main UI with the intended functionalities. The application was given an extra feature to help the users choose their own askers (NPCs) to accompany them during the scenario conversations. The whole new code was restructured to match the new code changes and access database using Room Library. All the inclusions and enhancements were done following Test Driven Development, with inclusion of proper unit tests to cover all the major functionalities and logics.

New Developments

  1. PreGame Setup
  2. MiniGame 1 - Kill The virus
  3. MiniGame 2 - Memory Match
  4. MiniGame 3 - Save The Blood
  5. Level 2 of the Game
  6. Progress Bars
  7. Code modifications to use Butterknife library
  8. Code modifications to use Room persistence library
  9. Enhancements to the games to make them more user interactive
  • Click here to go to PowerUp-Android repository.
  • Click here to view all Pull requests that were sent.
  • Click here to watch the final demo

Technical Aspects

  • Included JUnit tests to make sure all the game logics are working as expected
  • Used Butterknife library to reduce the boilerplate code and make it more structured
  • Constraint Layouts to develop flexible layouts and reduce overdraw
  • Restructured the whole code according to infrastructure change to access the database using Room Library

PreGame Setup

  • Gives the user the ability to choose askers for scenario conversation
  • A minimum of 1 (one adult) and maximum of 4 members(two adults and two siblings) can be chosen

Mini Game 1 - Kill the Virus

  • Convey information that STDs can be prevented with vaccination
  • Tutorial screens to give proper game instructions
  • The main screen contains different colored viruses that can be killed by matching the color with syringe
  • Game Completion screen to display score
  • Increase the difficulty as the game progresses
  • Adding background music to make the game more interactive

Mini Game 2 - Memory Match

  • Make the user familiar with the tiles used in memory match
  • Match the tile that is on the screen with the tile before it
  • Tutorial screens to give proper instructions
  • Visual and sound feedback to the user about their choices
  • Game completion screen to show score, right and wrong answers

Mini Game 3 - Save the Blood

  • Progress bar indicates level of blood in body that is decreasing continuously
  • Can be increased by choosing correct answers to presented scenario
  • Tutorials screen for instructions
  • Game Completion screen

Level Transition Screen

  • Triggers after the completing the middle school level
  • Animated character and texts are included
  • Conveys information that the user has completed the middle school level and now can proceed to high school level

High School Level

  • Avatar reaches high school
  • Transition screen from middle school level to high school
  • Avatar carries all bodily features (eyes, skin, hairs) from middle school
  • New set of clothes for grown up avatar
  • 4 new scenarios with dummy data

Progress Bars

  • Increase and decrease by different amounts to reflect the quality of choices made
  • Turns clickable when full and gives away extra karma points


  • Making the features neutral
  • Never worked on game development before. I had to a lot of research to come up with interesting ideas that fit the goal of the project.
  • Unfamiliar with JUnit test framework and TDD
  • Restructuring without breaking any developed features

Future Developements

  • Scope of improvement for the mini games
  • Work on actual content to replace the dummy data with actual information after proper research and verifying it from a psychologist
  • Background music for scenario conversations
  • Port scenario pop ups and intro/outro sequences from iOS version
  • Mechanism to populate scenarios with proper NPCs

Take Away

  • Learnt a lot about technical stuffs - Constraint Layouts, Butterknife library, JUnit frameworks, Test Driven Development, Room library, Git practices
  • Improved my development skills
  • Better issue tracking
  • Blogger - Technical, experience and ideas
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment