===Profile Information
**Name**: Kanahia
**Email**: kaushalkanahia@gmail.com
**Location**: Patna, Bihar, India
**Time zone**: GMT+5:30 (Kolkata)
**Education**: Indian Institute of Technology, Patna (IIT-P) (Expected Graduation Year: 2026)
**LinkedIn**: [[ https://www.linkedin.com/in/kanahia-kaushal-9850bb253/ | kanahia-kaushal ]]
**GitHub**: [[ https://github.com/kanahia1 | kanahia1 ]]
**Other Communication modes**: Discord, Zulip, Telegram
**Typical Working hours**: 9 am to 9 pm (IST) UTC+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. Aim of this project is to improve upload queue management, and modernize the app.
**Mentors -** @Nicolas_Raoul @RitikaPahwa4444
> Have you contacted the mentors already ?
Yes.
===Deliverables and Implementation Strategy
{F42699549} {F42702940}
- Implement new design for upload queue management
- Here is the proposed design https://github.com/commons-app/apps-android-commons/issues/5583#issuecomment-1977122906. I hope to make more changes as per the suggestions and feedback.
- For the proof of work with User Experience Design I have attached issue raised and pull requests created by me for UI Design.
- Replace Kotlin Extensions and Butterknife with View Binding
- On searching for import butterknife.BindView and import kotlinx.android.synthetic gave 17 files as results in total which I feel can be replaced within time allotted in timeline.
- Implement Real Queue and Write Test Cases for newly Added Functionality
- Fix queued upload gets stuck and restarting the app does not make it start
- Prevent retries for genuinely failed uploads
- Fix the app erroneously showing successfully uploaded images as "Failed"
- Since app shows “Failed” due to cutting off internet a right time. This should be fixed by verifying the information of current uploads with server on network change and changing the UI as per the data received.
- Make Nearby show all pins that could be presented on the screen, rather than a circle
- Already implemented https://github.com/commons-app/apps-android-commons/pull/5553
- Split Nearby into a fast query for coordinates + a details query for each pin.
- Write Documentation and Create Test Cases for all the functionality created.
===Timeline
| Period | Task |
|-----------------------|-----------------------------------------------------------------------------------------------|
| **May 4 to May 26** | **Community bonding period ** |
| | • Wikimedia Hackathon’24 (May 4 to May 8) |
| | • Introduce myself to mentors and other contributors (May 9 to May 26) |
| | • Develop new UI for upload queue management in Figma |
| | • Take feedback from others (Contributors + Mentors) regarding new UI |
| | • Implement new design |
| May 27 to May 29 | Write test cases for the newly implemented design |
| May 30 to June 12 | • Replace Kotlin Android Extensions and Butterknife with View Binding |
| | • Fix failing test cases caused due to replacement |
| June 13 to June 26 | • Implement real queue in which uploads should be performed one by one |
| | • Write test cases for new added functionality |
| June 27 to June 30 | Fix queued upload gets stuck and restarting the app does not make it start [Issue #5603](https://github.com/commons-app/apps-android-commons/issues/5603) |
| July 1 to July 7 | Prevent retries for genuinely failed uploads [Issue #5284](https://github.com/commons-app/apps-android-commons/issues/5284) |
| **July 8 to July 12 ** | **Mid Term Evaluations** |
| July 13 to July 19 | Fix the app erroneously showing successfully uploaded images as "Failed" [Issue #5280](https://github.com/commons-app/apps-android-commons/issues/5280) |
| July 20 to July 31 | Enqueue failed uploads, rather than uploading them simultaneously with the ongoing upload [Issue #5283](https://github.com/commons-app/apps-android-commons/issues/5283) |
| August 1 to August 3 | Make Nearby show all pins that could be presented on the screen, rather than a circle [Issue #5480](https://github.com/commons-app/apps-android-commons/issues/5480) |
| August 4 to August 15| Split Nearby into a fast query for coordinates + a details query for each pin [Issue #4560](https://github.com/commons-app/apps-android-commons/issues/4560) |
| August 16 to August 28| • Write documentation and update appropriate guides for implemented functionalities |
| | • Complete if there is any backlog |
| August 26 to September 2| Mentors submit final GSoC contributor evaluations |
| **September 3** |** Initial results of Google Summer of Code 2024 announced ** |
===Participation
- Communicate with the mentors through Github or Zulip and incorporate all the suggestions.
- I will be online on my working hours 9 am to 9 pm (GMT+5:30)
- Write blog on medium on completion of every task.
- I am also available to be contacted through my email.
===About Me
I am Kanahia, a student of Mathematics and Computing at the Indian Institute of Technology, Patna (IIT Patna), I am a coding enthusiast. It has been 2 years since I started working with Android, I am comfortable with Firebase, Git, UI Development, Retrofit, and Canvas. I have also worked with NodeJS, Express, and MongoDB. I gained my experience by working with the Android team of my college that creates apps for Inter-IIT competitions and created apps for fests that take place in the college.
>How did you hear about this program?
I got to know about this program from my seniors.
>We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?
I am only applying for Google Summer of Code and only with Wikimedia Foundation.
===Past Experience
Research Intern, Sveučilište u Zagrebu:
- Developed Android App for visualization of Smart House in Augmented Reality.
- Created React Website to create, edit houses which can be later on visualized on the Android Device
Research Intern, CSE Department IITP:
- Mapped the heritage site of Nalanda University using LiDAR technology.
- Reconstructed Nalanda University in Virtual Reality using Unity.
- Developed an Android application aimed at aiding evacuation procedures during earthquakes.
My Personal Projects:
[[ https://github.com/kanahia1/Boolian | Boolian ]]: The main idea of this app is help users to learn NFTs with the help of Images, Articles, and Videos. The course in the app is created to help users learn perfectly. The project is different as there are few resources to learn NFTs. In this project, I created custom UI components that are not available in Android itself. In this project I used Firebase Auth, Firebase and I created the UI for this app.
[[ https://github.com/kanahia1/Med.io-Android | Med.io ]]: The app specializes in utilizing a decentralized database to enhance transparency in the healthcare sector using cryptographic measures. Primary focus areas include ensuring interoperability, maintaining a decentralized secure database, implementing cryptographic measures, providing hassle-free service, and incorporating AI/ML models to enhance user feasibility.
More information is available [[ https://kanahia.notion.site/kanahia/Hi-I-m-Kanahia-992f9f4edf834bc5983fcd4153b787ab | here ]].
===Acheivements
- Led the team of finalists at Smart India Hackathon’23
- Got selected for a research project funded by Department of Science and Technology, Government of India
- Showcased research projects at India Mobile Congress, at Pragati Maidan, Delhi
- Secured a rank in the Top 1% of all students who appeared for the JEE ADVANCED exam.
===Volunteer Experience
- Sub-Coordinator, NJack:
- Took sessions of 200+ students regarding Git and Android Development.
- Organised Codepeak - It is month-long program that helps students understand the paradigm of Open-Source contribution.
- Sub-Coordinator, E-Cell:
- Helped in organizing the Hult Prize OnCampus program on the campus.
- Organised fun events for the members of the E-Cell.
===Relevant Skills
- Experience in Android development with Kotlin, Java
- Proficiency in using SQL and Room Database
- Git and GitHub
- Testing in Android: Instrumented as well as local tests
- Understanding of Retrofit, Jetpack Compose
- Experience with Wikimedia APIs and SPARKQL
===Previous Contributions to Commons
I have been contributing to the Commons Android app since October 2023. You can find all my pull requests [[ https://github.com/commons-app/apps-android-commons/pulls?q=is%3Apr+is%3Aopen+author%3Akanahia1+sort%3Aupdated-desc | here ]].
**Total:** 12
**Merged:** 9
**Open:** 3
**[[ https://github.com/commons-app/apps-android-commons/graphs/contributors?from=2023-08-04&to=2024-03-17&type=a | ++2,804 --2,232 ]]**
**Pull Requests**
| S. No. | PR No. | Description | Status |
|--------|--------|---------------------------------------------------------|---------|
| 1. | [[ https://github.com/commons-app/apps-android-commons/pull/5356 | #5356 ]] | Fixed Grey empty screen at Upload wizard | Merged |
| 2. | [[ https://github.com/commons-app/apps-android-commons/pull/5403 | #5403 ]] | Replaced Mapbox with osmdroid (Nearby activity) | Merged |
| 3. | [[ https://github.com/commons-app/apps-android-commons/pull/5415 | #5415 ]] | Added voice input for caption and description | Merged |
| 4. | [[ https://github.com/commons-app/apps-android-commons/pull/5443 | #5443 ]] | Replaced mapbox to osmdroid (Upload Activity) | Merged |
| 5. | [[ https://github.com/commons-app/apps-android-commons/pull/5450 | #5450 ]] | Fixes #5439 by capitalizing first letter of voice input| Merged |
| 6. | [[ https://github.com/commons-app/apps-android-commons/pull/5464 | #5464 ]] | Fixes on Edit button, there is + sign overlayed over letter E | Merged |
| 7. | [[ https://github.com/commons-app/apps-android-commons/pull/5475 | #5475 ]] | Replace Mapbox with OSMDroid (Explore Activity) | Merged |
| 8. | [[ https://github.com/commons-app/apps-android-commons/pull/5481 | #5481 ]] | Fixed javadoc issue | Merged |
| 9. | [[ https://github.com/commons-app/apps-android-commons/pull/5555 | #5555 ]] | Removed MAPBOX Access token | Merged |
| 10. | [[ https://github.com/commons-app/apps-android-commons/pull/5575 | #5575 ]] | Fixed Clicking on edit photo shows default rotation | Opened |
| 11. | [[ https://github.com/commons-app/apps-android-commons/pull/5553 | #5553 ]] | Made Nearby show all pins that could be presented on the screen, rather than a circle | Opened |
| 12. | [[ https://github.com/commons-app/apps-android-commons/pull/5616 | #5616 ]] | Fixed Blue square appears at end of description of image uploaded | Opened |
**New Issues Raised**
| S. No. | Issue No. | Issue Description | Status |
|--------|-----------|---------------------------------------------------------------------|-----------|
| 1. | [[ https://github.com/commons-app/apps-android-commons/issues/5458 | #5458 ]] | Replace Mapbox with OSMDroid in Explore Activity | Completed |
| 2. | [[ https://github.com/commons-app/apps-android-commons/issues/5457 | #5457 ]] | App crashes on pressing the "My Location" icon in the upload wizard| Completed |
| 3. | [[ https://github.com/commons-app/apps-android-commons/issues/5502 | #5502 ]] | Clicking on edit photo shows default rotation (Upload Activity) | Opened |
| 4. | [[ https://github.com/commons-app/apps-android-commons/issues/5566 | #5566 ]] | Remove the Mapbox-related imports in Java/Kotlin/Gradle | Opened |
| 5. | [[ https://github.com/commons-app/apps-android-commons/issues/5531 | #5531 ]] | Circular Progress bar keeps on moving even though nomination for deletion is successful | Opened |
| 6. | [[ https://github.com/commons-app/apps-android-commons/issues/5611 | #5611 ]] | Remove Mapbox from CREDITS | Opened |
| 7. | [[ https://github.com/commons-app/apps-android-commons/issues/5625 | #5625 ]] | Change snackbar's error message in the User Page | Opened |
===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 will be having summer break till **20 July** I will be available for at least 40 hours a week through online platforms and am ready to extend whenever needed. I would be working full-time for GSoC.
>Have you been accepted to GSoC before?
No. I am applying in GSoC for the first time.
===After GSoC
I would like to keep contributing to Wikimedia after GSoC and will be available to resolve issues and manage pull requests. Even if I am not selected this year, I would like to help this project by resolving issues, suggesting new ideas, and participating in discussions. I usually help people with code. I would like to keep contributing to the Wikimedia organization and do whatever I can to help.