Internship project: ODK 2 Services - Push notifications

Hi @Jeff_Beorse I wish to work on this project , I forked the repository for services , and successfully build and installed apk on device , but m not quite clear about the use of this app , I mean is it similar to collect app ?. Are there any docs which can help me getting started ?, so i can understand the flow of app

Hi @Jeff_Beorse , got link to odk2 suite docs, it was already shared above :sweat_smile: ,exploring the codebase of the app right now and trying to set up odk 2 tools , I have fixed the github issue linked above and created a PR for the same . Here is link of project on which i have implemented FCM push notifications and used a little firebase cloud functions .
https://play.google.com/store/apps/details?id=com.practice.android.firstaid

Greetings Everyone! I am Harsh Bagadia. And i too, am interested in this collaborative project and have prior experience with php - fcm and fcm with firebase function to create custom push notification. Perhaps my inputs would be slow.

I would like to know about other such requests made, upon which we can ideate before we are ready to work.

Hi @Jeff_Beorse , since its my first time going through such a big codebase , I m feeling a bit lost :sweat_smile: , could u please suggest me how should i proceed with the codebase and any docs regarding androidlibrary ?

Hello! @Jeff_Beorse I am interested in this project and have experience with android apps and knowledge of Git and Firebase.
My github profile: codedsun (Suneet Srivastava) · GitHub
Please guide me how to get started.

Hi all,

@Harsh_Bagadia, the ODK 2.0 tool suite is only fairly recently released. When I was talking about that feedback, that was from beta testing partners who tried it in the field and reported back to the core developer team at the University of Washington. Currently the new way that we get feedback is through three avenues: this forum, the Developer Calls, and on the Github Issue Tracker.

@Harsh_Bagadia and @codedsun I will be adding some new “quick win” issues over the next few hours and will offer some of them to you as a means to get started. In the meantime, please try checking out and building the ODK 2.0 tools and running the initial tutorial. You can find that here. You can also try out the community generated tutorials here.

@SatyamBansal you are right, this is a very big code base and it can be confusing. Unfortunately we do not have detailed documentation for the source code at this time. But I am happy to help give you a tour and guide you to find a resolution to the issue. We haven’t finished creating new Slack channels dedicated to ODK 2 (they are in progress), so in the meantime you can direct message me on http://slack.opendatakit.org/ to username @jbeorse. I am in USA Pacific time zone but I am sure we can find overlapping times.

Hi all,

@Harsh_Bagadia after going through the tutorials, maybe you can take a look at issue #1370.

@codedsun similarly, when you’re ready maybe you can take a look at issue #1372.

Feel free to look at other issues that are open too. Please comment in or claim the issue you want to work on so that other contributors know it is taken.

@SatyamBansal It has been pointed out to me that it would be better to keep this discussion public, and I agree, so please post a question on the #internships channel on slack for now, and I will respond in a thread. We can migrate to the ODK 2 channels as they are created.

Anyone else who has code questions please do the same. I will be monitoring the #internships channel in slack and respond to your coding questions there.

Hi @Jeff_Beorse, I am looking to contribute to this project, I’ve relevant experience of Firebase and Android. It would be very helpful if you can assign me some issues which help me understand the codebase better.

Thanks

Hi @dexter21. Please review the documentation linked earlier in this thread and try to get the demo apps running and do the tutorial. When you are done with that you can check our issue tracker for open issues: Issues · getodk/getodk · GitHub

You could try #1376.

Hi All! New slack channels have been created! We now have #odk2-misc, #odk2-mobile-code and #odk2-server-code.

Please use those for more detailed coding, architecture, or development questions. @SatyamBansal we can move our discussion into #odk2-mobile-code.

Hey, @Jeff_Beorse I want to work on this project. I have worked on Google Firebase for an application project. As the FCM is part of it where one mobile can send a push notification to another mobile by an HTTP request using Volley.
Email ID :- harsh20111997@gmail.com
Portfolio :- harsh2011.github.com

Hi @harsh2011.

To try out this project, the first thing to do is look through the documentation here: http://opendatakit-dev.cs.washington.edu/2_0_tools/release/218 and try out the tutorials. You could also try out the community posted tutorials here: Community contributions to upcoming ODK 2.0 documentation refresh - #2 by elmps2018

After you can run the tools locally and have a decent understanding of how they work, you can clone the source code from github here:

After that you can grab an issue from the tracker and try it out: Issues · getodk/getodk · GitHub

hello @Jeff_Beorse i would love to work on this project hope its not too late? if i’m not please what are the necessary things i need to do as soon as possible. Thank you

Hi @Didicodes. It is not too late, but I see on Slack you have posted that you are working on the Device to device transfer project. Good Luck!

Hi @Jeff_Beorse

I am interested in contributing to Open Data Kit under GSoC in this project.

I am familiar with Java and Android development as well as do have experience in using Firebase and I am interested in the project ODK 2 Services - Push Notifications. I have been following up on Slack and would love to work on some of the ongoing issues.

@Jeff_Beorse what i m thinking that instead of having a standalone java application for push notification we can integerate it with existing web server which feels more intuitive, like serverurl/messages will redirect user to notification interface. What do u think about this?

Hi @garglakshya18. Glad to hear it. This issue might be a good start: refactor: Replace anonymous classes with lambda expressions in Services · Issue #1389 · getodk/getodk · GitHub Let us know on Slack how it goes and please ask questions if you have trouble.

@SatyamBansal The reason I chose a desktop application was only to keep things simpler for the applicants. I guessed it would be easier to get a basic desktop application running than a web server, but this may be my own bias. Long term the plan is to use the work produced by this internship project and integrate this functionality with other ODK desktop applications and, yes, include it in the cloud as well. So, in the end we want both the server and the desktop to support pushing notifications, but I do not feel strongly about which is implemented first. If you (or anyone else) would like to propose a project where you implement a web server instead of a desktop application I encourage you to do so.

We have four repositories that host our Sync Endpoints:

Since we use a Docker Swarm architecture I would imagine your Firebase server would be its own microservice. My recommendation would be for your proposal to get a standalone push notification server working first, and then we can think about integrating it after that works (which is the same approach we have on the Desktop side).

If you do plan to propose a server based solution, I would recommend providing some documentation of your experience building web services. Unfortunately our Sync Endpoints are so new that I don’t think we have any documented issues yet. Maybe @linl33 or @W_Brunette are aware of something. I would encourage you to continue this discussion on the Slack #odk2-server-code channel.

EDIT: Actually I see you are already finding issues and submitting solutions. This is great! Thanks for your work so far!

@Jeff_Beorse I’ve completed my draft proposal. I request all community members to please give your suggestions.
https://docs.google.com/document/d/1I7VCN70CUg1FohncnGh64xAJ7QbykFbPKC_C2FMoVJY/edit?usp=sharing

Hi @dexter21. Thanks for posting this! I’ll start taking a look, but please also post it to the #odk2-misc channel on Slack. There we can start a thread and dig into some discussion.

Hi All,

I wanted to point you to a discussion on Slack we are having to clarify the core workflow that we see this proposal taking: Slack