Group 1: (Avis)

Idea

Avis - Accident Visualizer

The fundamental idea of Avis is to visualize Finnish emergency information using Google Maps and Vaadin, thus providing user with geographical incident information. Furthermore, Avis lists and differentiates different incident types. The incident data is available through Rescue services in Finland and provided as a public RSS feed.

Planned services

Priority scale: 1 = Most Critical .. 3 = Least Critical

Service	Priority
Display the last 30 incidents in the map according to the incident location.	1
Allow user to manually refresh the map to reflect the latest feed information.	1
Display the last five (5) incidents as popup windows on the map.	2
Refresh the map periodically to reflect the latest feed information.	2
Display the non-locatable incidents as bold in the RSS feed panel.	2
Display a notification when non-locatable incidents exist.	2
Scroll the map to the area of the latest incident.	2
Allow user to select a time frame for the displayed incident information.	3
Draw icons to differentiate between the different incident types.	3
Allow user to expand/collapse a panel with the actual RSS feed data.	3
Allow user to control the amount of displayed incidents.	3

Implemented services

User can manually refresh the map to reflect the latest incident data
User can add incident data to map by clicking an incident link in the sidepanel
User can zoom into accident locations by clicking an incident link in the sidepanel
User can zoom out the map by clicking a button
User can clear the incidents icons from the map by clicking a button
User sees a notification when the map is refreshed
User sees a notification when an incident with no location is clicked
User sees an incident info window by clicking an incident icon
User sees an incident tooltip by hovering mouse over an incident (icon or link)
User sees a notification in case of an error
User sees the amount of listed incidents in topbar
Display the last 10 incidents on the map according to incident locations
Incidents are differentiated by icons that matched the incident type

Screenshots

http://www.codecamp.fi/wiki/lib/exe/fetch.php/vaadin2009/grp1/avis_scrnshot.png?w=120&h=100

http://www.codecamp.fi/wiki/lib/exe/fetch.php/vaadin2009/grp1/avis_scrnshot2.png?w=120&h=100

http://www.codecamp.fi/wiki/lib/exe/fetch.php/vaadin2009/grp1/avis_scrnshot3.png?w=120&h=100

http://www.codecamp.fi/wiki/lib/exe/fetch.php/vaadin2009/grp1/avis_scrnshot4.png?w=120&h=100

Implementation

Three fundamental components: RSS reader, parser class and Google Maps widget

Avis application itself implements transaction listener to keep track of
application context in thread level.

Parser uses simple regexp grouping to find locations and events from feed data

Google Maps widget is wrapped by Vaadin widget. We extended the widget as
described below (see Used components / widgets)

Used components

Vaadin components:

Multiple layout components (Horizontal layout, Vertical layout, Split panel etc)
Notifications (Humanized and Error)
Table
Buttons (with themed images)
Labels (with XHTML formatting)

Widgets: Vaadin GWT Google Maps wrapper widget

Extended (by us):
GeoCoding (HTTP request/response from Google Maps)
Overloaded Marker constructor to support address
Marker randomization to avoid overlapping markers

Other things:

Custom theme (Avistheme) with icons, images and CSS

Vaadin

Impressive things in Vaadin:

Flexibility
Extendability
User support

Encountered problems:

Initial problems with usage of embedded resources

Software

(files and instructions to run software)