VOOZH about

URL: https://phabricator.wikimedia.org/T387664

⇱ ⚓ T387664 Outreachy 30: Improve the Nearby feature of the Commons Android app


Maniphest T387664

Outreachy 30: Improve the Nearby feature of the Commons Android app
Closed, ResolvedPublic

Description

Project title: Improve the Nearby feature of the Commons Android app

Brief summary:
The Commons app is an open source Android app that allows anyone to upload pictures to Wikimedia Commons (the image repository used by Wikipedia, Wikinews and other projects).

The goal of this project is to improve the Nearby feature. The nearby feature shows nearby Wikipedia (actually Wikidata) articles missing a picture and allows users to upload a picture for each. The Nearby feature has many small-to-medium size bugs that need fixing, in particular:

Skills required:

  • Kotlin or Java
  • Android development

Experience with Wiki technologies is NOT required.

Learning outcomes: Learn how to reproduce bugs in an Android/Kotlin app, fix them and interact with testers.

Possible mentor(s):

Microtasks: https://github.com/commons-app/apps-android-commons/labels/good%20first%20issue

Any other additional information that the interns should know about:

IMPORTANT: GSoC / Outreachy candidates are required to complete micro-tasks during the application period to prove their ability to work on a three month long project

Event Timeline

Nicolas_Raoul renamed this task from Outreachy 30: Commons app - Improve the app using AI and especially embedded LLMs to Outreachy 30: Improve the Nearby feature of the Commons Android app.Mar 2 2025, 11:20 PM
Nicolas_Raoul updated the task description. (Show Details)
Nicolas_Raoul renamed this task from Outreachy 30: Improve the Nearby feature of the Commons Android app to Outreachy 30: (details undisclosed for now pe Outreachy rule).Mar 3 2025, 8:17 AM
Nicolas_Raoul renamed this task from Outreachy 30: (details undisclosed for now pe Outreachy rule) to Outreachy 30: (details undisclosed for now per Outreachy rule).
Nicolas_Raoul updated the task description. (Show Details)
Nicolas_Raoul updated the task description. (Show Details)
Comment Actions

@debt @LGoto We've been trying to figure out how to hide our task as per the Outreachy rules, and neither @Nicolas_Raoul nor myself seem to have the option to do so. Presumably because we aren't members of this board? Any help would be appreciated.

Also, when should we post the task on the Outreachy portal?

LGoto changed the visibility from "Public (No Login Required)" to "acl*outreachy-mentors (Project)".EditedMar 3 2025, 4:40 PM
Comment Actions

Hi @josephine_l and @Nicolas_Raoul I've added you both to the group and hidden this task for you. Apologies for the confusion!

Feel free to re-add your details to this task now.

Please submit your proposal to the Outreachy site at your earliest convenience.

josephine_l renamed this task from Outreachy 30: (details undisclosed for now per Outreachy rule) to Outreachy 30: Improve the Nearby feature of the Commons Android app.Mar 4 2025, 4:09 PM
josephine_l updated the task description. (Show Details)
Comment Actions

Thanks @LGoto ! I have re-added the task details. I believe @Nicolas_Raoul has submitted the proposal on the Outreachy website, but I can't seem to sign up to co-mentor. My dashboard just shows the project that I mentored for Outreachy in 2018, and no other options. The "sign up as mentor" page brings me to https://www.outreachy.org/communities/cfp/ which says they are closed?

Comment Actions

Thank you @josephine_l ! I've approved the proposal on the Outreachy website. I'm not sure why you can't sign up as we have had people sign up today, so that should still be open. I'm checking with the Outreachy organizer team and will hopefully have an answer for you soon.

Comment Actions

@josephine_l Outreachy team said to use our page https://www.outreachy.org/communities/cfp/wikimedia/ Use the “Select project to co-mentor” drop-down at the bottom of the page. Please try that and let me know if it works for you!

Comment Actions

