= Profile Information
Name : S Balakrishnan
IRC nickname on Freenode : 97balakrishnan
Resume : [[ https://docs.google.com/document/d/1m2xPWAmnREVcf0WeJU-yKHyLNymDcSO779KukUpD36Q/edit?usp=sharing | Resume Link ]]
Location : Chennai,India
Typical working hours: 7am to 6pm Timezone: UTC+5:30
= Synopsis
==== About Wikimedia Commons
- Wikimedia Commons is an online repository of free-use images, sound, and other media files.
- The Wikimedia Commons Android app allows users to contribute by upload media files and see nearby locations from their android phones/tablets.
=== About this Project
This project aims at providing the option to
1. Browse/search the Wikimedia Commons using the app.
2. Download and Share content available in Wikimedia Commons
Providing this feature will be made to users without the need to login.This feature makes the content more convenient to access in the android platform and contributes to the aim of Wikimedia Commons " To provide a media file repository that makes available public domain and freely-licensed educational media content to all, and that acts as a common repository for the various projects of the Wikimedia Foundation."
=== Possible Mentor(s)
- Mentor @Nes
- Co-Mentor @Nicolas_Raoul
=== Have you contacted your mentors already?
Yes. I have already contacted both my mentors while working on several issues in github and got feedback while documenting this proposal.
===Deliverables
====Timeline
| Time | Task |
| 12 - 27 March | Proposal Reviewing and getting suggestions from mentors |
| 27 March - 23 April | Contributing to Commons Repo by reporting issues, making PRs |
| 23 April -14 May | Community bonding and getting familiar with the Wikimedia ,WikiData and Commons APIs|
| 14 May | Coding begins |
==== Week wise coding Plan/Schedule
| Week 1 (14 - 20 May) |
- Getting in-depth implementation details and clarifying doubts with mentors on WikiMedia , Commons , WikiData APIs
- Learning JavaRx.
- Familiarising myself with featured images scrollable activity implementation,
- Designing a sample RecyclerView UI for search activity
- Designing a sample UI for Search History.
- Getting feedback from mentors.
| Week 1 Deliverables |
- Finalised design and implementation plan for search activity and search history.
- Documentation and blog.
| Week 2 ( 21 - 27 May) |
- Started UI implementation for Search activity.
- Testing and finding bugs in featured images scrollable activity.
- Reporting issues and discussion with mentors on how to fix the bugs.
- Fixing bugs and issues in feature images activity and performing final tests.
| Week 2 Deliverables |
- Fully functional featured images activity without any bugs.
- Documentation and blog
| Week 3 (28 May - 3 June) |
- Implementing UI for Search Activity. ( Initially implemented only for pictures).
- Studying API Call requests to request Search results
- Implementation plan discussion with mentors.
- Displaying response results in the activity.
| Week 3 Deliverables |
- Completed Search activity for pictures.
- Testing , Documentation and blog.
| Week 4 ( 4-10 June) |
- Implementation for displaying other media results.
- Making UI changes to show other media in search results.
- Handling other media results - SVGs and Audio files.
| Week 4 Deliverables |
- Completed Search activity for pictures and other media.
- Getting feedback ,testing and debugging.
- Documentation and blog.
=== <- Review 1 ->
| Week 5 ( 11-17 June) |
- Discussion with mentors and design UI for category search.
- Implementing changes in API request methods.
- Finalising output according to category.
- Getting feedback,testing and fixing bugs,
| Week 5 Deliverables |
- Category wise search option fully implemented .
- Documentation done and blog updated.
| Week 6 ( 18 - 24 June) |
- Incorporate download and share option.
- Discuss on implementing bookmark option.
- Making necessary UI changes.
| Week 6 Deliverables |
- Download and share option
- Bookmark option.
- Documentation and blog.
| Week 7 (25 June - 1 July) |
- Study APIs to analyse APIs and discuss how to get best search results.
- Designing the request and response to obtain best search results for general search and category search.
| Week 7 Deliverables |
- Optimised search results
- Testing, Documentation and blog updation.
| Week 8 (2 - 8 July) |
- Discussion with mentors and plan to make search results faster.
- Implementing threading to load Search results faster.
- Implementing Pagination to load Search results dynamically on page scroll.
- Getting feedback and testing.
- Fixing bugs and make changes.
| Week 8 Deliverables |
- Optimised Search activity.
- Documenting results and blog.
=== <- Review 2 ->
| Week 9 (9-15 July) |
- Making changes in app to search nearby places.
- Making UI changes to implement nearby search results and integrate it with the existing nearby places activity.
| Week 9 Deliverables |
- Search feature completed in nearby places activity.
- Documentation and blog updation.
| Week 10 (16-22 July) |
- Discussion with mentors to make the search and nearby places activity available without login
- Making implementation changes.
| Week 10 Deliverables |
- Search and nearby places activity made available without login.
- Documentation and blog updation.
| 23 July - Aug 14 Deliverables |
- Perform final testing.
- Fixing bugs.
- Complete Documentation.
===Participation
- Progress on my internship goals would be tracked through project tasks and sub-tasks on Phabricator.
- I will remain active in Email,Hangouts,IRC
- I will regularly blog my learning at [[ https://medium.com/@97balakrishnan | https://medium.com/@97balakrishnan ]]\
===About Me
Tell us about a few:
- **Your education (in progress)** : Bachelor of Technology in IT 3rd Year at SSN College of Engineering,Chennai,India.
- **How did you hear about this program?** Through college seniors
- **Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?**
I don't have any other commitments during my semester holidays between May 16 to July 4. I can work ~30hrs a week after that.
- **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 only for GSoC as I am not eligible for Outreachy program. I am applying under Wikimedia Commons Android only.
- **What does making this project happen mean to you?**
It will be a great opportunity for me to contribute to FOSS , gain technical experience and learn a lot of new things.
=====My Contributions to Wikimedia Commons Android:
-- **//It feels great that the issue I originally created has been converted into a GSoC project idea: //**Link: [[ https://github.com/commons-app/apps-android-commons/issues/1221 | Allow users to browse commons app ]]
- Other Issues reported / involved in discussions
-- [[ https://github.com/commons-app/apps-android-commons/issues/1153 | Pull down gesture for Nearby activity ]]
-- [[ https://github.com/commons-app/apps-android-commons/issues/1151 | Navigation drawer gestures ]]
-- [[ https://github.com/commons-app/apps-android-commons/issues/1270 | Remove Manual Nearby updates ]]
-- [[ https://github.com/commons-app/apps-android-commons/issues/1192 | Option to edit Images in app before updating ]]
-- [[ https://github.com/commons-app/apps-android-commons/issues/264 | Refresh Nearby list on swipe ]]
-- [[ https://github.com/commons-app/apps-android-commons/issues/1309 | Making Nearby locations load faster ]]
- Merged PRs
-- [[ https://github.com/commons-app/apps-android-commons/pull/1164 | Pull down gesture for Nearby activity ]]
- Closed PRs
-- [[ https://github.com/commons-app/apps-android-commons/pull/1220 | Added ratings features ]]
-- [[ https://github.com/commons-app/apps-android-commons/pull/1191 | Additional fix: Refreshing stopped if no change in location ]]
===Past Experience
===- Infinity Downloader
**[[ https://play.google.com/store/apps/details?id=com.apps.balakrishnan.mybrowser&hl=en | Playstore link ]]**
[[ https://github.com/97balakrishnan/Infinity-Downloader | Github repo ]]
- Android app Infinity Downloader- An Android browser to download all files from a webpage with a single click.
- Specially made for SSN College Intranet files downloading
-- Retrieves the HTML code of the webpage. Uses **HTTPURLConnection** to parse the websites code and extract download links.
-- Parsing is done to extract download links from website
-- Download of files is done using **AsyncTask**.
-- Search suggestions based on Google Suggest Query Api using Retrofit Library.
-- Unsplash API used for generating background images
===- Simple Weather app
[[ https://github.com/97balakrishnan/SimpleWeatherApp | Github repo ]]
- Android weather app WunderGround api
-- Gets the user’s current latitude and longitude using **Location Manager**.
-- Places a request to the WunderGround API and get the response using RETROFIT (Client side REST API)
-- Uses RecyclerView to display the weather forecasts.
==Other Contributions:
===- FancyShowCaseView
- Merged PR [[ https://github.com/faruktoptas/FancyShowCaseView/pull/89 | Replaced android-apt with annotations ]]
===Any Other Info (To be updated)
- Timeline Graph https://image.ibb.co/h5ErHx/Timeline.png
- Search Activity Flow https://preview.ibb.co/nxk6Hx/Untitled_Diagram.png