The Cargo extension's Special:Drilldown page provides an automated drill-down interface 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 (e.g., this wiki has information about 1,000 museums, 600 of which are in North America); and letting users find specific pages. It is a valuable tool, but there are many ways in which it could be improved. This project would add some or all of the following additions and improvements to Special:Drilldown:
- Add additional tabs for results display. Currently all results are shown as a simple bulleted list of page names. For Cargo tables that include one or more fields of type "Coordinates" or "Date", there should be additional tabs to let users see the results in a map, or in a calendar or timeline, respectively. (Whether it was a calendar or timeline might depend on the range of dates involved.)
- Automatically display a thumbnail image for each page, for Cargo tables that include a field of type "File".
- Allow administrators to customize which set of fields will get displayed per page, for each table.
- Allow for defining "dependent fields", so that, for instance, the "City" filter does not show up until a "Country" value is selected.
- Allow for defining "parent tables", so that they can be filtered on - so that a search for a book can include not just fields directly related to the book, like its genre and language, but also fields for related tables, like the nationality of its author.
- If there is time left over, there are other potential improvements that could be made. The drill-down interface provided by Amazon.com offers some interesting options: there, the filters and all their values appear in a sidebar, instead of at the top of the page - perhaps that should be the case for Special:Drilldown too? Also, for filters with a large number of values, Amazon displays a list of the most popular values, then a link to select any other values - this could make sense for Special:Drilldown as well (which currently just shows a blank search input if there are a lot of values). It may make sense to poll the user community about any such changes to existing behavior.
Requirements: Knowledge of JavaScript, PHP and CSS are all required for this project. Experience with SQL would be very helpful as well, as would an interest in designing user interfaces.
Mentors: Yaron Koren, Derick Alangi, Feroz Ahmad
Micro-tasks: