Jump to content

User:Mvolz/Weekly Reports

From mediawiki.org

These are weekly reports on the citoid FOSS OPW project for User:Mvolz

Community Bonding Period


Lessons learned since 21 April

  • Roadmaps change fast!
  • Terseness---verbosity axis is mostly a matter of personal style.

Communication Plan


Goals for first half of internship

  1. A REST API running on node.js that takes a URL(/my/server/?url="http://citeme.com") and gives a response of structured citation data.
  2. Calls and responses should be hooked into Visual Editor in localhost, although not necessarily committed/production ready.

First Half of Internship


Week 1: May 19 to May 25

  1. Made first commit to git repo
  2. Wrote proof of concept scraper and server in node.js (not committed)
  3. Got zotero translator-server working and determined it was functional enough for production
  4. Attempted to get MediaWiki / VisualEditor / Parsoid working on localhost without using vagrant as a crutch and failed miserably. Here's to week two!

Week 2: May 26 to June 1

  1. Got MW / VE/ Parsoid / Apache / MySql stack working to use as a model for MW / VE / CFID integration.
  2. Still haven't gotten citation tool working on localhost 100% :(.
  3. Got familiar with VE codebase and JS debugging
  4. Started Zotero branch in Extension:VE

Week 3: June 2 to June 8

  1. Citation tool now working, yay.
  2. Tried to write UI entry point for zotero, only got as far as a button on the menu! :(
  3. Google hangout with Trevor and Roan and IRC meeting with Trevor on Friday on how to write VE code.
  4. Started writing node.js Zotero wrapper instead

Week 4: June 9 to June 15

  1. Monday: conference call with OPLC people
  2. In-person VE tutorial w/Ed Wednesday
  3. On advice from Ed, probably going to put VE code in separate extension and use MWExtensionInspector.
  4. Wrapped Zotero instance

Week 5: June 16 to June 22

  1. Modified Zotero output in citoid wrapper
  2. Zotero instance set up on Bastion
  3. Error catching in citoid
  4. Explored worldcat api

Week 6: June 23 to June 29

  1. Did Extension tutorial and added BoilerPlate extension to /mediawiki/extensions/Citoid
  2. Wikipedia exploration! Looked at citations on de.wiki and wrote some templates
  3. Started writing VE gadget that will insert plain text citations into Reference dialog

Week 7: June 30 to July 6th

  1. Gadget inserts plain text citations by URL into doc model correctly (not inside ref node)
  2. Gadget inserts citations by URL inside template (not inside ref node).
  3. Demoed citation w/template insertion by URL at LadiesWhoCode talk series live and it actually worked. Woo. (July 1)
  4. Altered citoid to handle shortened URLs and to naively scrape pages for which there is not Zotero translator.

Mid-internship Report


Minimally viable[1] product produced!

  • Citoid instance running on wmflabs. Currently only takes URLs.
  • Gadget on en wiki. Works to insert citations, but not inside reference nodes yet.

To test, include the following in your common.js on en wiki:

  1. ish.

Second half of internship


Week 8: July 7 to July 13th

  1. Monday meeting with Ed
  2. Moved gadget components into an extension
  3. Increased stability of citoid service
  4. Increased stability of bastion instance. Ish.
  5. Gadget now inserts citation into an actual reference

Week 9: July 14 to July 20th

  1. Improvements to naive scraper
  2. Bug fixes in cite from URL gadget
  3. Fixing up inheritance issues in citoid extension but still a mess!
  4. Presented at Open Science Wikimania Fringe event

Week 10: July 21 to July 27th

  1. Make extension/gadget work with new ve core and ref dialog changes (deploying on en-wiki the 24th)
  2. Multiple cite templates!
  3. Making extension actually use Citoid config vars
  4. TD Design discussion w/James et al.

Week 11: July 29 to August 3rd

  1. The Great Fork begins- branch VE + TD to add new services structure
  2. Presented at WMF metrics meeting: Meta:WMF_Metrics_and_activities_meetings/2014-08
  3. Citoid The Service improvements

Week 12: August 4th to August 10th

  1. Staged citoid extension to await TD things
  2. Aug 6-7 Wikimania Hackathon
  3. Aug 8-10 Wikimania Conference

Week 13: July 29 to August 17th

  1. Update citoid service for new way of doing TD things
  2. Change td to fetch "maps" attribute
  3. Alter VE to provide "maps" data (MWTemplateSpecModel) to Citoid extension

(not so final) Report: August 18th


Citoid service working in conjunction with citoid extension, changes to ve-mw library, and templatedata extension, all on localhost, using templatedata defined within the template itself (not currently working when template is transcluded from docs due to bug 69647). Changes committed (but not merged) to citoid service and extension, pending commits to VE and TemplateData that they rely on.


Dump of WIP commits to Citoid extension
Commit to citoid service


Screenshot of what a citation looks like after being inserted using templatedata
Sample of corresponding body json
Sample of corresponding templateData




  1. Merged first community contribution!
  2. Added export formats (mediawiki, zotero, mwDeprecated)
  3. Added API docs: Citoid/API


  1. Pushed changed to TemplateData to Gerrit