Page MenuHomePhabricator

Proposal : Feedback on how pictures uploaded to Commons are used and quiz/tutorial
Closed, DeclinedPublic

Description

Profile Information

Name : Ayushi Negi
Email : ayushin78@gmail.com
IRC Handle : ayushin78
Github : ayushin78
Web profile : https://ayushin78.github.io/
Hangouts Id : ayushin78
Location : New Delhi, India
Typical working hours : 10 PM TO 5 AM (+5:30 UTC) (Adjustable according to the Mentors)

Synopsis

Summary

About the app:
The Wikimedia Commons app is an open-source app created and maintained by grantees and volunteers of the Wikimedia community to allow the Wikimedia community to contribute content to Wikimedia Commons. Users can upload photographs taken directly from the app or from their device’s gallery which then goes directly to the organization’s database. Wikimedia commons accept only free content i.e images and media files that are not subject to any copyright. Users can upload multiple images at once and those can then be given various tags specific to them such as category, title, and description.

About the Project:
The project proposed for this summer aims at sharing feedback about uploaded photos, educating people about topic & copyright and adding some sort of gamification to drive engagement.

The project will be completed in three phases:-

  1. Sharing Feedback
  1. Develop a profile activity to let the users access their "profile" by clicking on the icon next to their username in the nav drawer. In this profile page, Display the following stats using [ urbanecmbot Tool](https://tools.wmflabs.org/urbanecmbot/commonsmisc/feedback.py?user=username):
    • Number of Uploads
    • Received thanks
    • Number of images used in Wikipedia/Wikivoyage/etc articles
    • Number of images that have been edited by someone else (including simple description typo fix and categorization)
    • Number of images that have been featured or received other kinds of awards
    • Number of Quality Images - Quality images are diagrams or photographs that meet certain quality standards (which are mostly technical in nature) and are valuable for Wikimedia projects
  2. Add the following two stats in profile activity
    • Received barnstars if API/tool for that becomes available
    • Include negative statistics (Number of Deletion requests/Upload revert rate) with a link to the deletion discussion/reason if possible to get an API for the same.
  3. Develop an info page which would display the information about each of the stats included in the profile page with titles such as 'What are the quality images' or 'What are the featured Images' etc to let the user know what his stats actually signify.
  4. Add a button Improve your stats on this info page to connect it with Tutorials so that the User could watch the tutorials again in order to improve his statistics.
  5. Add the info icon on the toolbar of the profile page to connect the info page with the profile dashboard.
  1. Tutorial & Quiz
  1. Develop a series of quiz pages similar to the tutorial pages with simple Questions with two buttons yes/no as answers
  2. Display the correct answer in a pop-up window whenever the user clicks on the wrong button.
  3. Extend the tutorial with the quiz pages by adding another button (example 'Take the Quiz') next to the welcomeYesButton in welcome_final.xml (Final Tutorial page). Continue the pages to the quiz pages if the user clicks on Take the Quiz or Skip to the ContributionsActivity if the user clicks on 'welcomeYesButton'.
  4. Explore the available APIs or Tools to find a way to get the upload revert rate
  5. If the revert rate becomes available, prompt the user with low revert rate to watch the tutorials again and take the quiz by opening a pop-up window whenever the user opens up the app. Add options such as Watch tutorials and I'll watch them later in the pop-up window. This way, User will be able to know that his stats are alarming with an option to watch the tutorials and also if the user has already seen the tutorials once he can cancel the pop-up window by pressing the other option.
  1. Gamification

Mentors

  • Mentor: @maskaravivek (member, Wikimedia Commons Android app)
  • Co-mentor: @josephine_l (project maintainer, Wikimedia Commons Android app). GitHub: misaochan

Have you contacted your mentors already?
Yes

Timeline

PeriodTaskDeliverables
March 22 to April 23Continue making contributions and get familiar with the app structure, getting comfortable with the coding standards of the organization, understanding the available APIs/Tools and their workings.Familiarity with the codebase, APIs and coding standards of the organization.
April 23 to May 13Community bonding period: Explore the APIs for fetching the information about the barnstars and the deletion request for determining the upload revert rate. Discuss with the community about the possible sources of this information. Finalize the components to be displayed on the profile board and the required APIs/Tools.APIs to be used. List of components to be displayed on profile board.
May 14 to May 20Design the mockups for the Profile dashboard and for the stats info page associated with the profile page. Improve the mockups through community feedback. Decide the information which will be displayed in the stats info page and Improve it through community discussion.Mockups for profile dashboard and Statistics Info page
May 21 to May 27Add implementation for all the components on the profile dashboard by adding the functions in ApacheHttpClientMediaWikiApi class to call the APIs. Discuss the approach with mentors.Basic Implementation of the profile page.
May 28 to June 3Populate the info page with the content decided and link the info page to the information icon on the toolbar of the profile page.Statistics Info page implemented.
June 4 to June 10Link the profile page with the icon present in the navigation drawer next to their username. Testing and debugging. Improve code quality. Documentation.Completely functional Profile dashboard and associated Stats info page.
June 11 to June 17Phase 2 - Come up with the questions to be asked on quiz pages. Discuss the content of the quiz pages with the community and mentors and improve it with their feedback. Finalize the content for the quiz pages, the content of the pop-up window to be displayed when the user clicks on the correct/incorrect answer and any improvement in the tutorial pages through discussion with mentors.Finalized Content for quiz and tutorial pages.
June 18 to June 24Design the mockups of the quiz pages. Improve the layouts through community feedback.Mockups for quiz and tutorial pages.
June 25 to June 28Prepare Midpoint Feedback report.Midpoint feedback report.
June 29Mid-point feedback
June 29 to July 6Make improvements based on the feedback received.Updated deliverables.
July 7 to July 14Add the functionality of YES/NO buttons present on the quiz pages with the pop-up windows. Change the last page of the tutorial by adding a Take the Quiz button next to the WelcomeYes button. Link the tutorial to the quiz by adding the quiz layouts in WelcomePageAdapter and by making the required changes in the WelcomeActivity.Functional quiz pages associated with updated tutorial pages.
July 15 to July 22Add the functionality of the Improve your stats button present on the stats info page by linking it to the tutorial pages. If the API/tool for the upload revert ratio becomes available, Discuss the approach with mentors on how to determine this rate to prompt the user to watch the tutorials.Updated Stats Info page. API for upload revert ratio.
July 22 to July 30Add a function in the ApacheHttpClientMediaWikiApi to fetch the revert rate. Add a function in the LoginActivity to check if the rate is greater than the threshold value. Make changes in the startActivity() function of the LoginActivity to redirect to a pop-up window if the rate is greater than the threshold.Functionality to determine if the user has crossed the upload revert threshold.
July 31 to 7 AugustImplement the pop up to redirect the user to WelcomeActivity(Tutorial pages) if the user clicks on Watch Tutorials or to the ContributionActivity if he clicks on No, I'll watch them later. Testing and debugging. Improve the code quality. Documentation.Functionality to prompt the users with high upload revert rate to watch the tutorials again and take the quiz.
7 August to 14 AugustComplete any lagging work. Final report. Documentation.A final report with phase 1 and phase 2 deliverables.

Gamification (Stretch Goal)

  • Implement the decided approach to gamification.
  • Testing, debugging and Documentation. Wrap up the final report.

Participation

  • I will use the hangouts channel for communication or through emails, as per the mentor’s convenience. Github issue tracker will be used for the community discussion. I’ll use a different branch for each new feature that I will be adding and will keep my master updated with the upstream. I will follow the best practices to write the commits and will keep the commit history clean.

About Me

  • Education

I am a Computer Science undergraduate at Bharati Vidyapeeth's College of Engineering, Delhi. The coursework includes Java, C++, Data Structures, Algorithms, Operating Systems and DBMS.

  • How did you hear about this program?

I heard about Outreachy through a friend of mine, Neha Jha, who got selected in the last round of Outreachy. She encouraged me to apply for this round.

  • 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 summer plans other than Outreachy/GSoC So, I will be able to work full time on this project.

  • 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)?

