GSoC: Migrate the Database and Integrate ODK-X Push Notifications into ODK-X Tool Suite

GSoC: Migrate the Database and Integrate ODK-X Push Notifications into ODK-X Tool Suite

The ODK-X Push Notifications project consists of two applications currently code-named “Skunkworks Parrot” and “Skunkworks Bat” that were originally written during Google Summer of Code 2018. Their purpose is to support sending short messages from a desktop computer out to all phones running the ODK-X apps. They let administrators send instructions to field workers without using a third-party application or SMS. 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 organizations to ensure that these tools provide real value and are suitable for use in the field.

“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 more closely integrating these tools into the ODK-X tool suite and making them easier to manage. This would involve:

  • Migrating the database from Firebase to ODK-X Sync Endpoint and ODK-X Services
  • Improving the user experience for configuring the app with Firebase.
  • Fixing existing bugs and improving the user experience.
  • Creating documentation for using the tools

We are planning to use QR code for configuring the app with Firebase for now, but we are open to other ideas. You are free to suggest any other improvements, which we can discuss in Slack.

Note that this project is part of the ODK-X Tool Suite. This project is not compatible with ODK Collect; it is compatible with ODK-X Services, ODK-X Tables, ODK-X Survey, and the rest of the ODK-X tool suite. You can read more about both suites here: https://opendatakit.org/software/

Requirements: Android, Java
Repositories:

Difficulty: Medium to Hard
Mentors: Harsh Gupta (@harsh615) and Aditya Laddha (@laddha-adi)

Thank you for information @Jeff_Beorse

Hi @Jeff_Beorse. I am setting up the desktop app in IntelliJ. Where will I get the Sync client URL for configuration?

@nakulmehra677 Sync client URL is the URL on which your ODK-X Sync Endpoint server is running. You can refer to this link for ODK sync Endpoint documentation.

Hi everyone,
My name is Vyankatesh. I am a third-year undergrad at IIT Bombay. For the past two years, I have been working on Android Development and also did an Internship in Android Development.
I found this project very interesting and want to contribute to this project.

I have some doubts regarding this project.

  1. We are only migrating the database from Firebase to ODK-X Sync endpoint, we will still be using Firebase Messaging Service for push notification. Right?
  1. Here we are talking about the android app or Desktop App?
    As of now to configure the android app with firebase users have to replace the “Google services.json” file. So do we have to implement some functionality so that the user can configure the app with firebase without actually replacing that file?

Thanks in advance!! :slightly_smiling_face:

P.S: Sorry for not introducing myself earlier.

Hi @Vyankatesh, welcome to our community. Let me come straight to your questions:

  1. Yeah, you are right. We are planned to continue with Firebase messaging service.

  2. We have to configure the Android app, desktop app is using firebase admin api, which is ok. We need to implement some functionality which makes easier to configure firebase with android app for users.

@harsh615 Thanks for the response. :slightly_smiling_face:

Hi everyone,
Here is the first iteration of my GSoC proposal. Please have a look at it and suggest any changes or modifications necessary.
Thanks!!

1 Like