Wikidata annotation tool/updates

Week 1 ( May 19 - May 26 )

 * Setup the environment at Wikimedia Foundation Labs Tools
 * Created a selector for Pundit using a wrapper for Wikibase API

Week 2 ( May 27 - June 3 )

 * Parsed Wikidata dump of properties into a correct format and made a vocabulary for Pundit to fetch predicates from Wikidata
 * Making a wrapper of OAuth API for Wikimedia
 * Test site is hosted here
 * This has become considerably slower due massive amount of predicates
 * Working on removing some of them as of now.

Week 3 ( June 4 - June 11 )

 * Changes the predicates loader from Wikidata dump to selector, now even properties are being loaded through a selector!
 * Made the OAuth API wrapper working.
 * Started making changes to CSS of the tool. Need to discuss this on #wikimedia-designers

Week 4 ( June 12 - June 19 )

 * Tried to integrate WikiMedia OAuth Login with Pundit's OpenID login system, but failed to do so. Discussion regarding this can be found here.
 * Discussed some new approaches with mentors and finally came to a conclusion to provide a Push to Wikidata button in the interface, which will sync user's Pundit Notebook's annotation with Wikidata through a bot and will use OAuth to recognize the user.

Week 5 ( June 20 - June 26 )

 * Made changes to frontend Pundit code and backend Login API code to fulfill the demands of Push to Wikidata Button.
 * This will work fully when bot will come into play

Week 6 ( June 27 - July 4 )

 * Started working on the bot

Goals for first half of internship

 * Make a wrapper of already existing Wikimedia API to get user logged in with plugin, this is hosted here
 * Attach this wrapper to Pundit and replace the old OpenID login system, by creating a new fork of Pundit.
 * Create a selector for Pundit to help it load objects(items) from Wikidata
 * Create a vocabulary of Wikidata predicates in required Pundit format and load it in Pundit
 * This will be done by taking properties dump from Wikidata and converting it to required format
 * Write Simple HTML tests for all of the work done.

Communication Plan

 * My primary means of communication with mentors is a dedicated mailing list which is open for anyone to join, here various people ponder over a single discussion to sort out the best way to do this.
 * I will mail Wikitech-l in case I need advice from more people
 * Usually I ask my small questions around IRC and I am available on most of the general channels related to Mediawiki.
 * Another means of frequent communications is Google Hangout, which is fast and reliable to get quick advice.

Lessons learned since April 21st

 * Things are not always as easy as they seem, usually they don't go right according to your way.
 * Patience is everything.
 * Discussion is important, but taking correct decisions is up to you, because in the end you are responsible.
 * It's good to use technologies you already know, get your hands into mud is not always the best option.