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
[edit]Create the views needed to support XHTML, WML rendering of file, home, image and show
Implement layouts
[edit]Create the layouts needed to support XHTML, WML rendering of application
Implement parsers
[edit]Create the image, WML and XHTML parsers for various content
Create models
[edit]Create models for (article, device, image, [other resource])
Create controllers
[edit]Create articles controller or equivalent [if not MVC] (including helpers, etc.)
Create caching support
[edit]Implement server resource retrieval and caching support
Possible solution: http://www.mediawiki.org/wiki/Manual:Varnish_caching
Implement format lists
[edit]Implement formats list (view format e.g., html, etc., javascript support, layout)
Implement translation support
[edit]Convert translation support for various global strings. Use standard MediaWiki internationalization method.
Implement exception handling
[edit]Create global exception handling support
Implement basic logging
[edit]Implement basic logging and statistics support
Implement css
[edit]Create device and format based css (e.g., iphone, nokia, firefox, blackberry, etc.)
Possible Roadmap
[edit]A 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.