# Internship Project: Improve the ODK-X Suitcase Application

**URL:** <https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190>\
**Category:** Community\
**Tags:** gsoc, internship-project, gsoc-2021\
**Created:** [March 11, 2021, 1:59am UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190 "2021-03-11T01:59:34Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jeff\_Beorse](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/jeff_beorse/32/2_2.png) [@Jeff\_Beorse](https://forum.odk-x.org/u/Jeff_Beorse)\
**Post date:** [March 11, 2021, 1:59am UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/1 "2021-03-11T01:59:34Z")

</div>

Welcome prospective [Google Summer of Code](https://summerofcode.withgoogle.com/) participants! Check out our DIAL [Sub-Org page](https://hub.osc.dial.community/t/gsoc-2021-dial-open-source-center/2134#odk-x) and our [main thread](https://forum.odk-x.org/t/welcome-gsoc-applicants/1195). Please discuss your ideas for the Improve the ODK-X Suitcase Application project here or in the project [slack channel](https://odk-x.slack.com/archives/C01QW4RBGUT).

**Introduction**  
[ODK-X Suitcase](https://docs.odk-x.org/suitcase-intro/) is a cross-platform application that allows users to download and update data from an ODK-X Cloud Endpoint on a personal computer. This gives our users quick access to their data in CSVs that they can open in spreadsheet software. They have convenient granular control over their aggregated data from any laptop, in the field or back at the office. Suitcase also enables upload of configuration files to create an ODK-X Tables or ODK-X Survey application.

This year we would like to expand Suitcase’s functionality and make it more useful and usable for our users. Examples of Suitcase improvements:

- Currently, users must know the exact name of the table they want to download. Suitcase could be expanded to query the list of tables currently available on an ODK-X Cloud Endpoint. The list of current tables should be presented to the user so they can choose an action to perform on the table (instead of having to type in the table name).
- Add functionality to enable a user to select one or more database tables to download from the ODK-X Cloud Endpoint at once. Currently, a user downloads a table’s information one at a time.
- Improve error handling so the error messages contained in the HTML response are propagated to the user-interface.
- Save user credentials
- Have a confirmation dialog before “resetting” a ODK-X Cloud Endpoint as the process erases all data.

[Suitcase](https://github.com/odk-x/suitcase/) is written in Java with a Swing GUI. It uses the [Sync Client](https://github.com/odk-x/sync-client) library to communicate with the ODK REST interface. This project may include changes to both Suitcase and Sync Client. It should not require any changes to the ODK-X Cloud Endpoint server.

**Github** : [Suitcase Project](https://github.com/odk-x/suitcase/) and [Issue Queue](https://github.com/odk-x/tool-suite-X/issues)  
**Skills** : Java and Java Swing GUI  
**Difficulty** : Easy to Medium  
**Mentors** : @Vyankatesh, @dexter21, @W_Brunette

---

<div class="post-metadata">

**Author:** ![aortegon](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/aortegon/32/299_2.png) [@aortegon](https://forum.odk-x.org/u/aortegon)\
**Post date:** [March 12, 2021, 8:41pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/2 "2021-03-12T20:41:17Z")

</div>

I don’t know if this is the correct place tó comment some improvement for Sync-Endpoint, I apologize for the inconveniences, but I profite tó explain that an util feature tó be adressed for this Server is the possibility tó have more than one aplicaron: actually, only one is possible; if more than one were possible, we’ll gain efficiency, and we’ll optimize computational ressourxes, so ODK-X will be more useful.  
Also the feature is interesting to make possible have an application for testing purposes, while you have other jet tested aplicación un production

---

<div class="post-metadata">

**Author:** ![W\_Brunette](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/w_brunette/32/376_2.png) [@W\_Brunette](https://forum.odk-x.org/u/W_Brunette)\
**Post date:** [March 12, 2021, 8:49pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/3 "2021-03-12T20:49:30Z")

</div>

@aortegon, it is fine to suggest Suitcase UI improvements on this thread.

Sync-endpoint also has a possible internship project to improve the UI of Sync-Endpoint and add additional export functionality.

> [@Internship Project: Improve the ODK-X Sync Endpoint](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-sync-endpoint/1191):
>
> Welcome prospective [Google Summer of Code](https://summerofcode.withgoogle.com/) participants! Check out our DIAL [Sub-Org page](https://hub.osc.dial.community/t/gsoc-2021-dial-open-source-center/2134#odk-x) and our [main thread](https://forum.odk-x.org/t/welcome-gsoc-applicants/1195). Please discuss your ideas for the Improve the ODK-X Sync Endpoint project here or in the project [slack channel](https://odk-x.slack.com/archives/C01QVU66BJ6). Introduction [ODK-X Sync Endpoint](https://docs.odk-x.org/sync-endpoint/) is a Java server that hosts data collected on the ODK-X platform. It implements the [ODK-X Sync Protocol](https://docs.odk-x.org/odk-2-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, provid…

Moving away from a docker micro-service architecture is out of scope for an internship project.

---

<div class="post-metadata">

**Author:** ![aortegon](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/aortegon/32/299_2.png) [@aortegon](https://forum.odk-x.org/u/aortegon)\
**Post date:** [March 12, 2021, 9:12pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/4 "2021-03-12T21:12:20Z")

</div>

Ah!! Ok @W_Brunette , I have wrong about the cirrect internsheep project, excuse-me!

Thanks for the explanation!  
Althought it’s out of scope, there os not a correct place tó suggest It, ir, perhaps, is not interesting for some reason?

---

<div class="post-metadata">

**Author:** ![W\_Brunette](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/w_brunette/32/376_2.png) [@W\_Brunette](https://forum.odk-x.org/u/W_Brunette)\
**Post date:** [March 12, 2021, 9:14pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/5 "2021-03-12T21:14:19Z")

</div>

Starting a new thread is a fine place to suggest it. A discussion on that belongs in either the Features or Development categories.

---

<div class="post-metadata">

**Author:** ![W\_Brunette](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/w_brunette/32/376_2.png) [@W\_Brunette](https://forum.odk-x.org/u/W_Brunette)\
**Post date:** [March 13, 2021, 8:39pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/6 "2021-03-13T20:39:00Z")

</div>

A post was merged into an existing topic: [Hosting multiple apps on the Sync Endpoint Server](https://forum.odk-x.org/t/hosting-multiple-apps-on-the-sync-endpoint-server/1064/4)

---

<div class="post-metadata">

**Author:** ![elmps2018](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/elmps2018/32/105_2.png) [@elmps2018](https://forum.odk-x.org/u/elmps2018)\
**Post date:** [March 17, 2021, 1:55pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/8 "2021-03-17T13:55:25Z")

</div>

Hi @Harshita\_Srinivas! The Outreachy contribution period has not started yet, but you are welcome to check out the similar “Getting started” instructions for GSoc: [Welcome GSoC applicants!](https://forum.odk-x.org/t/welcome-gsoc-applicants/1195) about how to get started!

---

<div class="post-metadata">

**Author:** ![shubham\_raj](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/shubham_raj/32/815_2.png) [@shubham\_raj](https://forum.odk-x.org/u/shubham_raj)\
**Post date:** [March 26, 2021, 7:17am UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/9 "2021-03-26T07:17:40Z")

</div>

> [@Jeff\_Beorse](#):
>
> Add functionality to enable a user to select one or more database tables to download from the ODK-X Cloud Endpoint at once. Currently, a user downloads a table’s information one at a time.

Hi @Jeff_Beorse I had some query regarding this point .  
Does this mean that the user should be allowed to select multiple tables at once to download?  
As the user also has to select the download path and check other options like "download attachments " as well . Should the user be provided the download options for every table selected?

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![elmps2018](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/elmps2018/32/105_2.png) [@elmps2018](https://forum.odk-x.org/u/elmps2018)\
**Post date:** [March 26, 2021, 2:15pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/10 "2021-03-26T14:15:34Z")

</div>

Hi @shubham_raj! Yes, you have the right idea that the user should be allowed to select multiple tables at once to download!  
Great question on the attachments – that would be something to discuss/develop some options to consider. For example, download all attachments vs. select tables to download attachments. I do think some users will want to customize what they download by table, but others will want the efficiency of making this decision in one go for all the tables.

---

<div class="post-metadata">

**Author:** ![shubham\_raj](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/shubham_raj/32/815_2.png) [@shubham\_raj](https://forum.odk-x.org/u/shubham_raj)\
**Post date:** [March 26, 2021, 2:27pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/11 "2021-03-26T14:27:56Z")

</div>

Thanks a lot @elmps2018 , I got it . There are multiple ways to do it.  
I will try to include some good ideas in the proposal .

---

<div class="post-metadata">

**Author:** ![AubinCrispy](https://odkx.b-cdn.net/user_avatar/forum.odk-x.org/aubincrispy/32/839_2.png) [@AubinCrispy](https://forum.odk-x.org/u/AubinCrispy)\
**Post date:** [April 3, 2021, 1:36pm UTC](https://forum.odk-x.org/t/internship-project-improve-the-odk-x-suitcase-application/1190/12 "2021-04-03T13:36:12Z")

</div>

Hello everyone, Nice to meet you all. I am an outreachy applicant and I look forward to contributing to the ODK-X Suitcase Application.