Yes, I am planning to apply for both GSoC and Outreachy with WikiMedia.

  • What does making this project happen mean to you?

Contributing to an open source project has always been a thrilling experience. The feeling of enjoyment that you get when your patch gets merged is beyond explanation. Moreover, It makes you get out of your comfort zone and gives you an opportunity to work on a real project.
This project focuses on enhancing the experience of users while making media contributions to Wikimedia Commons. I believe that it resonates with the idea of 'let everyone contribute to create something better' and this is what encourages me the most to work on this project. Adding feedback and creating interactive quizzes are great ways to improve the user experience as well as to enhance the quality of uploads.
Moreover, Working on this project will not only give me a chance to work under the guidance of experts but also an opportunity to reach a thousand of users through a few lines of code. Developing something useful for the community imparts an unparalleled sense of contentment and satisfaction.

Past Experience

  • Android Development

    Developed a Music player [Symphony](https://github.com/ayushin78/Symphony/) in android to get myself introduced with Android development. It has all the basic features of a music player.

    Developed a Weather App [Weather Companion](https://github.com/ayushin78/WeatherCompanion). This Android application fetches the weather conditions of the city using openweatherMap API and displays it on the screen. The user can send the info to their friends using it. The user can have the notifications of their area’s current weather as well as a forecast for the whole upcoming week.
  • JAVA

    Have a strong foundation in Data Structures and ALgorithms in java.

    Developed a simple Tic_Tac_Toe game using java.

    Developed an application which simulated banks like transactions with log-in, deposit, withdrawal, and transfer facility and also implementing different SQL Locking schemes. Technology Used: Java, Oracle SQL
  • JSP/Servlets/Hibernate

    Last summer, While doing an internship with a startup, I gained experience to work with JSP, servlets and hibernate.
  • Git

    It took me some time to understand the actual power of Git. It is not the first time I am contributing to an open source project. I started to work on open source projects two years back and learned how to use Git properly through my mistakes.

    [Algo_Ds_Notes](https://github.com/jainaman224/Algo_Ds_Notes/pulls)
    • A collection of all the major Data Structures and Algorithms Articles along with their codes implemented in various programming languages. Ranked 8th in Digital Ocean's hacktoberfest and has more than 400 stars on GitHub.
    • I have been involved in this project as one of the code maintainers and as an active contributor since the initial phase of this project.
    • This project helped me to learn version control system (Git) and to get introduced to the open source community.
  • Machine learning and Text summarization

    Published a review paper titled `“A study on various techniques for automatic text summarization"` in IEEE explore, 2017.

    Worked on a mini project `'Twitter Hate Speech Classification using eXtreme Gradient Boosted Decision Trees and LightGBM'`. This project was aimed to compare the traditional text categorization methods that fall within the machine learning paradigm (like SVM, Gaussian NB etc.) with the most recent machine learning algorithms which have become quite popular on the Machine Learning platforms like Kaggle (XGBoost and LightGBM).

    Currently, I am working on developing an abstractive text summarizer using Recurrent neural networks and attention mechanism.

Tasks completed:

Issues Created

Event Timeline

ayushin78 updated the task description. (Show Details)
ayushin78 added subscribers: maskaravivek, josephine_l.

Hi @ayushin78 ,

Thanks for submitting your proposal! :) It looks good to me in general, but I have a few suggestions:

  • In the timeline it is good that you have frontloaded your work and allocated time for mockups, testing and debugging, etc. However, I personally think too little time is allocated for implementation. E.g. For Phase 1 I would recommend moving "Decide the information which will be displayed in the stats info page. Improve it through community discussion." up into the mockup week so that you have at least 2 weeks for implementation.
  • We appear to be missing 5 days in June? ;) If you are allocating that time for writing your midpoint report, please do mention that.

Moreover, Working on this project will not only give me a chance to work under the guidance of experts but also an opportunity to reach a million of users through a few lines of code

  • "Thousands" of users would be better and more accurate. ;)

Number of Quality Images

  • Might be good to define what is meant by this, or perhaps remove it (as this is already implicitly included in the other stats).

@josephine_l Thank you so much for your suggestions. I will make the required changes.

About Quality Images -
urbanecm tool also returns this information. So I thought It would be good to add this info as well in stats.
I read about them from here.

Hello @ayushin78,

Thanks for submitting the proposal. It looks good in general. Your past experience with Android and Git, in general, is also impressive.

A few suggestions:

  • It would be great if you could include a column for Deliverable in the Timeline itself. It would make it more readable.

@maskaravivek
Thank you so much for your suggestions. I will make the required changes accordingly.

@maskaravivek
I have made the changes suggested. Please let me know if there is anything else that needs to be changed.
Thanks :)