Internship Project: Improve the ODK-X Sync Endpoint

Welcome prospective Google Summer of Code participants! Check out our DIAL Sub-Org page and our main thread. Please discuss your ideas for the Improve the ODK-X Sync Endpoint project here or in the project slack channel.

ODK-X Sync Endpoint is a Java server that hosts data collected on the ODK-X platform. It implements the ODK-X Sync Protocol and synchronizes data across all mobile and desktop clients. It is a core tool that is essential for almost all ODK-X deployments, providing a centralized location for collected data to be synchronized between mobile clients.

ODK-X Sync Endpoint has been optimized to interact with ODK-X mobile clients, and it does this well. The web interface, which is used mainly by project managers as opposed to field workers, contain basic functionality that could be expanded. The goal of this project is to improve the web interface for Sync Endpoint by both expanding functionality and increasing usability.

For example, we would like to add new functionality for exporting data for use on other platforms. Currently, a REST interface and JSON downloads are supported. We would like the option to export data to CSVs directly from the web UI (you currently have to use a separate tool) to support user’s managing their data in spreadsheets or importing it to other systems.

Additionally, we would like to add export functionality from Sync Endpoint to data analysis software (e.g., Microsoft’s Power BI). For example, when data is synchronized to the Sync Endpoint, a pipeline should be built so that the data can flow from the mobile client through Synch Endpoint and eventually propagate the data to a data visualization and analysis platform like Microsoft’s Power BI.


Skills: Java Web Application, Java Servlets, Spring Framework, Thymeleaf (UI framework)
Difficulty: Medium to Hard
Mentors: @Vyankatesh, @dexter21, @W_Brunette