Internship project: Stabilize and release ODK 2 Push Notifications


(Yaw Anokwa) #1

The ODK 2 Push Notifications project consists of two applications currently code-named "Skunkworks Parrot" and "Skunkworks Bat" that were written during last year's Google Summer of Code. Their purpose is to support sending messages from a desktop computer out to all phones running their ODK 2 app. “Parrot” is the desktop application, written in Java, that provides a user interface for writing messages, creating user groups to receive them, and sending those messages via the Firebase Cloud Messaging. “Bat” is the Android application that receives these messages via Firebase, checks the user credentials to see if the user is in the group that should receive this message, and displays the message to the user.

In this project, you would be taking these prototypes and improving them so that they can be fully released and integrated into the ODK 2 tool suite. This would involve:

  • Fixing existing bugs and stabilizing performance
  • Working with current ODK 2 users to beta test, record feedback, and implement improvements
  • Creating documentation for using the tools
  • Integrating with ODK Services and potentially other ODK 2 applications

These applications let administrators send instructions to field workers without using a third-party application. This is especially important for bigger organizations that might have a large and changing group of workers where the logistics of SMS might be difficult. You would be working directly with these administrators to ensure that these tools provide real value and are suitable for use in the field.

Note that this project is part of the ODK 2 Tool Suite. This is a new set of tools that handles more complex workflows than the ODK 1 Tools but is more complex itself. This project is not compatible with ODK Collect; it is compatible with ODK 2 Services, ODK 2 Tables, ODK 2 Survey, and the rest of the ODK 2 tool suite. You can read more about both suites here:

Requirements: Android, Java

Difficulty: Medium to Hard
Mentors: Jeff Beorse (@Jeff_Beorse) and Li Lin (@linl33)

(Saikat Mondal) #2

Hey Jeff @Jeff_Beorse and Li @linl33 , I am Saikat and I like this project idea and excited to contribute as a Gsoc'19 student . I have pretty good experience in Java , Android and Firebase . So please guide me so that I can contribute to this in Gsoc'19 as a student .
Thank you, waiting for an early reply.

(Gabriel Simon) #3

Good day Mentors, i am Gabriel Simon, i really like this project and would like to contribute on it if given a opportunity as a Gsoc 2019. I have a solid understanding of Java , Android, REST APIs, Firebase,and local database. I would appreciate if you can guide me so that i will contribute fully to the project.Thank you.

(Li Lin) #4

Hi @Gabby1 and @Saikat,

Please try out our Getting Started Guides, they should give you a good understanding of our various tools and how they work together.

After you have gone through the guides, you can try to build and run the 2 apps for this project. They are hosted at

If you can successfully build and run the apps, you can find an item in the issue queue to work on.

Feel free to pop up on the #internships Slack channel to ask questions.

(Alex Al) #5

Hello mentors!
My name is Alex Allafi, and I would like to participate in this project as a candidate for Gsoc 2019. I have a good working experience on Java, Android, REST APIs, Firebase, Push notifications and various APIs used for Android development. I will follow the guides you provided and will proceed with an issue.
Thank you and have a nice day !

(Afrin Jaman) #6

Hello, I'm Afrin Jaman a third-year student at National University of Bangladesh. I have good skill in C, C++, Java and Python, algorithm, object-oriented programming, Android, and iOS app development. I am looking forward to working with this project for my gsoc19. I believe that I can create something great if I get proper guidelines.

I am eagerly waiting for your suggestion to get started. Thank you for your consideration.

(Gabriel Simon) #7

I am having issues committing my code to the master branch

(Waylon Brunette) #8

You will not be able to commit your code directly to a project hosted on as we use a pull request model so community members can review the code before its committed to master. If you would like to make changes to the master branch of either "opendatatkit/skunkworks-parrot" or "opendatakit/skunkworks-bat" please submit a pull request.

(Vikash Kumar) #9

Good day Mentors, i am Vikash Kumar, i really like this project and would like to contribute on it if given a chance. I have a solid understanding of Java , Android, REST APIs, Firebase,and local database. It would be great if you can guide me so that i can contribute fully to the project.Thank you

(Hridya Krishna R) #10

Hello everyone, I am Hridya Krishna R, a computer science engineering student from Amrita University, Kerala. I am GSoC'19 aspirant and I would like to contribute to Open Data Kit. I have experience in Java,Android, and fairly good experience in PHP and Python. I would like to work on this project enthusiastically. It would be really helpful if I get a good guidance for this as I am first timer in GSoC and I will surely contribute to it with dedication. Thank you.