GSoC 2019 @ Wikimedia Foundation: Final Report

Ankita Mandal
Aug 17 · 2 min read

GSoC Proposal Link: https://phabricator.wikimedia.org/T218353
Project Page: https://www.mediawiki.org/wiki/Extension:Cargo

Project Synopsis

The Special:ViewData page in Cargo extension has two purposes: 1) to display additional query results when a user clicks on “More results” from within the main set of query results; and (2) to provide a user interface — if a user goes directly there — to run any Cargo query. For this 2nd use, the interface could be improved quite a bit: right now the UI is just some text inputs, with no autocompletion, no validation, no additional, format-based inputs, and in general no help to the user. This project aims to provide a much more user-friendly interface, using autocompletion, dropdowns, and/or other form elements, so that users didn’t have to, for example, guess what tables and fields exist on the wiki. The ViewData page must also be renamed to CargoQuery.

Special: ViewData (Before)
Special: CargoQuery (After)

Special:CargoQuery on discoursedb.org

Work done/ChangeLog

Some of my major commits are (Not including error fixes and stuff):

  1. Wrote a new api cargoqueryautocomplete for retrieving tables and fields from database.
  2. Added tooltips for every field with appropriate usage examples. (Integrated balloon.css)
  3. Jquery UI Autocompletion implemented to let users know about existing tables and fields.
  4. CargoQuery page redesigned and made more user friendly.
  5. Added front end Validations.

(All of my commits can be seen here).

What I have learned

I have worked in PHP projects before using Codeigniter but never on a large scale open source project. This project taught me a lot about the front end and how UIs can be made better. I learnt how to write an API and make it work with autocompletion.

What’s next?

After GSoC, I would like to continue contributing to Mediawiki. I will be looking for more projects and bugs and see what I can contribute, and in turn learn from them.

Acknowledgments

I would like to thank my mentors: Yaron Koren, and Nikhil-nk (especially Yaron) for guiding me throughout the project. Without you, this would not be possible. Yaron had provided many helpful insights and supported me whenever I was stuck.
I would also like to thank Wikimedia Foundation and Google for providing me with this wonderful opportunity.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade