= Profile =
**Name:** Ritika Pahwa
**Email:** ritikapahwa4444@gmail.com
**Location:** Delhi, India
**Education:** Indira Gandhi Delhi Technical University for Women, India (Expected Graduation Year: 2024)
**LinkedIn:** [[ https://www.linkedin.com/in/ritikapahwa4444/ | Ritika Pahwa ]]
**GitHub:** [[ https://github.com/RitikaPahwa4444 | RitikaPahwa4444]]
**Other Communication modes: **Discord, Slack, Zulip
**Typical Working hours during GSoC: ** 9 am to 9 pm (IST) GMT +5:30
= Synopsis =
Wikimedia Commons is an Android app that enables users to upload and view pictures from their Android phone/tablet on the Commons server.
**Commons Android Repo:** [[ https://github.com/commons-app/apps-android-commons | GitHub ]]
= Project =
This project aims to fix uploads related issues and deal with metadata loss.
GitHub issue: [[ https://github.com/commons-app/apps-android-commons/issues/5129 | Make upload more reliable ]]
= Mentors =
= About me =
I am Ritika Pahwa, a third-year student at Indira Gandhi Delhi Technical University for Women, currently pursuing my B. Tech in Computer Science and Engineering. I love developing Android apps and have been exploring Android development since my first year at college.
**Achievements:**
- Winner, App Development Track, Innerve Summer of Code 2021 for Find Your Nanny app
- Selected as one of the 67 Gold Microsoft Learn Student Ambassadors out of 500+ nominations for conducting events on open-source contributions and other community involvement
- Awarded with Special Mention for being among the top 11 teams out of 400+ registrations in Ideate ‘N’ Solve, an ideathon organised by Google Developer Student Club, IGDTUW
- Secured a rank in the top 60 students in the Python Coding Competitive exam conducted by Centre of Excellence-AI, IGDTUW
- Ranked 140 among 1000+ participants on Codeforces in Kotlin Heroes: Practice 9
= Motivation for the proposal =
Being an admirer of great photographers and an open-source enthusiast, I always wanted to contribute to Commons. The fact that the uploaded pictures are used across Wikipedia inspires me even more since I am a regular user who loves authentic content on Wikipedia :) I have often experienced upload-related issues myself and would like to fix them so that all the Commons lovers get a seamless experience with the app.
= Relevant Skills =
- Experience in Android development with Kotlin, XML, Java
- Proficiency in using SQL and Room Database
- Git and GitHub
- Testing in Android: Instrumented as well as local tests
- Understanding of Retrofit, RxJava, Jetpack Compose
- Knowledge about Wikimedia APIs
= Previous Contributions to Commons =
[[ https://github.com/commons-app/apps-android-commons/pulls?q=is%3Apr+is%3Aclosed+author%3ARitikaPahwa4444 | Link to all the Pull Requests]]
| **S. No.** | **Issue No.** | **Issue Description** | **PR No.** | **Tasks Performed** | **Status **|
|------|--------|-------|-------|-------|-------|
| 1. | [[ https://github.com/commons-app/apps-android-commons/issues/5161 | #5161 ]] | Peer review: Always getting the same dozen pictures, no variety | [[ https://github.com/commons-app/apps-android-commons/pull/5170 | #5170 ]] | - Analysed and experimented with various API call parameters and URLs - Incorporated an entity to prevent older images from showing up again | Merged
| 2. | [[ https://github.com/commons-app/apps-android-commons/pull/5143 | #5074 ]] | Numbers cropped in Leaderboard | [[ https://github.com/commons-app/apps-android-commons/pull/5143 | #5143 ]] | Enabled auto-scaling of text | Merged
| 3. | [[ https://github.com/commons-app/apps-android-commons/issues/5157 | #5157 ]] | Longer questions not appearing completely in Peer Review | [[ https://github.com/commons-app/apps-android-commons/pull/5162 | #5162 ]] | Changed the layout height to wrap_content as longer questions were not visible completely even on scrolling | Merged
| 4. | [[ https://github.com/commons-app/apps-android-commons/issues/4671 | #5671 ]] | Robolectric 'application: Application!' is deprecated. Deprecated in Java | [[ https://github.com/commons-app/apps-android-commons/pull/5140 | #5140 ]] | Changed the deprecated RuntimeEnvironment.application to ApplicationProvider.getApplicationContext() in all the robolectric unit tests and optimised the imports accordingly | Merged
Pull Request review [[ https://github.com/commons-app/apps-android-commons/pull/5183 | here ]]
= Implementation=
1. [[ https://github.com/commons-app/apps-android-commons/issues/5015 | #5015 ]]: Picture location is lost on recent versions of Android
**Possible Implementation Strategy:** Since the app can detect the location in the regular selector, the same strategy can be applied to the custom selector too.
2. [[ https://github.com/commons-app/apps-android-commons/issues/5128 | #5128 ]]: Upload often fails, especially when uploading 5 or more pictures over a slow Internet connection.
**Possible Implementation Strategy:** As described in the issue itself, the network parameters need to be experimented upon, and a retry loop may be incorporated.
3. [[ https://github.com/commons-app/apps-android-commons/issues/5136 | #5136 ]](if time allows) Retried uploads stuck in queued state
**Possible Implementation Strategy:** As observed [[ https://github.com/commons-app/apps-android-commons/issues/5136#issuecomment-1386304752 | here ]], the uploading process gets resumed when a new upload is performed. This means that the STATE_QUEUED needs to be updated appropriately to the same state as that of a new upload once the internet connectivity resumes/the paused uploads are started again.
= Timeline=
| **Timeframe** | **Classification** | **Task** |
| 4 May - 28 May | Community Bonding Period | Connect with the mentors and learn more about the community, familiarise with the app structure, understand more about the upload process
| 29 May - 4 June | Deliverable | Fix for issue [[ https://github.com/commons-app/apps-android-commons/issues/5015 | #5015 ]]
| | Subtask 1 | Finalise the implementation strategy
| | Subtask 2 | Replicate the regular selector behaviour on custom selector
= Availability =
> **Are you eligible for Google Summer of Code? **
Yes.
> **Do you plan to submit any other proposal apart from this one? **
No, I plan to submit only one proposal.
> **Do you have any other plans during the period of GSoC? **
No, I do not have any other plans during the contribution period.
> **How many hours per week can you dedicate to this?**
Since I would be having my summer break, I can dedicate approx 35-40 hours per week.
> **Have you been accepted to GSoC before?**
No.