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:
 * 9am-12pm, 1pm-5pm, 8pm-12am


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

Synopsis
(TODO: Start your paragraph with, where nnnnn is the number of the report linked to your proposal in Bugzilla. If you project has been discussed at the wikitech-l mailing list then include the URL to the thread as well.)

What it means to accomplish?
Write a plugin to extend the mathematical functonality of VisualEditor. This will allow users, unfamiliar with wikitext, to insert and edit content including: The usage of this plugin will be similar to the mathematical equations 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
 * Symbols
 * Operators with variables

How it will benefit MediaWiki or Wikimedia projects such as Wikipedia?
This plugin will allow people insert math 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.

Deliverables
(TODO: Include a brief, clear work breakdown structure with milestones and deadlines. Make sure to label deliverables as optional or required. It’s OK to include thinking time (“investigation”) in your work schedule. Deliverables should include investigation, coding, deploying, testing and documentation.)



Required
The whole plugin will have three parts:
 * Loading an existing equation (otherwise create a new equation, which is easier)
 * Editing the equation
 * Saving the equation

Optional

 * Formatting
 * Multiple line editing
 * Text integration
 * Can insert math equation in text box
 * Can type in latex code and directly get the visual math function (e.g. type in "\alpha" and get α)

Schedule

 * (April 29 - May 26)
 * Remain in constant touch with my mentor(s) and the community. Keep Improving the project proposal
 * To familiarize myself completely 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

UNI EXAMS AT JUNE 11 AND JUNE 17


 * Community Bonding Period (May 27 - June 16)
 * Keep fixing bugs in the area of wikimedia math and visual editor
 * Work out the working style mentor and me
 * Remain in constant touch with my mentor(s) and the community. Remain active on IRC and Mailing lists to discuss and finalize on the modifications(if any) that needs to be on existing schemas and design of new schemas)
 * Investigation
 * More discussion about my prototype on the plugin with mentor


 * 1 Week (June 17 - June 23)
 * Create a dummy function on visual editor plugin
 * 2 Weeks (June 24 - July 7)
 * Implement Model and GUI of the basic editing part of the plugin
 * 1 Week (July 8 - July 14)
 * Implement Wikitext Generator and Doc Writer
 * Conduct unit and integration testing
 * 1 Week (July 15 - July 21)
 * Implement symbol functionality for Model and GUI

AUGUST 2 MID TERM EVALUATION


 * 4 Weeks (July 22 - August 18):
 * Implement function for Model and GUI
 * 1 Week (August 19 - August 25):
 * Implement Parser and Doc Reader
 * 3 Weeks (August 26 - September 15):
 * Testing
 * September 16:
 * Soft pencil down "Take a week to scrub code, write tests, improve documentation, etc."
 * September 23:
 * Firm 'pencils down'.
 * September 27:
 * Begin to submitting required code samples to Google

About you
I am Jiabao Wu, a postgraduate student at the Australian National University. I graduated with Bachelor of Information Technology Studies at the ANU in December 2012, with 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, which has boosted my huge enthusiasm in contributing to the FOSS community. I pick MediaWiki as the project I work on for my FOSSD course as well as my GSoC project proposal, since it has a very friendly and well-organised community, and is a valuable project to the world. This also allows me to start the investigation and contribution to MediaWiki from now. I will try to do bug fixing, documentation, etc. mostly in the area of VisualEditor plugin and some other area of MediaWiki. I think this can help to build my understance of the project, which can help and speed up for the real project period.

Lastly, I promise to give minimum 40 hours per week for my work with no other obligation. Please let me know if any part of my proposal is not clear, or any way I can improve my project proposal.

How you plan to communicate progress?

 * IRC channel: leaves IRC open and reply as soon as possible
 * Mailing list: read the Wikitech-l mailing list everyday
 * Email: have several check point for emails and reply the email as soon as possible, and assure to be within 24 hours
 * Planning: plan the weekly to-do list and daily to-do list, if a daily to-do list cannot be complemented, then it means I shall commit more personal hours to finish it, so then the whole schedule can be kept.
 * Reporting: report the progress I made and followup planning, as a part of the conversation/email to the mentor for asking helps. If the mentor likes, I would like to send the daily/weekly/monthly report of that as a conventional task for myself.
 * Ask for helps: I would like to ask help from mentor as well as IRC channel, mailing list, and other people outside the MediaWiki community when I cannot solve a problem.

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

 * Git
 * Bugzilla

How and where you plan to ask for help?

 * MediaWiki Documentations
 * Google, Stackoverflow, FAQ, etc. online resource - check solution or ask a new question
 * Mentor - write an email, discuss on IRC (with FOSS equtte)
 * MediaWiki Community on IRC, mailing list (with FOSS equtte)
 * 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.)