Profile Information
Name - Rohit Verma
LinkedIn - rohit0111
GitHub - rohit9625
Location - Ghaziabad, India
Typical working hours - 9 am to 10 pm (IST) UTC+5:30
Synopsis
Summary
The Wikimedia Commons Android app allows users to upload pictures from their Android phone/tablet to Wikimedia Commons. It also provides several features like - Nearby, Maps, etc. for more usability.
This project aims to enhance the user experience by improving how the app handles Nearby and Maps with these objectives:-
- Enhanced User Experience: The proposed enhancements aim to streamline the Nearby and Maps functionalities, making them more intuitive and efficient for users. This will result in a more enjoyable and seamless experience when exploring Nearby, ultimately increasing user engagement and retention.
- Reduced Issues and Improved Stability: Through bug fixing and optimization efforts, this project will contribute to a reduction in the number of issues encountered by users. By addressing existing bugs and enhancing the app's performance, the overall stability and reliability of the Wikimedia Commons Android app will be greatly improved.
- Showcasing Innovation: The implementation of features such as smooth Nearby functionality and automatic searching akin to Google Maps will showcase the innovative capabilities of the Wikimedia Commons Android app.
- Implement nearby feature in Kotlin if required
- At last make User Experience as best as possible
Possible Mentor(s):-
@Nicolas_Raoul @RitikaPahwa4444
Have you contacted your mentors already?
YES.
Timeline
Period | Task |
---|---|
May 1 to May 26 | Community bonding period. I'll be working on existing bugs and enhancements labeled as nearby to get familiar with the feature's source code. Do research and have discussions with the mentors throughout this period. Practice SPARQL queries for nearby. |
May 27 | Coding officially begins! |
May 27 to June 9 | Work on Split Nearby into a fast query for coordinates + a details query and on some minor issues as well. Testing code in different environments at the weekends |
June 10 to June 23 | Replace the Search this area feature with automatic searching like Google Maps. Testing code and fixing related bugs(like:- Issue5529) will be considered during this period. |
June 24 to June 30 | There are memory leaks in the `NearbyParentFragment`. Will work on optimizing code to avoid memory leaks. |
July 1 to July 7 | Fixing : Issue4207 and testing of the optimizations by maintainers. |
July 8 to July 12 | Midterm evaluation period. |
July 12 | Begin further enhancements to the Nearby feature after midterm evaluation. |
July 14 to July 21 | Making recenter to the current location feature more reliable and accurate. Fix related bugs if time allows. |
July 22 to July 28 | I'll be working on the issue: Neaby pin does not disappear after submitting to Wikidata and fix related bugs also. Testing the changes at the weekend. |
July 29 to August 4 | Working on the task: Bookmarked item does not disappear from map. Testing and receiving feedback from mentors and making changes if necessary. |
August 5 to August 11 | Continuing to address any outstanding aspects of the tasks from the previous week. Also will be working on this exciting enhancement: Suggest a route of X kilometers around me, via as many Nearby points as possible throughout this period. |
August 12 to August 19 | Finishing any leftover tasks from before, if there are any, and wrapping up everything. Coding period ends officially by the end of this week. |
August 19 to August 26 | Final week: GSoC contributors submit their final work product and their final mentor evaluation (standard coding period). |
August 26 to September 2 | Mentors submit final GSoC contributor evaluations (standard coding period) |
September 3 | Initial results of Google Summer of Code 2024 announced |
Deliverables
Week 1(May 27 - Jun 2)
- Solve: Split Nearby into a fast query for coordinates + a details query
- Testing and review from the mentors
- Make necessary changes
Week 2(Jun 3 - Jun 9)
- Continue working on the query task and look for more optimizations
- Solve:- Wrong description language for Nearby upload
- Solve:- Items with P3999 (date of official closure)
Week 3(Jun 10 - Jun 16)
- Solve: Load pins as I move the screen, cache pins, remove "search this area" button
- Try to implement a smooth experience similar to the Google Maps
- Testing and reviews from mentors at the weekend
Week 4(Jun 17 - Jun 23)
- Work further on the same feature if something remains otherwise
- Solve: Maps tiles load slowly
- Testing over the weekend
Week 5(Jun 24 - Jun 30)
- My exams will likely be from the end of June, so I will work on light tasks.
- Look for optimization on the related code for better performance and prevent memory leaks by Nearby Fragment
Week 6(Jul 1 - Jul 7)
- Solve:- Consider items with a "point in time" (P585) as not existing anymore
- Final testing of the whole implementation till this week
- Evaluation by mentors before submitting midterm reports
Week 7(Jul 14 - Jul 21)
- Exams will conclude by the start of this week, and start working on making recenter to the current location more precise
- Solver:- Nearby can not track current location or it takes too long to do
- Solve:- Add direction the user is facing to Nearby real-time position
Week 8(Jul 22 - Jul 28)
- Continuing to address any outstanding aspects of the tasks from the previous week.
- Solve: Neaby pin does not disappear after submitting to Wikidata
- Testing over the weekend.
Week 9(Jul 29- Aug 4)
- Solve:- Bookmarked item does not disappear from map
- Performing testing on any changes during the weekend
Week 10(Aug 5- Aug 11)
- Continue working on any remaining tasks from the previous week, if applicable
- Solve: Suggest a route of X kilometers around me, via as many Nearby points as possible
- Manual testing will be conducted by both myself and my mentors over the weekend.
Week 11(Aug 12- Aug 19)
- Finishing any leftover tasks from before, if there are any, and wrapping up everything.
- A week dedicated to conducting manual testing across all possible scenarios.
Week 12(Aug 19- Aug 26) Final Week
- I will submit my final work product and project report(if necessary).
- Also submit the final mentor evaluation.
Note:- I will blog post my weekly progress every week or once every two weeks on my website or maybe on another platform(will decide through the bonding period).
Participation
- I will use Zulip for communicating and discussing with mentors. Email can be also used for discussions.
- Work on issues by creating a separate branch on my fork and keep the main branch up to date with the commons main branch. The main branch will be used for testing recent changes done by others.
- Elaborate my learnings during the internship period at any one blog platform.
About Me
Hello, I am Rohit and I am pursuing a Bachelor of Technology in Computer Science & Engineering from Babu Banarasi Das Institute of Technology, Ghaziabad. Currently, I am in my 6th semester of the 8-semester program and I'll be graduating in 2025.
How did I hear about this program?
I have been looking for opportunities to work on real-world projects through some kind of internship since my first year. Then, I got to know about Open Source Contribution and after some more research, I found this program Google Summer of Code, GSoC for short. I heard about this program from YouTube and Google itself.
Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?
Yes, I do have my college classes from 9 am to 2 pm that too 4 days a week as of my timezone. But I'll manage to work on tasks linked to this proposal after college.
I can manage to work at least 40 hours a week.
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 applying to the Wikimedia Foundation as a part of the Google Summer of Code program.
What does making this project happen mean to you?
As a tech enthusiast, I have been learning technologies since my first year and found Android Development interesting. I was willing to contribute to the Commons Android App since 2023 but I didn't have any development skills at that time. I practiced DSA in Java but that was not sufficient to contribute. Honestly, I got to know about the Commons Android app when I was exploring OSS. Before that, I didn't use any software like this. Then, I found this application useful for me as I click pictures for my hobby.
The large codebases and frameworks made me overwhelmed. Then, I started development in 2023 and learned Android Development with Koltin and Web Development as well. Now I am familiar with technologies like - Jetpack Compose, NodeJS, etc. However, the year passed so quickly and I made my first contribution in Jan 2024. I do know about working with modern technologies which can be useful to make commons updated not only by the latest version but with the latest technologies.
Past Experience
Bug Fixes
This is going to be my first experience working on an open-source project. So, I have fixed some bugs in Commons Android App to get familiar with the codebase.
- Added Referer header property: #5417
- Fixed CI failing error: #5431
- Made nearby pins more visible: #5440
- Added regex to identify colon before uploading image: #5451
- Fixed misplaced icons for small screens: #5467
- Minor change that prevents occurrence of different fragment: #5488
- Better response given to the user by Snackbar: #5541
- Added a codemap for language code at Gerrit: #5571
- Fixed language switching for Chinese and others: #5560
- Allow only 1 picture to be selected by System Picker through Nearby: #5680
- Rename be-x-old language code to be-tarask in languages list: #5676
Personal Projects
Although I worked on many Android projects through my learning process and created this note-taking app to conclude my learnings so far.
Pick Notes
Tech Stack: Kotlin, Jetpack Compose, Room, Retrofit, Dagger. NodeJS, and MongoDB for API.
Description: Pick Notes is an Offline First simple note-taking Android application developed using the MVVM pattern. It provides a simple and intuitive interface for managing personal notes conveniently. The application also includes authentication with client-side validations to ensure secure access to the note management functionality.
All the latest technologies are used in developing this application.
After GSOC
This is the first open-source project I am contributing to and I am lucky that I got helpful mentors The developer's community is very friendly and helpful. I feel like working in a motivated and helpful environment. I would love to contribute to the commons-android app after the GSoC. Also, consider mentoring next year's GSoC.