Pune Hackathon Feb 2012/Topics



Join a team! At the hackathon, what do you want to work with others on?



Language
Below you will find a list of things you could work on to improve language support in MediaWiki. We have highlighted the area, short description and required skills for you. In many cases, we can transfer information to you, in case you do not yet have a particular skill. Just ask one of the mentors for help, and we will find you something near to work on!

Improving support for input methods

 * Documentation: See Help:Extension:Narayam for all current and missing documentation. Most of this needs your help to expand the documentation with examples, in a structured, consistent way. InScript layouts will not take much time, but transliteration-based input methods will take more time to document because of all the rules and examples. Skills needed: Know how to use the Narayam input methods, know how to write in clear English.
 * Feature development: Add a new input method if your language is not supported in Narayam. Required skills: Language knowledge, basic JavaScript and novice PHP.
 * Quality control: Test the input methods for your mother tongue. Required skills: Proficient writing skills in the language the key map is for. This is a list of the key mappings currently in beta state:
 * Amharic
 * Bodo InScript
 * Chhattisgarhi
 * gom-deva transliteration
 * gom-deva InScript
 * Gujarati transliteration
 * Gujarati InScript
 * Hebrew Standard 2011
 * Hebrew Standard 2011 (US keyboard)
 * Maithili InScript
 * Nepali transliteration
 * Nepali InScript
 * Oriya lekhani
 * Eastern Punjabi InScript
 * Eastern Punjabi phonetic
 * Tifinagh transliteration
 * Tamil Bamini
 * Tamil InScript
 * Tulu transliteration
 * Telugu
 * Urdu
 * Sakha
 * Feature development: On-screen keyboard. Currently, key mappings only have static documentation pages, if any. This makes it hard to get quick help if one is making use of them, and it probably reduces adoption of the input methods, and by that, it prevents people from adding content to MediaWiki. The on-screen keyboard feature should, in an inobtrusive, but clear way, provide some kind of inline help for a user for the currently active key mapping. Ideally this should contain "active" clickable areas to insert characters from the on-screen keyboard. At the current state of development of this feature, we are primarily in need of the following skills: user interafce design, user interaction, and jQuery. See 32518 for the current state of development.
 * Feature development: Get Narayam input methods working on content editable divs. These are required for the visual editor. )(refer mail on wikitext-l from Trevor, Amir). Skills needed: Advanced JavaScript and CSS.
 * Knowledge of Pali or Newari may help them with a Narayam input method. One of them has a local input method, this can be reverse engineered into Narayam.

Improving web font support

 * Feature development: If there are people interested in typography, we can discuss about developing fonts. Required skills: Vector graphics, typography and calligraphy skills. We will be asking for a raise of hands, and only continue with this topic if there are at least a few people with relevant skills to work on this. For interested people we can have a small tutorial on FontForge, and see wherewe can bring this.
 * Quality assurance: Font testing in many browsers. Test the fonts for your mother tongue and provide feedback, especially if things are not working as your would like them to see working. Required skills: Common sense and a keen eye.
 * Feature development: Add new web fonts support for non-latin scripts. Possible targets are Dzongkha / Tibetan script. Only free and open fonts can be included. Required skills: Basic PHP, knowledge of where to get free and open fonts from.

Mockups on UI of our tools
For people interested in UI/UX
 * On-screen keyboard
 * Translation editor
 * Key mappings for mobile

Genderizing logs for core and extensions
''TODO: Need to write something for that, or have some sample commits. These are not available with the needed level of detail yet. Will be fleshed out during FOSDEM.
 * Maintenance: In MediaWiki 1.19, log events can include user names to allow genderized and properly localisable messages. All log events have to be moved to the new log class. Some log events are easier to move to the new system than others. Below you can find a list of events to work on, and their required skill level. Required skills: Intermediate PHP and MediaWiki. List of suggested core or extension log events to work on:
 * block/block
 * block/unblock
 * block/reblock
 * protect/protect
 * protect/modify
 * protect/unprotect
 * protect/move_prot
 * rights/rights (possibly easy)
 * rights/autopromote (possibly easy)
 * upload/upload (possibly easy)
 * upload/overwrite (possibly easy)
 * upload/revert (possibly easy)
 * import/upload
 * import/interwiki
 * merge/merge
 * suppress/block (likely difficult)
 * suppress/reblock (likely difficult)

Internationalisation and localisation issues on mobile and tablets

 * Fix a bug. Known Narayam input method bugs on mobile: 33243: Narayam IME on fails to replace English characters on mobile Skills: Javascript, Mobile. Required skills: Understanding of mobile technologies and intermediate JavaScript/jQuery.
 * Feature development and quality assurance: Get WebFonts working on mobile phones. These issues most probably exist on both the mobile web interface as well as in the mobile Wikipedia apps:
 * Android - some versions should work.
 * 33241: Symbian not working with WebFonts
 * Quality assurance: 32267: Narayam input method testing on Mobile. We need many different mobile operating systems for this. Android, iOS, Symbian, ... Required skills: Patience, documentation skills.
 * Feature development: Discoverability of other languages. Making it easier for people to find out that they can use Wikimedia sites in other languages, both user interface as well as language versions of projects. Required skills: User interface design, user experience analysis.
 * Feature development: Developing Android keyboards. Develop keyboard layouts for languages that still aren't supported in the Android OS. Required skills: Basic understanding of Unicode.
 * Quality assurance and fix a bug: 33704: The nearby function doesn't work in some locales. Test whether the 'nearby articles' functionality works in different languages. Needs Android phone. Try to make the functionality work with that language. Required skill: intermediate JavaScript, understanding how HTTP APIs work, root cause analysis.

Visual Editor

 * Quality assurance: Test on different browsers and platforms and with a lot of different scripts. Test whether keyboard shortcuts, typing support, searching and formatting works.

Feedback and suggestions on current tools
User testing for: Your feedback for any of these functionalities is appreciated. Feature requests are preferably entered in as a user story with some requirements.
 * Web fonts
 * Input methods
 * Translation tools
 * Babel

Testing/QA
And any i18n, l10n issue you wanted to resolve for your language!
 * Volunteer developers often reluctant to testing and documentation
 * Writing tests for MediaWiki core
 * Writing tests for extensions:
 * Narayam and WebFonts are supposed to be mostly covered
 * Translate
 * Required skills: PHP, JavaScript. Knowledge of PHPunit, QUnit and jQuery - an advantage.

Mobile
Create new features and apps for reading, contributing and giving free access to Wikipedia on practically any device!

Check out all the features we need currently, such as:


 * Share with identi.ca
 * India landing page
 * GPS API - use it or improve it
 * Photo uploads
 * New WAP view
 * OpenStreetMaps tie-ins

Also check out all of the features for the Android and iOS apps here.

Gadgets

 * Learn to use JavaScript to customize your Wikipedia experience
 * Share your gadgets with other users