=Profile=
**Name** : B Jatin Rao
**Email** : bjatinrao@gmail.com
**IRC nick** : jatin0312
**Github** : https://github.com/jatin0312
**Location** : India (UTC +5:30)
**Typical working hours** : Between 1 pm and 11 pm UTC +5:30
===Synopsis
**About Wikimedia Commons App**
- Wikimedia Commons is an online repository of free-use images, sound, and other media files.
- Wikimedia Commons app allow user to upload media files with different tags and categories.
- WIkimedia Commons app allow user to get more information about nearby locations.
**About Project**
# This project aims at providing the feature to browse Wikimedia Commons for media files via the commons application.
# Also allows user to search image with title as well as categories.
**Features to be implemented**
# **Search for images**: An activity for searching images according to title and categories.
# **Recent Featured Images**: An activity showing recently uploaded or edited images.
# **Media of the Day**: An activity showing media/image of the day.
# **Category Activtity**: Implement the category activity, which shows the sub-categories and the images present in that category.
**How the features will be implemented**
# A search activity with filters for searching image by title and categories.
# A category activity which allows searching of categories and display images as well as sub category related to that category.
# Implementing lazy loading and threading for pulling search result faster.
# Allowing users to save/share the media files produced by the result of search activity.
# A featured image activity with tabbed layout (two tabs). First tab displaying latest file, Second tab displaying Recent changes.
# Everyday a new notification to the user about media of the day and opening the media of the day page on click of notification.
# Showing best images in category activity by taking into consideration sub categories.
**Mentors**
- Mentor: @Nes
- Co-mentor: @Nicolas_Raoul
===Deliverables
| Time | Task | Deliverables
| April 23 to May 14 | (**Community Bonding period**) Getting Familiar with commons app architecture and app flow. Get completely working with wikidata and wikimedia api. Learning about RX java. Getting familiar with scrolling list of recently featured images. Designing UI to enabling search functionality and discussing it with mentors. | Community Bonding report, app architecture, suggestion feedback from mentors (UI).
| Week 1 (May 14 to May 21) | Finalising UI for Search Functunality implementation and start working on it. Enhancing featured images Activity, findng bugs and testing it| Finalising Featured image activity. Fixing bugs and testing, Documentation and blog writing.
| Week 2 (21-28 May)| Finalising Api call requests for searching images using title. Enabling searching images feature in Featured image activity. Ensuring bug free search of every type of media(including exotic formats such as SVGs or sounds) | Search feature in Featured image activity, Finding bugs and testing, Documentation and blog writing.
| Week 3 (28 May - 4 June)| Finding bugs in Featured image activity checking for edge cases for search button.Documenting the search button adding details about the same in tutorial activity. Ask for improvements in community. Release in Play store (at least in alpha) | Finalising search button,testing, documenting, Release in google play(alpha), Documentation and blog writing.
| Week 4 (5-10 June)| Implementing media of the day feature(if not implemented till that time) everyday at particular time giving notification about media day and on click of notification opens media of the day activity. Reading about search api for editing search function to enable category wise searching of media. Show user their last categories as suggestion using sqlite. | Media of the day activity, API reading category wise search,Enhancement Searching, Documentation and blog writing.
| 11 -15 June |Review 1 | |
| Week 5 (16-24 June)| After taking reviews from mentor about UI(category wise) and search request start implementing category wise search of images. Creating filter widget to switch between title and category wise search. | Category wise search.Filter for category and title search, Documentation and blog writing.
| Week 6 (25 June-1 July)| Designing and discussing UI with mentors for category activity. Finalising request methods from Wikimedia API to fetch sub categories and images(can use featured image activity for this) and start implementing category activity | UI finalising for category activity, Documentation and blog writing.
| Week 7 (2- 8July)| Start Implementing category activity with list of categories using recycler view and each category in a card view. Card view contains category name, first featured image(or information can be added with the help of suggestion.On clicking the card view a new fragment/activity showing images and sub categories. | Category activity implementation, Documentation and blog writing.
| 9 -13 July | Review 2 | |
| Week 8 (14 - 22 July)| Adding search option for searching categories in category activity. Fixing bugs in category activity. Taking feedbacks from mentor and community. Make documentation and release in playstore (alpha version) | Finalising Category activity, testing, documenting, Release in google play(alpha), Documentation and blog writing.
| Week 9 (July 30- August 5)| Discussing the UI of latest files activity which shows latest files uploaded. Discussing with mentors how to get best results with FastCCI using images present in sub categories. | Enhancing category activity and proposing UI for latest files activity, Documentation and blog writing.
| Week 10 (6 - 13 August)| Implementing FastCCI to find best image in category activity and start working on latest files activity | Latest file activity, Enhancement in Category activity, Documentation and blog writing.
|14- 21 August| Final Evaluation| |
===Participation
- I will work on different repo and make separate branch for implementing features so as to not mess up with master branch. The branch will be merged once complete review by mentors and testing is done properly.
- I will be online on IRC, hangouts and zulip channel in working hours Between 1 pm and 11 pm UTC +5:30 (time can be flexible according )
- I will update about all task in phabricator and use phabricator and github to communicate about features and UI.
- I will keep updating blog after every week and write about task completed and steps taken to complete that task.
===About Me
Tell us about a few:
- I am a third year Computer Science student studying at National Institute of Technology, Hamirpur. I am quite intrested in android development ad thus was involved in many app development during my study in the college.
- I heard about this program from my seniors as they organised various talk sharing their experience about GSOC.
- No I don't have any commitments during summer from 10th May to 30th July. The odd semester start from first week of August but still I can denote enough time for this project since there are no exams happening at that time.
- I am eligible only for GSoC and not for Outreachy program. I am applying under Wikimedia Commons Android only.
- From the first year of my college I was keen in developing android application and started learning android application.
In the meantime I learned about github and wanted to contribute to open source world and GSoC provides a great
platform for students to contribute in industry level project. As I searched for organisation I found wikimedia
oragnisation and started working with it. I liked there initiative of making users upload media and
edit images, as this will help in collecting images from various places from all over the world. As I started working on
this project I saw various scope of improvements and was thus motivated to take part in GSoC and add required
features for user friendly experience.
===Past Experience
I started learning android app development from first year and has developed many android application in the past two years since I started learning android development. Here are my projects :
**Predictive Path Analyzer**
- The app provides a self-learning automated system that helps re-route the vehicles causing traffic jam
on roads, aids priority vehicles in reaching their desired destinations, and also provides real time road
conditions to vehicle owners, thereby creating a convenient path for priority vehicle and thus, mitigating
traffic jam conditions ,delay for priority vehicles and road accidents.
- The app determines road traffic
density using a GPS system, and identifies the priority vehicles present on the road. An efficient path
determination algorithm developed using Machine Learning(K Means Clustering) technology provides
alternate routes to users present on the road
- Also, the road conditions are monitored for crevices
and bumps using accelerometer sensors, this helps in prevention of road accidents and reduces delay in
reaching destination.
- Stored Data about user and bumps and crevices in firebase and used FAN(Fast Android Networking) library for linking with backend for getting the best path.
- Used google maps API to display routes and alternative path with proper optimisation of speed to fetch result faster.
- Implemented SOS (Save our Soul) which notifies user about accident took place in near by region.
**Foss Master**
- FOSSmaster is an app that helps you get started with the Open Source World. You can view info
about your current repos starred repos on Github, manage your Pull Requests, view the feed from the
people you are following.
- You can find reports to start your contribution to Open Source by selecting
the programming language you are interested in and the difficulty level of that project.
- Used github API for to fetch details about logged in user. Used Retrofrit networking library to handle requests and response from backend (Made in NodeJs).
- Used recycler view with card view to display dashboard of github user.
- Used machine learning(Unsupervised learning) to divide repos into simple, medium and tough according to
languages.
- [[https://github.com/Sudo-Coders/FOSSmaster| Github link]]
**Hillffair 2k17**
- Hillffair 2k17 is the official Android Application of Cultural fest of NIT Hamirpur.
- This application includes details about various events happening in the fest and notifies user about the event that is
just going to get started.
- It also features like newsfeed in which people can post photos and it also includes like features as well.
- It included a quiz feature which was divided into categories and it invited more than 100 participants.
- [[https://play.google.com/store/apps/details?id=com.nith.appteam.hillffair17| Playstore Link]]
- [[https://github.com/appteam-nith/Hillffair17| Github link]]
===Contribution in wikimedia commons app
**Merged Pull Requests**
- [[ https://github.com/commons-app/apps-android-commons/pull/1248| Added feature for showing complete
notification on click ]]
- [[ https://github.com/commons-app/apps-android-commons/pull/1245| Added recenter button to direct user to current location]]
- [[https://github.com/commons-app/apps-android-commons/pull/1257| Avoided creation of multiple instance of Notification Activity]]
**Issues Created**
- [[ https://github.com/commons-app/apps-android-commons/issues/1323| Bug app crashes while uploading certain picture. ]]
- [[https://github.com/commons-app/apps-android-commons/issues/1317| Suggestion for dividing Nav bar into sections]]
- [[https://github.com/commons-app/apps-android-commons/issues/1224| Show complete text of welcome notification]]
- [[https://github.com/commons-app/apps-android-commons/issues/1228| Add re-center button to Nearby map]]
- [[https://github.com/commons-app/apps-android-commons/issues/1250| Multiple instances of Notification Activity are being opened]]
===Any Other Info
Will soon add mocks and UI for various activities mentioned in timeline.