The Cargo extension’s Special:Drilldown page shows a listing of each table, its contents, and a set of filters, for all the data in a wiki stored via Cargo. It provides two major benefits: letting users see the overall layout of data at a glance and letting users find specific pages.
My project was to improve upon the current results of the Drilldown page (e.g., adding tabs for displaying results in different formats) and to improve the implementation of the filters (e.g., adding support for dependent fields and parent filters).
All the features that I mentioned in my proposal have been implemented and the major ones (the parent tables and custom drilldown tabs part) can be seen in action on Drilldown:Opinions page on discoursedb.org .
Some of my major commits are (Not including error fixes and stuff):
- Print most popular values for a filter in case of ComboBox Input and TextInput
- Add map format to Cargo
- Display results in map and timeline format
- Add Gallery Format to display file type data
- Allow for defining “dependent fields”.
- Allow for defining “parent tables”.
- Allow users to add custom tabs for showing Drilldown results
- Add Calendar format to drilldown
- Improve the mobile view of the drilldown page
(All of my commits can be seen here)
What I learned
When applying for GSoC, I don’t even had full experience in PHP, I had worked in Django before, for web development projects but PHP was kinda new for me. And Also, I didn’t know any SQL before GSoC. So, I actually learned two languages in the mean time. Other than these, I got experience with some js libraries like DataTables, FullCalendar.js and SIMILE Timeline. So, GSoC was a real learning experience for me. And I also started writing blogs due to the bi-weekly reports and it was cool (well, I haven’t improved my writing skills much but I hope it’ll get better someday).
After GSoC, I plan to implement an additional feature in Drilldown page: Add a “Rating” field type, where users will be able to select from 1–5 stars kind of thing for filtering the data (like you sort/filter products on any e-commerce website).
First and foremost, I would like to thank all of my mentors: Yaron Koren, Feroz Ahmad, Derick N. Alangi (especially Yaron) for guiding me through this whole project.
And then, to the whole Wikimedia Foundation and Google too for all their support.
User page (all of my bi-weekly reports can be found here): Nikhil-nk