Page MenuHomePhabricator

(Proposal) Tool to correct false depicts claims manually on Wikimedia Commons
Closed, DeclinedPublic

Description

Profile Information

Name: Lalit Suthar
IRC Nick: lalit97
Email: sutharlalit.97@gmail.com
Github: https://github.com/lalit97
Twitter: https://twitter.com/lalit_97
Location: India
Working hours: 11 AM to 6 PM and 10 PM to 12 AM (UTC +5:30)

Synopsis

Short summary describing your project and how it will benefit Wikimedia projects

Wikimedia commons has a large number of Images divided into different categories. There are some competitions held by ISA in which users who are top contributors win some prize.
This may push some participants to enter ‘wrong’ or ‘unclear’ information which needs to be verified.

Solution for this is to create a tool where org-admins can verify the depicts made on images. which will allow org-admins to accept or decline claims made by users. This tool will help in streamlining all the images according to categories reducing the erroneous data.

Possible Mentor(s)

@Eugene233, @NavinoEvans

Have you contacted your mentors already?

Yes I have contacted Eugene233 on Zulip.

Deliverables

Tool will perform the following tasks at the end.

  • Sign in functionality with OAuth for org admins.
  • Display a category based search for Wikimedia commons images. (Phase 1)
  • Users can explore images from each category. (Phase 2)
  • Providing an interactive platform to accept or reject depicts on Images. (Phase 3)
  • Add a page to show contribution history of different moderators.
  • Leaderboard for depict verification activity.

Implementation Details

  • Sign up using O-auth

The tool will let admins sign-in using the O-auth application of Wikimedia.

  • Category based searching

There will be a search bar on the home page which searches through all the
categories present in Wikimedia commons. The search will have autocomplete feature
We will get categories using commons api and will be displayed using React.

  • Displaying images from a category with depicts

After selecting an image category , the user sees a list of images from that category.
We will display a paginated list of images which will be sortable based on the image's creation time. Admin can pick any image and verify depict claims of that image.

We will get Metadata of an image using commons api. https://commons.wikimedia.org/wiki/Commons:API/MediaWiki

  • Contribution History & Leaderboard of Activity

History of contributions will be stored for each user in the database (mysql/postgresql/mongodb). Any user can view any user’s history of depict claims verification activity.

We Will create a global leaderboard and leaderboard across categories for verifying depict images and scores will be assigned for each verification in a uniform way.

  • Technical details, Documentation, Testing and Deployment
    • The code will be hosted on Gerrit.
    • We will use Python as a coding language and Django framework for implementing the tool. For customizations required, I will make a custom dashboard using Django.
    • Frontend interactions and development will be done using ReactJS.
    • Technical documentation for each backend feature and Unit tests for each module will be written using python’s unit test library.
    • It will be deployed on Toolforge.

UI Mockups

Screen Shot 2020-03-31 at 6.17.44 PM.png (534×384 px, 34 KB)

Img: home page

Screen Shot 2020-03-31 at 6.19.34 PM.png (539×396 px, 42 KB)

Image Pick Page

Screen Shot 2020-03-31 at 6.20.52 PM.png (533×383 px, 43 KB)

Depict claim page

Timeline

PeriodTask
May 4 to June 1(Community Bonding Period) Phase deciding period, where I will brainstorm and discuss which features should be prioritized. Will be planning all the implementation details of which libraries to be used for building the tool. Also will be the finalizing strategy that the following verification can be considered as the final step for depict claims.
June 1 to June 7Setting up the project. Implementing Oauth based login.
June 8 to June 14Implement Category searching with auto-completion feature. Design responsive home page and interactions with React.
June 15 to June 21Deploy the phase I to follow Iterative development strategy. Complete documentation and tests upto phase I.
June 22 to June 28Implement Category Images list page with pagination. Make it responsive.
June 29 to July 3First Evaluations
July 4 to July 10Write unit test cases for the category list page. Take feedback from mentors and fix bugs.
July 11 to July 17Document all the features upto phase II. Deploy all the features on toolforge upto phase II.
July 18 to July 26Implement Depict claim View. Design Detail view with responsive design.
July 27 - 31, 2020Second Evaluations
August 1 to August 7Implement user activity history page. Write unit tests for the history page.
August 8 to August 14Implement global leaderboard for depicts claim. Deploy on Toolforge and get feedback from the community and users.
August 15 to August 21Work on Performance improvements and finish end to end functional and unit testing. Iron out features and fix bugs which are reported. Write Documentation for phase 3.
August 21 to August 24Code cleanup as per reviews before submitting for final evaluations. Complete Documentation.
August 31 to September 7Final Evaluations