@josephine_l Great, you should now be approved :) Thank you for your patience!

LGoto changed the visibility from "acl*outreachy-mentors (Project)" to "Public (No Login Required)".Mar 14 2025, 5:27 PM
Comment Actions

Congratulations @sonal1234_yadav on being selected for Outreachy! 🎉
Wishing you a great journey ahead—happy coding and best of luck with the program!

As you move through the community bonding period, feel free to refine your project timeline and finalize the steps leading up to the coding phase. If you have any questions, don’t hesitate to reach out—whether on Zulip, via email, or directly on this ticket.

Comment Actions

INTERNSHIP REPORT

Week -1 (2 June-7 June )
Task Progress:

  • Working on #5674 (Nearby → Custom picker: only one image selection); opened a PR.
  • Completed #6183 — removed extra sentence in "Report a problem" feature. PR Link
  • Completed #4553 before. PR Link
  • Write my first biweekly blog.

Challenges Faced:

  • Faced a build failure caused by untranslated strings from TranslateWiki (error.xml).
  • Understanding the custom picker logic and data flow between fragments and view models took time.

Learnings & Skills Gained:

  • Understood how to work with Wikidata properties and represent them meaningfully in the UI.
  • Gained hands-on experience with Git workflows — resolving conflicts, rebasing, and making clean PRs.
Comment Actions

INTERNSHIP REPORT


Week -2 (8 June- 14 June )
Task Progress:

  • Working on #6185 (Nearby → Adding multiple images to Wikidata is harmful).
  • Completed #6191—The Upload Wizard's language drop-down now reflects the language used in the pin label, PR Link.

Challenges Faced:

  • The debugging process involved methodically using breakpoints to trace execution and validate parameter requirements, which demanded thorough analysis to ensure accurate interpretation.

Learnings & Skills Gained:

  • Learned to use git bisect to quickly identify the PR/commit that introduced a bug, eliminating the need for manual binary checks.
  • Gained practical experience in isolating regressions in large codebases efficiently.
Comment Actions

INTERNSHIP REPORT


Week -3 (15 June- 21 June )
Task Progress:

  • Working on #4465 (Nearby can not track current location or it takes too long to do).
  • Completed #6185—Adding multiple images to Wikidata is harmful, PR Link.
  • Posted my 2nd Biweekly blog here.

Challenges Faced:

  • Bug behaviour changed across commits, hard to isolate with git bisect.
  • Some commits skipped setting P18 for green pins; others overwrote existing images.

Learnings & Skills Gained:

  • Learned how to clearly document inconsistent behaviors across commits so that the team can easily understand the problem and the testing process.
  • How to analyze commit history for bugs.
Comment Actions

INTERNSHIP REPORT


Week -4 (22 June- 28 June )
Task Progress:

  • In progress #6008—Upload via Nearby: must not ask "Is this a picture of ...", PR Link.

Challenges Faced:

  • So far, I haven't encountered any issues while opening the pull request.
  • A potential challenge could arise if the PR doesn't fully resolve the issue, in which case I would need to revisit the logic, address maintainers’ feedback, and refine the solution accordingly.

Learnings & Skills Gained:

  • Gained hands-on experience in testing and validating functionality from another contributor’s pull request.
  • Learned to provide effective feedback by reviewing code critically while maintaining clarity and respect in collaborative open-source development.
Comment Actions

INTERNSHIP REPORT

Week -5 (29 June- 6 July )
Task Progress:

  • Completed #6008—Upload via Nearby: must not ask "Is this a picture of ..", PR Link.
  • In progress #6064—Nearby for super-popular item: stays grey until "Could not load place data Unexpected response code".
  • Posted my 3rd Biweekly blog here.

Challenges Faced:

  • I am finding it difficult to ensure that pins which fail to load (due to timeouts or server errors) are always shown as green fallback markers, instead of being left grey or broken.
  • Coordinating the fallback logic across different parts of the UI (list, map, and bottom sheet) is challenging and sometimes leads to inconsistent user experience.

