Project Wrap Up Report
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
- After discussing much and researching on PyWikipediaBot, we came to a conclusion that we don't need a bot for our this process we need some kind of autolist much like that of Magnus's autolists
- This week was too much productive, I started developing autolist based on magnus tool and using Magnus' tool WiDaR for Wikidata API query via OAuth
- I am able to receive now annotations from Pundit server's public API and transform them to Wikidata format.
- Now only job left is feed this data retrieved and formatted to Wikidata
Week 7 ( July 5 - July 12 )
- I completed the autolist mainly in this week and made it fully functional.
- Autolists contain the functionality to interact with Mediawiki through OAuth just like WiDaR except that it has more options
- I completed most of fetching and pushing to Wikidata part in this week
- Now I fixed up Bajo to fetch annotations from Pundit open server APi and show them in a pretty way and give user an option to select which annotations to be pushed
Week 8 ( July 13 - July 21 )
- I hosted the app on Tools lab and put a mail on Wikidata List for testing but didn't got much response
- Added all the comments to code and made some documentations
- Cleaned up all the code, Bajo and added more functionality to WAF
- Now plugin is adding references also to the annotation for an item it creates
- References are the source url and the time the annoations was created
Week 9 ( July 22 - July 29 )
- This week I wrote mainly tests for Bajo in QUnit.
Week 10 ( July 30 - August 5 )
- Completed the tests through this week
- Fixed some bugs and required improved as asked by testers and mentors
- Started to work on packaging the whole project into bookmarklet.
Week 11 ( August 6 - August 13 )
- Had troubles with packaging the predefined script wasn't working.
- Learnt shellscript and rewrote the script again
- Loading issues with bookmarklet, it was loading the original Pundit
Week 12 ( August 14 - August 16 )
- Finally packaged the product with help of mentor and hosted it on Github pages
- Hosted via Github CDN the bookmarklet is available at this link
- May take some time to load due to big size.
- Project wrap up report soon
Community Bonding Report
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.
- 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.