Participation

  • I will use Gerrit to version control my code. Each Phase will be a new branch, and will be deployed in an iterative cycle.
  • I will get feedback on code and functionality after each deliverable.
  • I will be active on Zulip and IRC to communicate with mentors.
  • I will talk to mentors on zulip for any design decision, feature implementation, bug or code review discussion.
  • I will write blog posts regularly about my experience and learnings from this project on Medium (lalit suthar).

About Me

Tell us about a few:

Your education (completed or in progress)

Pursuing my B.Tech 4th year in Information Technology major at Government Engineering College Bikaner.

How did you hear about this program?

I have been contributing in open source from last year and I heard about the program from my seniors who also have been actively working on open source projects.

Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?

I will have my semester exams possibly in June (shifted due to Covoid-19) . I have no other time commitments during this summer. No vacation planned as well. I will be staying at home.

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

No, I am applying for Google Summer of Code only.

What does making this project happen mean to you?

Wikimedia commons belongs to data which helps users across the globe to access information which is open and free for everyone.
It’s collaborative nature helps people to volunteer for the depicts claim, It's a powerful tool which is with the power of community.
Building a layer on top of that to verify all the depict claim submissions is a great contribution opportunity as a developer.
Making this project would mean helping the community be more efficient in depict claims.

I have made some projects using django and reactjs. But I was looking for an impactful project in which I can apply and improve my skills in both frontend and backend further. So this project is exactly what I am looking for and it will help in growing my self confidence in web development. It will also give a great platform to learn by developing for a real use case and to learn from user feedback.

Past Experience

Skills
  • Language : Python
  • Frameworks : Django, ReactJs, Bootstrap
  • Web Technologies : Html, CSS, JavaScript
  • Version Control : Git
  • Database : Mysql, Sqlite
  • Libraries and Tools : Django Rest Framework, React-Redux, Celery, Redis, Selenium
Projects
  • Feedfetcher: News aggregator application, which collects summary of news from different categories from given RSS feed urls. It processes the RSS feeds asynchronously to get news content. Built using Python, Django, Django Rest framework & Celery.
  • Blog App: Simple blog application made using python, django.
  • Tic Tac Toe: Simple Tic-tac-toe game built using Vanilla Js.
  • College Website: Updated version of Govt. Engineering College Bikaner website using Reactjs.
Open source contributions
Problem Solving Profiles
Wikimedia Contributions
StatusPhabricator TicketTitlePull Request
MergedT239503Handle modification of application status from INVALID to anything else#429
OpenT212767Provide error message when navigating to Not Available resources#427
MergedT218857Add more links to activity feed#414
OpenT170113Add 'Back-to-top' button for partners list page#410
OpenT226369Add condition to check user is current coordinator#406
MergedT234551Show Error on 'Mark as Sent' page for automatic-send partners#405
MergedT193334Add placeholder text to Review filters#404
MergedT243746Add function to handle file name given as url#573354
MergedT243311Change 'VideoTrim Settings' position above the 'Step2'#569217
OpenT216400Allow wildcard project searches#15
OpenT216399Allow hashtag project searches#10

Any Other Info

Event Timeline

@lalit97 We are sorry to say that we could not allocate a slot for you this time. Please do not consider the rejection to be an assessment of your proposal. We received over 100 quality applications, and we could only accept 14 students. We were not able to give all applicants a slot that would have deserved one, and these were some very tough decisions to make. Please know that you are still a valued member of our community and we by no means want to exclude you. Many students who we did not accept in 2019 have become Wikimedia maintainers, contractors and even GSoC students and mentors this year!

If you would like a de-brief on why your proposal was not accepted, please let me know as a reply to this comment or on the ‘Feeback on Proposals’ topic of the Zulip stream #gsoc20-outreachy20. I will respond to you within a week or so. :)

Your ideas and contributions to our projects are still welcome! As a next step, you could consider finishing up any pending pull requests or inform us that someone has to take them over. Here is the recommended place for you to get started as a newcomer: https://www.mediawiki.org/wiki/New_Developers.

If you would still be eligible for GSoC next year, we look forward to your participation!