Learnings & Skills Gained:

  • I am learning how to implement robust error handling and graceful UI fallback for network failures.
  • improving my ability to debug and update a large Android codebase.
Comment Actions

INTERNSHIP REPORT


Week -6 (7July - 13 July )
Task Progress:

still in progress #6064—Nearby for super-popular item: stays grey until "Could not load place data Unexpected response code".

Challenges Faced:

  • Ensuring the shortened query still triggered timeouts for popular items without overloading the server.
  • Distinguishing between occasional timeouts (likely valid) and widespread ones (possible server issue).

Learnings & Skills Gained:

  • Gained better understanding of handling timeouts gracefully in user-facing features.
  • Understood the importance of fallback logic when dealing with unreliable network or API responses.
Comment Actions

INTERNSHIP REPORT


Week -7 (14 July - 20 July )
Task Progress:

Completed #6064—Nearby for super-popular item: stays grey until "Could not load place data Unexpected response code, PR #6376.
In progress #6379 —Nearby place name missing in "Nearby Place Found" popup.

Challenges Faced:

  • Understanding and debugging the root cause of SPARQL query timeouts for popular items like the Eiffel Tower required analyzing how label and description retrieval affected query performance.
  • Ensuring that the optimised query worked correctly across all user-selected languages while avoiding Cartesian product issues during testing.

Learnings & Skills Gained:

  • Learned how to use the service efficiently in SPARQL to retrieve multilingual labels and descriptions without bloating the query.
  • Improved my understanding of SPARQL query optimization techniques and how query structure can drastically impact performance in real-world applications.
Comment Actions

INTERNSHIP REPORT


Week -8 (21 July - 27July )
Task Progress:

  • Posted 4th Biweekly blog here
  • In progress #6383 —Nearby labels not shown .

Learnings & Skills Gained:

  • Improved understanding of debugging workflows for Nearby uploads and verifying property updates (like P18) on Wikidata items.
Comment Actions

INTERNSHIP REPORT


Week -9 (28 July - 3 August )
Task Progress:

  • In progress #6351 —Nearby upload often fails ("Failed", "closed").

Challenges Faced:

  • Investigating why uploaded pictures via Nearby were not being linked to Wikidata (P18 property) even though the main branch handled it correctly.
  • Ensuring compatibility between the newly added field and the existing field without breaking other parts of the Nearby feature.

Learnings & Skills Gained:

  • Gained deeper understanding of how flags in influence edit permissions and Wikidata updates.
Comment Actions

INTERNSHIP REPORT

Week -10 (4 August - 10 August )
Task Progress:

In progress #6351 —Nearby upload often fails ("Failed", "closed").

Challenges Faced:

  • Faced difficulty in accurately reproducing the issue despite following the provided steps and trying multiple scenarios.
  • Uncertainty about the exact conditions or triggers causing the failure, making it challenging to proceed with debugging.
Comment Actions

INTERNSHIP REPORT


Week -11 ( 11 August - 17August )
Task Progress:

Challenges Faced:

  • Faced difficulty in accurately reproducing the issue despite following the provided steps.
  • Trying to solve the issue while learning ,that is taking bit more time.

Learnings & Skills Gained:

  • Improving my ability to debug in large codebase.
Comment Actions

INTERNSHIP REPORT


Week -12 ( 18 August - 25August )
Task Progress:

Learnings & Skills Gained:

  • Improved understanding of debugging workflows for Nearby uploads.
Content licensed under Creative Commons Attribution-ShareAlike (CC BY-SA) 4.0 unless otherwise noted; code licensed under GNU General Public License (GPL) 2.0 or later and other open source licenses. By using this site, you agree to the Terms of Use, Privacy Policy, and Code of Conduct. · Wikimedia Foundation · Privacy Policy · Code of Conduct · Terms of Use · Disclaimer · CC-BY-SA · GPL · Credits