Difference between revisions of "(APE) Geolocation data entry"

From mn/ifi/inf5750
Jump to: navigation, search
(Initial page)
(Dividing tasks)
 
(19 intermediate revisions by 2 users not shown)
Line 14: Line 14:
 
*show a map of the current location of the user  
 
*show a map of the current location of the user  
 
*let users choose a location  
 
*let users choose a location  
*fill out a form for "inpatient morbidity and mortality"
+
*fill out a form for selected program and organization unit
 
*let users save the location and the filled out form  
 
*let users save the location and the filled out form  
 
*show all of the saved data on the map
 
*show all of the saved data on the map
  
 +
= Dividing tasks =
 +
 +
These are the main tasks each member has done:
 +
 +
* Alexander: Map functions, get information about programs, org units and programstages
 +
* Peter: Event handling
 +
* Eivind: Webapp layout, popup input window and event table
  
 
= Design  =
 
= Design  =
Line 23: Line 30:
 
== Initial page ==
 
== Initial page ==
  
[[Image:Geo_loc_init.png|400px|alt = initial image]]  
+
[[Image:Geo_loc_init_v2.png|400px|alt = initial image]]  
 
 
The page that shows the initial layout of the webapp. It contains a simple map and the option to choose the "program". This enables the option to select organizations that has this program available.
 
  
[[Image:File2.jpg|400px|alt = sketch image 2]]  
+
The image above shows the initial layout of the webapp.
 +
 +
[[Image:Geo_loc_choose.png|400px|alt = choose program and org unit]]  
  
The buttons "Add" and "View" lets the user decide if the list of events should be shown or not. On smaller screens, such as mobile units, the list will never be shown.
+
The webapp contains a simple map and the option to choose the "program". This enables the option to select organizations that is available for the chosen program.
  
 
== List of events ==
 
== List of events ==
  
[[Image:File3.jpg|400px|alt = sketch image 3]]  
+
[[Image:Geo_loc_list_v2.png|400px|alt = event list]]  
 
 
If there are events at the organization, we retrieve a list of the events. The table containing the events has several options tied to it:
 
• A search function (top right).
 
• Sort by column (in each column header).
 
• Show different amount of events/records per page (top left).
 
• Scroll through pages (bottom right).
 
  
 +
If there are events at the organization, we retrieve a list of the events. The table containing the events has several functionalities tied to it:
 +
* A search function (top right).
 +
* Sort by column (in each column header).
 +
* Show different amount of events/records per page (top left).
 +
* Scroll through pages (bottom right).
  
== markers on the map ==
+
== Markers on the map ==
  
[[Image:File4.jpg|400px|alt = sketch image 4]]  
+
[[Image:Geo_loc_marker.png|400px|alt = sketch image 4]]  
  
 
For events that contains location, a marker is shown on the map. The markers are clickable, and will contain information about the event.
 
For events that contains location, a marker is shown on the map. The markers are clickable, and will contain information about the event.
 
[[Image:File5.jpg|400px|alt = sketch image 5]]
 
 
  
 
= Architecture<br>  =
 
= Architecture<br>  =
Line 56: Line 59:
  
 
Twitter Bootstrap is used for good and sensible default styling of elements as well as for some Javascript functionality, e.g. modal windows.
 
Twitter Bootstrap is used for good and sensible default styling of elements as well as for some Javascript functionality, e.g. modal windows.
 +
 +
dataTables is a plugin for Jquery that will make table handling a lot easier. It will automatically give us pagination, search feature, column sorting and function for retrieving row and column number of cell number which is beeing clicked, which is very handy.
  
 
The map will be delivered by Google's Map API, and the data from DHIS will be requested by ajax calls and returned as Json data, which will populate our map and tables.
 
The map will be delivered by Google's Map API, and the data from DHIS will be requested by ajax calls and returned as Json data, which will populate our map and tables.
Line 66: Line 71:
 
*CSS  
 
*CSS  
 
*JavaScript  
 
*JavaScript  
 +
*JQuery
 
*AJAX  
 
*AJAX  
 
*Json  
 
*Json  
 +
*Google Maps API
 
*Twitter Bootstrap — for good styling of elements  
 
*Twitter Bootstrap — for good styling of elements  
*JQuery
+
* dataTables — Plugin for Jquery for easier table handling
*Google Maps API
 
  
 
== Features  ==
 
== Features  ==
Line 82: Line 88:
 
*Stage 1: <strike>Write about features, design and architecture, research DHIS</strike>
 
*Stage 1: <strike>Write about features, design and architecture, research DHIS</strike>
 
*Stage 2: <strike>Implement frontend with dummy data</strike>
 
*Stage 2: <strike>Implement frontend with dummy data</strike>
*Stage 3: Link front end with DHIS through API calls
+
*Stage 3: <strike>Link front end with DHIS through API calls</strike>

Latest revision as of 23:14, 8 December 2013

Team

  • Alexander Eismont
  • Peter Ludvik Eidsvik
  • Eivind Lindbråten


Code: https://code.launchpad.net/~ape-inf5750

Features

Our Web and Mobile application will have the following features:

  • show a map of the current location of the user
  • let users choose a location
  • fill out a form for selected program and organization unit
  • let users save the location and the filled out form
  • show all of the saved data on the map

Dividing tasks

These are the main tasks each member has done:

  • Alexander: Map functions, get information about programs, org units and programstages
  • Peter: Event handling
  • Eivind: Webapp layout, popup input window and event table

Design

Initial page

alt = initial image

The image above shows the initial layout of the webapp.

alt = choose program and org unit

The webapp contains a simple map and the option to choose the "program". This enables the option to select organizations that is available for the chosen program.

List of events

alt = event list

If there are events at the organization, we retrieve a list of the events. The table containing the events has several functionalities tied to it:

  • A search function (top right).
  • Sort by column (in each column header).
  • Show different amount of events/records per page (top left).
  • Scroll through pages (bottom right).

Markers on the map

alt = sketch image 4

For events that contains location, a marker is shown on the map. The markers are clickable, and will contain information about the event.

Architecture

We will mainly rely on HTML/CSS and Jquery for this project. The Jquery framework will allow us to write code much faster and cleaner — we don't have to reinvent the weel each time we need a spesific function. Mainly for simple ajax calls and element selection. 

Twitter Bootstrap is used for good and sensible default styling of elements as well as for some Javascript functionality, e.g. modal windows.

dataTables is a plugin for Jquery that will make table handling a lot easier. It will automatically give us pagination, search feature, column sorting and function for retrieving row and column number of cell number which is beeing clicked, which is very handy.

The map will be delivered by Google's Map API, and the data from DHIS will be requested by ajax calls and returned as Json data, which will populate our map and tables.

We will try to make our site responsive so it will look great on mobile, tablet and desktop devices.

Technologies

  • HTML
  • CSS
  • JavaScript
  • JQuery
  • AJAX
  • Json
  • Google Maps API
  • Twitter Bootstrap — for good styling of elements
  • dataTables — Plugin for Jquery for easier table handling

Features

  • Android application — using Cordova
  • iPhone application — using Cordova
  • Responsive web design — targeted for mobile and desktop screens

Milestones

  • Stage 1: Write about features, design and architecture, research DHIS
  • Stage 2: Implement frontend with dummy data
  • Stage 3: Link front end with DHIS through API calls