Extension:Wikibase Repository/Mobilize Wikidata

Identity
Name: Pragun Bhutani

Email: pragun06@gmail.com

Project title: Mobilize Wikidata

Contact/working info
Timezone: UTC+5:30 (IST - India) Typical working hours: 10 pm to 3 am until July, 6pm to 3 am after July IRC or IM networks/handle(s): pragunbhutani

Project summary
My project is aimed at extending Wikidata to make it accessible on mobile devices. Setting up Wikibase with MobileFrontend shows that while MobileFrontend can be used to achieve a mobile-friendly version of WIkidata, some problems arise due to JS based UIs not rendering properly through MobileFrontend (search for "Oxygen" for a sample entry). However, the following changes should allow us to integrate WIkibase and MobileFrontend with better results.


 * No-JavaScript WIkibase :
 * Currently, JS based UIs do not render properly through MobileFrontend. To circumvent this problem, I will develop an extension that prints Wikibase Item UIs without JavaScript. The No-JS Wikibase thus created should be compatible with MobileFrontend.
 * Certain hooks will also need to be added to MobileFrontend to recognize Wikibase specific data formats.


 * Adding new Special pages to maintain functionality
 * Currently, we only have Special pages that allow us to edit the values of Items. There are no Special pages built for the purpose of editing Property values. If a no-JS version of Wikibase is implemented, I will also need to build new Special pages to maintain this edit functionality.


 * Mobile JS for improved UI
 * Once the first two have been implemented, I plan to include mobile-specific JS to improve the UI and usability of our mobile Wikibase.

Once these goals have been met, any remaining time at the end of the project will be spent on improving the usability of our mobile-Wikibase.

Required deliverables

 * Implement an extension that prints a no-JS version of Wikibase.
 * Add hooks to MobileFrontend to allow it to recognize Wikibase specific data.
 * Make suitable changes to the HTML structure.
 * Changes to be made to the mobile CSS, as per requirement.


 * Introduce new Special pages to maintain functionality erstwhile being provided by JavaScript.
 * 'Edit' functionality for properties is provided by JS at the moment. Once a no-JS version is implemented, 'Special' pages will be needed to maintain this functionality.
 * 'Add' functionality used to add values to Properties.
 * 'Add' properties to an item.

If time permits

 * Introduce mobile specific JS to improve UI and usability.

Estimated project timeline

 * Community Bonding Period (2 weeks)
 * Study WikibaseRepo code and familiarize myself with its structure.
 * Create UI mock-ups and discuss them with the community.
 * Althought the 'box' structures remain, the layout may need to be changed a little to suit smaller screens.
 * Study MobileFrontend to understand how it renders content skins.
 * Fix some bugs along the way to get my hands dirty.


 * No JS Wikibase (3 weeks)
 * Implement an extension for Wikibase that renders UIs without JS


 * Mobile specific HTML/CSS fixes (1 week)
 * Certain mobile specific HTML/CSS fixes might need to be implemented to accommodate the No JavaScript UIs.


 * Commit code to Gerrit.

First Milestone : No-JS Wikibase for Mobiles implemented.


 * Implement 'Special' pages to maintain functionality. (3 weeks)
 * Match functionality of existing Wikibase on Mobiles, with 'Special' pages.


 * Mobile specific JS for improved UI and usability (2 weeks)
 * While this can be considered an 'enhancement', it'll be nice to create a good user interface on mobiles as well.


 * Commit code to Gerrit

Second Milestone : Special pages implemented and functionality matched.


 * I've left about a week at the end as a 'buffer' period.
 * Finish any remaining work.
 * UI tweaks.