MobileFrontend/Requirements
Task | Title | Description | Next step | Progress | Bug | Priority | Difficulty |
---|---|---|---|---|---|---|---|
#1 | #Implement views | Create the views needed to support XHTML, WML rendering of file, home, image and show | open | 60% | Medium | 12 hours | |
#2 | #Implement layouts | Create the layouts needed to support XHTML, WML rendering of application | open | 70% | Medium | 10 hours | |
#3 | #Implement parsers | Create image, WML and XHTML parsers for page content | open | 70% | Medium | 20 hours | |
#4 | #Create models | Create models for (article, device, image, [other resource]) | open | 50% | Medium | 10 hours | |
#5 | #Create controllers | Create articles controller or equivalent [if not MVC] (including helpers, etc.) | open | 0% | Medium | 12 hours | |
#6 | #Create caching support | Implement server resource retrieval and caching support | open | 55% | Medium | 12 hours | |
#7 | #Implement format lists | Implement formats list (view format e.g., html, etc., javascript support, layout) | open | 90% | Medium | 8 hours | |
#8 | #Implement translation support | Convert translation support for various global strings | open | 80% | Medium | 8 hours | |
#9 | #Implement exception handling | Create global exception handling support | open | 0% | Medium | 4 hours | |
#10 | #Implement basic logging | Implement basic logging and statistics support | open | 0% | Medium | 6 hours | |
#11 | #Implement css | Create device and format based css (e.g., iphone, nokia, firefox, blackberry, etc.) | open | 60% | Medium | 8 hours |
Implement views
editCreate the views needed to support XHTML, WML rendering of file, home, image and show
Implement layouts
editCreate the layouts needed to support XHTML, WML rendering of application
Implement parsers
editCreate the image, WML and XHTML parsers for various content
Create models
editCreate models for (article, device, image, [other resource])
Create controllers
editCreate articles controller or equivalent [if not MVC] (including helpers, etc.)
Create caching support
editImplement server resource retrieval and caching support
Possible solution: http://www.mediawiki.org/wiki/Manual:Varnish_caching
Implement format lists
editImplement formats list (view format e.g., html, etc., javascript support, layout)
Implement translation support
editConvert translation support for various global strings. Use standard MediaWiki internationalization method.
Implement exception handling
editCreate global exception handling support
Implement basic logging
editImplement basic logging and statistics support
Implement css
editCreate device and format based css (e.g., iphone, nokia, firefox, blackberry, etc.)
Possible Roadmap
editA General Primer
With all of the different formats we have to support, there is a fairly simple system for correlating a Device with a Format with some specific actions to take based on that Format.
Process:
- A request comes in from a mobile browser
- The request generates a Device object
- - Any method_missing that Device receives is looked up in the format specification
- - The formats are specified in config/formats
- An Article is fetched for that device
- - First, the article figures out what kind of parser needed to be run on the page
- - It then generates a key with that parser type.
- - It then checks to see if that has been cached
- - If it is not cached, it grabs scrapes the Wikipedia page and processes it with some parsers/* class
- - If it is cached, it returns that cached object
- The layout is generated with the returned Article#html
- - The device format is used heavily here (aka, "= current_device.stylesheet_name")
- - An "app/views/layouts/_search_#{format}.html" file is rendered in the search area
- - Changes in the search box and CSS fields are the most different between formats
Back Log
edit- Evaluate size of search box
- Language variant support needs to be checked.
- Load wurfl config in memory, instead of from wurfl-config.xml. Makes it possible to check for memcached configuration and makes it possible to change config without software deployment changes.
- interface lang vs contentlang.