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. For each area, we've briefly described the task and what skills you would need to work on it. In many cases, we can teach 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 to work on!

We'll also be leading a Friday afternoon tutorial on localisation to help train you in general.

Improving support for input methods

 * Documentation: See Help:Extension:Narayam for all current documentation and a list of what's missing. 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 using them, and it probably reduces adoption of the input methods, so it prevents people from adding content to wikis. The on-screen keyboard feature should, in an unobtrusive 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 mainly need 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 . These are required for the visual editor; see this email thread discussing the visual editor. Skills needed: Advanced JavaScript and CSS.
 * We would specifically like to create Pali and Newari input methods for Narayam.  One of them has a local input method, so this can be reverse engineered into Narayam.  Skills needed: Knowledge of Pali or Newari.

Improving web font support

 * Feature development: If there are participants interested in typography, we can discuss 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 where we 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 includ Dzongkha / Tibetan script. Only free and open fonts can be included. Required skills: Basic PHP, and knowledge of where to get free and open fonts from.

Mockups of the user interface of our tools
For people interested in UI/UX (user interface and user experience). Required skills: Graphic design and information architecture skills.
 * On-screen keyboard
 * Translation editor
 * Key mappings for mobile

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. Try to make the functionality work with that language. Required skill: intermediate JavaScript, understanding how HTTP APIs work, root cause analysis.  Will also need to have an Android phone.

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. If you find problems, write up bug reports in Bugzilla.  Required skills: Systematic thinking.

Feedback and suggestions on current tools
User testing for: Your feedback for any of these functionalities is appreciated. If you think of a feature request, please write it up as a Bugzilla issue, describing it as a user story with some requirements. Required skills: Thoughtfulness and ability to communicate.
 * Web fonts
 * Input methods
 * Translation tools
 * Babel

Testing/QA
Volunteer developers often prefer writing features over testing. Please help us reverse this and ensure we have proper test coverage for our work in the unit test system! And if there is any i18n or l10n issue you want to fix for your language, we are eager to hear of it and fix it!
 * Writing tests for MediaWiki core
 * Writing tests for Translate extension
 * (Narayam and WebFonts are supposed to be mostly covered, but we can check to improve coverage)
 * Required skills: PHP or JavaScript. Knowledge of PHPunit, QUnit and jQuery - an advantage.

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)

Mobile
Create new features and apps for reading, contributing and giving free access to Wikipedia on practically any device! We'll have a tutorial on Friday afternoon but will also be happy to teach you throughout the weekend.

Here are some ideas to think about:


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

Apps
Also check out all of the features for the Android and iOS apps here, such as:


 * Disable images in Android app
 * 33866


 * Show name of Main Page
 * 33283


 * Indicator while downloading inter-wikis
 * 32903


 * Scroll indicator in Android app
 * 33916


 * Desktop view
 * 31475


 * Contact/feedback page
 * 31591
 * sample design specs: Mobile beta opt-in,  Full-screen search


 * Language prefs in inter-wiki links
 * Tiering languages so most likely languages are at the top of the list, or save most recent languages visited
 * Could be based on country detection
 * 32254


 * Add the option to have favorite languages in the app
 * 34100


 * Display language in use in Settings
 * 32904


 * Filter/search languages
 * 32908


 * More or less nearby results
 * within options or a dialog, initial zoom level
 * 31891


 * Nearby list view
 * 31956


 * Redo search only after moving map
 * 33360


 * Random function, dependent on new UI
 * 33958


 * Long-click copy/paste links
 * 31485


 * Donations
 * 31513


 * Voice input for search
 * 31699


 * Max days to cache article
 * 32346


 * Links in enwiki footer open browser
 * 33015

Check out all the features we need currently.

Gadgets
We will not have a formal tutorial on Gadgets at this event. But we will be available to answer questions and help you find materials to self-learn.


 * Learn to use JavaScript to customize your Wikipedia experience
 * Self-learning tutorial and video
 * Share your gadgets with other users