===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
- Wikimedia Commons is an online repository of free-use images, sound, and other media files.
- The Wikimedia Commons Android app allows users to upload media files and see nearby locations from their android phones/tablets.
- This project aims at providing the option to browse/search the Wikimedia Commons using the app.
- 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)
- @Nes
- @Nicolas_Raoul
===Deliverables (To be updated)
====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 repos and APIs|
| 14 May | Coding begins |
// Week 1 (14 - 20 May) //
- Familiarising featured images scrollable activity,
- Managing featured images view using Recycler views and libraries.
- Testing and fixing bugs in the activity.
// Week 2 ( 21 - 27 May) //
- Making UI changes to add Search button
- Implementing API Call requests to request Search results ( Initially implemented only for pictures).
- Displaying response results in the activity.
// Week 3 (28 May - 3 June) //
- Implementing threading to load Search results faster.
- Implementing Pagination to load Search results dynamically on page scroll.
// Week 4 ( 4-10 June) //
- Making UI changes to show other media in search results.
- Handling other media results - SVGs and Audio files.
- Getting feedback and testing.
<---- Review 1----->
// Week 5 ( 11-17 June) //
Describe the timeline of your work with deadlines and milestones, broken down week by week. Make sure to include time you are planning to allocate for investigation, coding, deploying, testing and documentation- Documenting initial results.
- Getting feedback and testing.
- Fixing bugs .
// Week 6 ( 18 - 24 June) //
- Making UI changes to implement category searching
- Making changes in API request methods.
- Finalising output according to category.
// Week 7 (25 June - 1 July) //
- Study APIs to analyse APIs how to get best search results.
- Designing the request and response to obtain best search results.
//Week 8 (2 - 8 June) //
- Making UI changes to implement Best search results.
- Getting feedback.
- Testing.
<---- Review 1----->
//Week 9 (9-15 July) //
- Getting nearby search results.
- Making UI changes to implement nearby search results.
//Week 10 (16-22 July) //
- Documentation of the project
- Completion of testing
- Fixing bugs.
===Participation
- Progress on my internship pit stops and 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.
===Past Experience
=====My Contributions to Wikimedia Commons Android:
- Issues
-- [[ https://github.com/commons-app/apps-android-commons/issues/1221 | Allow users to browse commons app ]]
-- [[ 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 ]]
- Merged PRs
-- [[ https://github.com/commons-app/apps-android-commons/pull/1164 | Pull down gesture for Nearby activity ]]
- Other PRs
-- [[ https://github.com/commons-app/apps-android-commons/pull/1220 | Added ratings features ]]
==Previous work on relevant projects:
===- MyBrowser app
[[ https://github.com/97balakrishnan/MyBrowser | Github repo ]]
- Android app MyBrowser- An Android browser to download all files from a webpage with a single click.
-- 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.
===- Simple Weather app
[[ https://github.com/97balakrishnan/SimpleWeatherApp | Github repo ]]
- Android weather app WunderGround api
-- Gets the user’s current latitude and longitude using GPS.
-- Places a request to the api and displays the response.
-- 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)
Add any other relevant information such as UI mockups, references to related projects, a link to your proof of concept code, etc