Page MenuHomePhabricator

[Wikimedia Commons app] Allow users to browse Commons from app
Closed, DeclinedPublic

Description

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

  1. This project aims at providing the feature to browse Wikimedia Commons for media files via the commons application.
  2. Also allows user to search image with title as well as categories.

Main Features to be implemented

  • Search for images : This features requires the implementation of search bar on featured Image Activity. The search will be used to search images , other media and categories according to text. The steps are as follows:
    1. Implementing the search bar on the toolbar on featured image activity.
    2. Empty search bar will show the latest featured images in card view implemented in recycler view.
    3. After thorough reading of Wikimedia API start enable search bar to show images according to title searched.
    4. The searching will automatically take place as the user enters data in search bar using key listener.
    5. To enable fast searching only first 15-20 images will be loaded and rest when user scroll down.
    6. Enhancement in search bar, enabling it to search for category also.
    7. The possible UI will consist of two fragments in tabbed layout one showing results for images and other for categories.
    8. Recycler view will be used to list the image and for each image will use a card view and adapter to inflate the card view into recycler view.
  • Category Activtity: Category activity consists of subcategories and images present in that category. The proposed steps to implement it:
    1. Implementing category activity to display subcategories and images in that category with two fragments in tabbed layout one showing subcategories other showing images/media.
    2. Finalising wikimedia API request to fetch images and sub categories through Rx Java.
    3. Impelementation of lazy loading (Loading few images first and loading other images once user start scrolling down) for images and for subcategories if needed.
    4. Implementing fast CCI to show good images first by recursive checking of images present that are present in subcategories.
  • Skip Login Option : Many users refrain themselves from using application when they see Login screen. So it would be better to have user options to skip login and continue using application.
    1. We can provide user to browse commons and search for images but refrain user from uploading image.
    2. We can make use of shared Pref to store login status of user and accordingly disable features.
    3. Contributors Activity should not be displayed until user logins into application.

Other Features to be implemented

  • Contributors Activity UI : Enhancing contributors activity UI which shows latest images.
    1. Making proper card view with elevation for more appealing design.
    2. Rather than just showing image and name we can show or have more features in the preview. The features can be dowloading, sharing. Date can also be displayed with it.
  • Storing search results to give suggestion : The search results can be stored, so that next time user searches he will get suggestion about the previous searches he/she made.
    1. Atmost latest previous three searches can be stored in the database using sqlite.
    2. The suggestion list will be different for title searching and category searching.

      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

TimeTaskDeliverables
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 Functnality implementation and start working on it. Enhancing featured images Activity, finding 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 in search bar . 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)Adding functnality in search bar to search categories. Adding Tabbed Layout to incorporate category results. Discussing and start making UI for category results fragment.API reading category wise search,Enhancement Searching, Documentation and blog writing.
11 -15 JuneReview 1
Week 5 (16-24 June)Finish implementing UI for category search and. Adding lazy loading to fetch results dynamically as user scroll so as to increase speed.Category wise search.Change in contributors activity, 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 activityUI finalising for category activity, Documentation and blog writing.
Week 7 (2- 8 July)Finish implementing category activity. Implementing search result suggestion using SqliteCategory activity implementation, Search result suggestion Documentation and blog writing.
9 -13 JulyReview 2
Week 8 (14 - 22 July)Finalising Category Activity .Implementing lazy loading on images fragment 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)Implementing skip login option. Changing nav bar and shared Pref accordingly after discussing with mentors about implementation. Start modifying category activity to show best images using FastCCI.Implementing skip login option, best images in , Documentation and blog writing.
Week 10 (6 - 13 August)Continue working on Category Activity to fetch best images. Implementing proposed UI for Contributors ActivityEnhancing Category Activity, Enhancing Contributors Activity, Documentation and blog writing.
14- 21 AugustFinal 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.
  • 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.
  • Playstore Link
  • Github link

Contribution in wikimedia commons app

Merged Pull Requests

Issues Created

Any Other Info

Featured Image Activity
Image Fragment

Featured Image.jpeg (1×720 px, 51 KB)

Category Fragment

Notification.jpeg (1×720 px, 38 KB)

Contributors Activity

contribution.jpeg (1×720 px, 35 KB)

Event Timeline

Jatin0312 updated the task description. (Show Details)
Jatin0312 set the point value for this task to 3.
Jatin0312 removed the point value for this task.