User:Orsagi/GSoC 2013 proposal

Title: Android app for MediaWiki translation

An app for making translations in a MediaWiki site with the Translate extension, such as translatewiki.net or meta.wikimedia.org.



Proposed by: Or Sagi.

E-mail: orsagi @ gmail

Wiki:translatewiki.net/wiki/User:Orsa

IRC: orsa on FreeNode, especially #mediawiki-i18n, #gsoc

Location: Tel-Aviv, Israel

Typical working hours: 07:00 - 21:00 UTC

Feel free to leave your comments, slander, etc. Thanks!

Summary
Promoting translatewiki.net adventure, exposing it to more people and improving the relish of its enthusiasts, can be done by providing a sleek and smooth Android application, that will make translatewiki even much more accessible, and contributing to it much more quick, easy and fun.

The application will not only support most of the main features that exist in the desktop version, but will also be designed and developed from scratch as simple and efficiency-oriented, with focus on adjustments for a small screen and real-time feedback loop with the user.

Eventually, all this will work for any MediaWiki installation that uses the Translate extension, of course.

About Me
I’m a student in the combined program for Electrical Engineering and Computer Science Bsc in the Tel-Aviv University, code enthusiast since 13 years of age, and my first name sounds like a logical operator. I’m familiar with Wikimedia and translatewiki since I started to work on my final project at the university: translatewiki iOS application, mentored by Amir E. Aharoni. Naturally, I see this project as a direct continuation and perfect completion of my work.

Things I have done
Academy: C project, Java course, final project as iOS application in Objective-C.

Industry: Security analyst at Check Point software technologies, IPS department.

My Work Methodology
I’m a believer of Agile development methodology and working as part of a team, eager for feedback, review and smart advice.

My Availability
During the program period I will be completely available and dedicated to this goal starting from July 24th - my last final exam.

Implementation Plan
The proposal is inspired by Pau Giner’s design document, Yuvaraj Pandian’s prototype, and my own aforementioned project, developed along with Tomer Tuchner.

The app will be coded mostly in Java, on Android SDK environment (Eclipse), of course.

Application data and operations will be based as much as possible on existing MediaWiki API, along with change request if needed.

Features and functionality

 * Login system.
 * Proofread functionality (accept, reject, edit, comment).
 * Translation functionality, showing suggestions, quick and easy edit.
 * Support ANY language that is supported by MediaWiki.
 * Project picker.
 * Support any MediaWiki installation that uses the Translate extension - translatewiki.net, meta.wikimedia.org, and others.
 * Network economy - saving bytes transferred on a cellular net saves time & money.
 * Adaptation to small screens - well designed in order to utilize screen-space for the most important user-focus.
 * Responsive design. To ensure that landscape and tablet behaviour is optimal both for translations or paragraphs editing scenarios and so on.
 * Made for reuse: well documented and attached with API wrapper in Java specifically crafted for translation application.

Timeline (tentative) [ See detailed timeline]
Familiarize with existing code and the community. Collecting tips from community, detailed plan preparation. Study some necessary subjects according to planned work. 24/7 - Big Bang - start Agile development in full power 1/8 - Login demonstration
 * May:
 * June:
 * July:
 * August:

8/8 - Proofread demonstration

15/8 - Total translation/edit ability.

22/8 - Languages and projects picking support.

24/8 - Advanced settings support.

25-31/8 - Testing sprint.
 * September:

2/9 - General Availability on play store.

10/9 - Adaptation for other Wikimedia servers. Paragraph editing demonstration.

11-23/9 - Bug fixing, documentation finishing, releasing.

24/9 - Pencils Down

Project Updates
See weekly updates: User:Orsagi/Android app for MediaWiki translation/Project Updates

See detailed timeline draft: [1 ]

See current assignments on  the project's Trello board.

Monthly Report: June 2013
It has been decided to write the app in Java (namely, native android app), using "Android Studio" environment and write it from scratch (namely, inspired by prototypes and previous work, but without complicating with existing code). Meetings routine was setup.

I started learning "Android Studio" environment (played around with creating a small app). Git repository was requested.

No code was written, since I'm in final exams period.

Monthly Report: July 2013
Since the end of july, exam period is finished and coding has beet started much more intensively.

I worked on creating a login module, including using Custom Account, and started to work on proofread activity.

As I predicted it was a bit slow-start, since I had to learn and get use to many new things.I indeed studied a lot of git, gerrit, 'android studio' and more, but eventually made to the goal of this week, so I'm pretty satisfied. In the next month (August) the most significant part of the work will be done and I'm absolutely ready to it!

Detailed timeline was created and Trello board opened and keep being updated regularly.

The project's repository can be found here.

Monthly Report: August 2013
Most of the functionality are there.

The work at this month fluently followed the schedule as expected and now the app let you translate, proofread, edit, resend, get suggestions and context info, filter messages by length and decide how many message to load each time.

Few main issue issues that require some work are UI objects sizes adaptations, perfecting the settings, and make some adaptations to make it work for other wikimedia's servers. The beginning of September will be dedicated for debugging for creation of a pretty stable build,testing sprints, etc.

Final Report
translatewiki.net Android application let contributors all over the world translate and proofread their favorite open-source projects right on the go, simply and quickly, without the need to free their time for sitting in front of a desktop.

Technical work synopsys
The app is a natural continuation of my work on translatewiki.net iOS application. Even though the principal design was already outlined, the beginning of the work has an extensive preparation of studying Android development in general, in addition to learning some specific tools such as Android Studio IDE and more.

Work has been started based on existing login infrastructure built for “commons” application, and a code stub prototype by Yuvaraj Pandian. Work grew on according a planned timeline, by few main steps:
 * Proofread module (including login)
 * Translation + edit module
 * Settings module
 * Testings and QA period

On the top of that, few days were invested on wrapping up with documentation and support info generation.

The project has been ended successfully with the result of an apk deliverable, uploaded to ‘google’s Play Store’. The complete source-code can be found in ‘Wikimedia repositories’.

Personal Summary
Google Summer of Code is a great experience. It really made me study a lot, have fun and - hopefully - do some useful work for the community during the summer. The work with Wikimedia’s community is remarkable and greatly influences the whole thing. I enjoyed the warm welcoming, the readiness to advise and help, and the professionalism of the Wikimedia’s community people. I would like to express a great appreciation and thank my two extraordinary mentors, Niklas Laxström and Yuvaraj Pandian, who had to tolerate my nudges all that time, but still kept guiding me professionally, flavoured with a sense of humour. I hope my service will deliver significant help in localising open-source projects using tranlatewiki.net, and I would be happy to contribute further more to wikimedia’s challenges in the future.