User:Jiabao wu/OPW Round 6 Application

Name and contact information

 * Name:
 * Jiabao Wu


 * Email:
 * jiabao.foss@gmail.com


 * Timezone:
 * Canberra, Australia (UTC/GMT +10 hours)


 * Typical working hours:
 * 1pm-5pm, 8pm-12am


 * IRC or IM networks/handle(s):
 * jiabao on freenode

Synopsis
The discussions at the wikitech-l mailing list

What it means to accomplish?
Extend the mathematical functonality of VisualEditor. This will allow users, unfamiliar with wikitext, to insert and edit content including: This project will allow users to create mathematical equations similar to the way they would in Google Docs. Google has already provided a good quality design for editing a document within a web browser. This will also help users who are familiar with Google Docs form equations for wikimedia.Try it in Google Drive Document or read Mathematical Equations - Google Drive Helps

How it will benefit MediaWiki or Wikimedia projects such as Wikipedia?
This project allows people to insert mathematical symbols or write equations smoothly within VisualEditor without any knowledge or experience with Wikitext. It will also unlock editing of existing equations when using visual editor. This will make changing equations much more understandable for people who mostly use VisualEditor.

Required
The main deliverable will be a VisualEditor plugin. This plugin will be broken down into three parts:
 * Loading an existing equation or creating a new equation
 * Editing the equation
 * Saving the equation back into the document



Optional
If time permits or after GSoC is completed.
 * Formatting
 * Identation for nice alignments
 * Multiple lines of equation
 * Numbering equations


 * In text integration
 * Can insert equation directly into document
 * Can type in latex code and directly get the visual mathematics function (e.g. type in "\alpha" and get α)

Schedule
Envisioning Phase (4 Weeks, April 29 - May 26)
 * Remain in constant touch with my mentor(s) and the community.
 * To familiarize myself with MediaWiki functionality and architecture
 * To familiarize myself with MediaWiki development environment
 * Go through every todo on How to become a MediaWiki hacker.
 * Learn to use the API and write extension
 * Browse developers docs and class reference
 * Fix annoying little bugs in the area of math and visual editor

Community Bonding Period (3 Weeks, May 27 - June 16)


 * Further discussion with my mentor(s) and the community about the prototype and its implementation.
 * Early Start of Coding
 * Investigation on making plugin for VisualEditor
 * Create a dummy function on visual editor plugin

Development Phase (9 Weeks, June 17 - August 18)
 * 2 Weeks (June 17 - June June 30)
 * Implement Model and GUI of the basic editing part of the plugin


 * 2 Week (July 1 - July 14)
 * Implement symbol functionality for Model and GUI
 * Implement Wikitext Generator and Doc Writer
 * Conduct unit and integration testing


 * 5 Weeks (July 15 - August 18):
 * Implement operators with variables for Model,GUI and Wikitext Generator
 * Implement Parser and Doc Reader allowing existing equations to be editted

Deploying Phase (4 Weeks August 19 - September 15)
 * Pre-deploy Code review:
 * Conduct code review by myself, then mentor(s)
 * Inact information gained from code reviews


 * Deploying:
 * Merging with trunk
 * Integration


 * Testing:
 * Further unit and integration testing
 * Conduct several round of testing with real-world users who has no wikitext experience


 * Documentation:
 * Write approach, program and function descriptions.
 * Document deployment and testing

Pencil Down
 * September 16: Soft pencil down - Leave a week for final polish.
 * September 23: Firm 'pencils down' for OPW
 * September 30: Continue to work on the project part-time

About you
My name is Jiabao Wu, I am a postgraduate student at the Australian National University. I graduated with Bachelor of Information Technology Studies at the ANU in December 2012, with a double major of Software Development and IT in New Media Arts.

I am currently studying the course Free and Open Source Software Development (FOSSD) offerred by Andrew Tridgell. This course boosted my huge enthusiasm in contributing to the FOSS community and the software I use. I picked MediaWiki for my FOSSD work as well as my GSoC project proposal. MediaWiki has a very friendly and well-organised community, it also provides so much value to the world. This allows me to start the investigation and contribution to MediaWiki immediately as a part of university work. I will try to contribute patches, documentation, and maybe translation. I will focus mostly in the area of VisualEditor and the mathematical markup capabilties of Wikitext and MathJax. I think that this can help to build my understanding of the project earlier, which can help produce a high quality product at the completion of GSoC.

Lastly, I promise to give minimum 40 hours per week for my work. No other obligations interfere with this throughout the GSoC period. Please let me know if any part of my proposal is not clear, or suggestions on how I can improve my project proposal.

How you plan to communicate progress?

 * IRC channel: I plan to IRC open and reply as soon as possible
 * Mailing list: I will read the Wikitech-l mailing list everyday
 * Email: I will make several check points (within 24 hours) for reading emails and replying as soon as possible.
 * Planning: I will maintain both a weekly to-do list and daily to-do list. If a daily to-do list cannot be completed, I will re-plan and estimate to be able commit more personal hours to finish it.
 * Reflection: I will maintain a reflective blog throughout the project. I will write an entry each week on how I feel about the project, my progress and things that could of been improved.
 * Reporting: I will report the progress I made and the follow-up planning to my mentor as a part of the conversation/email. Depending on the mentor I would like to make these reports at fixed intervals as a check point task for myself.

Where you plan to publish your source code while you're working

 * Git: Wikimedia code review

How and where you plan to ask for help?

 * MediaWiki Documentations
 * Google, Stackoverflow, FAQ, etc. online resources - search for solutions or ask a new question
 * Mentor(s) - Write an email, discuss on IRC (with FOSS etiquette)
 * MediaWiki Community on IRC, mailing list (with FOSS etiquette)
 * Ask lecturers in the university by making appointments, sending email, etc.
 * Ask friends - It will be nice to study in group. I asked friends to apply MediaWiki GSoC with me as well. If we are all lucky to be accepted, it will be nice and helpful to work for MediaWiki together.

Past open source experience
As mentioned before, I am doing a FOSSD course at uni. I studied several open source projects and did a FOSSD Presentation for Inkscape about its history, governance, culture, etc. One bug I fixed and sent a patch to Inkscape is default window size is too small.

Any other info
(TODO: Please add any other relevant information -- UI mockups, references to related projects, a link to your proof of concept code, whatever. There are no specific requirements, but we love to see people who love what they're doing. Show us you're excited about this project and have an interest in the background and are considering how best to make your idea work.)