Difference between revisions of "Mandalorians Geolocation data entry"

From mn/ifi/inf5750
Jump to: navigation, search
(Requirements)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Team ==
 
== Team ==
  
Haimanot Ftsumbrhan Tekie<br>
+
* Haimanot Ftsumbrhan Tekie
Ghada Shummo<br>
+
* Ghada Shummo
Claus Bornich
+
* Claus Bornich
 +
[[File:ClausBornich.png]]
  
== Requirements ==
+
== Project Links ==
  
* Based on single event data entry.
+
* Link to repository: https://github.com/Tarostar/DHIS2_GeoLocationApp
* Deployed as DHIS2 web app & as android app using OWA.
+
* Download link to app zip: http://www.radicalapproach.co.uk/resources/GeoLocation.zip
* Show map of current location.
+
* Link to DHIS2 installed app: http://apps.dhis2.org/dev (please choose the Mandalorian GeoLoc app under App Management)
* Select location or current location to link to data entry, then enter data on a form.
+
* Download link to logbook PDF (google doc which gives an overview of work done during the project, but note that not everything was logged): [[File:MandalorianLogbook.pdf‎]]
* Data is stored with location.
+
* Presentation: [[File:MandPres.pdf]]
* Ability to store images related to form entry.
+
 
 +
== Specification ==
 +
 
 +
* Based on single event data entry without registration.
 +
* Deployed as DHIS2 web app using OWA.
 +
* Show map
 +
** Map shows current location (if supported by browser and accepted by user)
 +
** Right click on map to select new location
 +
** Latitude and longitude are shown below map and can be edited
 +
** Map shows location of any events shown in list below map that has coordinates
 +
* New Event Form
 +
** Available by clicking "create event" button
 +
** Select programme and then fill in event (save or cancel)
 +
** Event is stored along with latitude/longitude
 +
** Event form is on same page (single page app)
 +
** Data is stored with location on clicking save
 +
* Event List
 +
** Filtered by programme, orgUnit and latitude/longitude
 +
** List of events with latitude and longitude
 +
** Events with coordinates are drawn in google map as pins
 +
* Google Map Event Markers
 +
** Markers drawn as pins
 +
** Markers show detailed information about event
 +
** Markers contain url link to event XML data
 +
 
 +
== Screenshots ==
 +
=== Map and Pins ===
 +
[[File:MandPinScreen.png|700px|thumb|left|Patient dashboard page]]
 +
=== Event List for Period of a Program and selected orgUnit ===
 +
[[File:MandEventList.png|700px|thumb|left|Patient dashboard page]]
 +
=== Dynamic Event Form ===
 +
[[File:MandEventForm.png|700px|thumb|left|Patient dashboard page]]
  
 
== Timeline ==
 
== Timeline ==
  
'''Novmber 6th''': App working in DHIS2<br>
+
* '''Novmber 6th''': App working in DHIS2
'''November 13th''': Basic Functionality<br>
+
* '''November 13th''': Basic Functionality
'''November 20th''': Minimum Functinality Working<br>
+
* '''November 20th''': Minimum Functinality Working
'''November 25th''' (or 22nd/26th): Final changes and additional functionality<br>
+
* '''November 27th''' Final changes and additional functionality
'''December 8th''': Delivery<br>
+
* '''November 30th''' Final review and make available here and by email
'''December 9th''': Presentation<br>
+
* '''December 8th''': Delivery
 +
* '''December 9th''': Presentation
  
 
== Tools ==
 
== Tools ==
Line 43: Line 76:
  
 
* Running local DHIS 2 with postgresql
 
* Running local DHIS 2 with postgresql
* Chrome
+
* Firefox and Chrome
 
* Android Development Tools (Android emulator plugin)
 
* Android Development Tools (Android emulator plugin)
 
* DHIS2 Demo Site: http://apps.dhis2.org/demo
 
* DHIS2 Demo Site: http://apps.dhis2.org/demo
 +
* DHIS2 Dev Site: http://apps.dhis2.org/dev (primary test location)
 
* Genymotion
 
* Genymotion
  
 
=== Misc ===
 
=== Misc ===
  
 +
* JSONView Plugin for Chrome
 +
* RESTClient Plugin for Firefox
 
* Paint.net for mockups
 
* Paint.net for mockups
 
* Media Monkey for music to program to
 
* Media Monkey for music to program to
  
== Document features and architecture on Wiki ==
+
=== Learning Documentation ===
 +
 
 +
We documented our learning and progress primarily using a logbook on google docs. We also used trello for early task scheduling and of course we relied extensively on git comment and diff functionality.
 +
 
 +
Javascript, JQuery and CSS was learned as needed with some prior knowledge between us using such resources as: StackOverflow.com (and google), codeschool.com and "Javascript The Good Parts" (book), as well as lecture notes help from lecturers and teachning staff in the group classes.
 +
 
 +
== Features and Architecture ==
 +
 
 +
The goal of this project is to create a DHIS2 app.
 +
 
 +
The main feature of the app is to allow single event data entry  (MULTIPLE_EVENTS_WITH_REGISTRATION) to be submitted by the user.
 +
 
 +
The user will need to log before submitting and the user’s location (latitude and longitude) will be registered (if the user allows this in the browser).
 +
 
 +
It should ideally be possible to submit an image with the report.
 +
 
 +
A google map will be displayed in the app. Data entry with a location should be retrieved and shown on the map. The user should be able to see a link and potentially the image and title by hovering the mouse button over such a data entry.
 +
 
 +
=== Mockups ===
 +
 
 +
A very early mockup of a list with some events (reports?) and a button to create a new event (report?). Note that the final version may not resemble these, but these are early concept versions.
 +
 
 +
[[File:MandalorianMockup1.png]]
 +
 
 +
Shown in nexus 7 emulator and with a marker to show current position. Ideally similar markers will show location of other events (reports?) and prove a link to the event (report?) with a mouse hover.
 +
 
 +
[[File:MandalorianMockup2.png]]
  
== Show understanding of DHIS2 web apps  ==
+
== DHIS2 web apps  ==
  
 
DHIS2 is an open source software. This software has a web interface that can be extended by packaged apps. A packaged app is an open web app that has all its resources contained in a zip file and can be uploaded to a DHIS 2 installation at runtime. The only difference with a normal web app and an open app is, that it contains an app manifest(manifest.webapp) in the root directory. This makes it possible to custom make an application that satisfies some uniqe requirements. The extended apps can utilize the core functionality in DHIS2. For our group project, we will be making a web app that will be using dhis2 api.  
 
DHIS2 is an open source software. This software has a web interface that can be extended by packaged apps. A packaged app is an open web app that has all its resources contained in a zip file and can be uploaded to a DHIS 2 installation at runtime. The only difference with a normal web app and an open app is, that it contains an app manifest(manifest.webapp) in the root directory. This makes it possible to custom make an application that satisfies some uniqe requirements. The extended apps can utilize the core functionality in DHIS2. For our group project, we will be making a web app that will be using dhis2 api.  

Latest revision as of 14:05, 9 December 2013

Team

  • Haimanot Ftsumbrhan Tekie
  • Ghada Shummo
  • Claus Bornich

ClausBornich.png

Project Links

Specification

  • Based on single event data entry without registration.
  • Deployed as DHIS2 web app using OWA.
  • Show map
    • Map shows current location (if supported by browser and accepted by user)
    • Right click on map to select new location
    • Latitude and longitude are shown below map and can be edited
    • Map shows location of any events shown in list below map that has coordinates
  • New Event Form
    • Available by clicking "create event" button
    • Select programme and then fill in event (save or cancel)
    • Event is stored along with latitude/longitude
    • Event form is on same page (single page app)
    • Data is stored with location on clicking save
  • Event List
    • Filtered by programme, orgUnit and latitude/longitude
    • List of events with latitude and longitude
    • Events with coordinates are drawn in google map as pins
  • Google Map Event Markers
    • Markers drawn as pins
    • Markers show detailed information about event
    • Markers contain url link to event XML data

Screenshots

Map and Pins

Patient dashboard page

Event List for Period of a Program and selected orgUnit

Patient dashboard page

Dynamic Event Form

Patient dashboard page

Timeline

  • Novmber 6th: App working in DHIS2
  • November 13th: Basic Functionality
  • November 20th: Minimum Functinality Working
  • November 27th Final changes and additional functionality
  • November 30th Final review and make available here and by email
  • December 8th: Delivery
  • December 9th: Presentation

Tools

An overview of some of the tools used for this project.

Group Planning, Organisation and Diary

Development Tools

  • Eclipse
  • Git (Github)
  • Bazaar (dhis2-academy)
  • Bootstrap CSS

Testing and Deployment

Misc

  • JSONView Plugin for Chrome
  • RESTClient Plugin for Firefox
  • Paint.net for mockups
  • Media Monkey for music to program to

Learning Documentation

We documented our learning and progress primarily using a logbook on google docs. We also used trello for early task scheduling and of course we relied extensively on git comment and diff functionality.

Javascript, JQuery and CSS was learned as needed with some prior knowledge between us using such resources as: StackOverflow.com (and google), codeschool.com and "Javascript The Good Parts" (book), as well as lecture notes help from lecturers and teachning staff in the group classes.

Features and Architecture

The goal of this project is to create a DHIS2 app.

The main feature of the app is to allow single event data entry (MULTIPLE_EVENTS_WITH_REGISTRATION) to be submitted by the user.

The user will need to log before submitting and the user’s location (latitude and longitude) will be registered (if the user allows this in the browser).

It should ideally be possible to submit an image with the report.

A google map will be displayed in the app. Data entry with a location should be retrieved and shown on the map. The user should be able to see a link and potentially the image and title by hovering the mouse button over such a data entry.

Mockups

A very early mockup of a list with some events (reports?) and a button to create a new event (report?). Note that the final version may not resemble these, but these are early concept versions.

MandalorianMockup1.png

Shown in nexus 7 emulator and with a marker to show current position. Ideally similar markers will show location of other events (reports?) and prove a link to the event (report?) with a mouse hover.

MandalorianMockup2.png

DHIS2 web apps

DHIS2 is an open source software. This software has a web interface that can be extended by packaged apps. A packaged app is an open web app that has all its resources contained in a zip file and can be uploaded to a DHIS 2 installation at runtime. The only difference with a normal web app and an open app is, that it contains an app manifest(manifest.webapp) in the root directory. This makes it possible to custom make an application that satisfies some uniqe requirements. The extended apps can utilize the core functionality in DHIS2. For our group project, we will be making a web app that will be using dhis2 api.

Creating an open app for DHIS 2

This is done by creating a web app and including a manifest.webapp at the root directory. The minimum requirement for what the manifest file should contain is the code below:

 {  "version": "0.1",
  "name": "My App",
  "description": "My App is a Packaged App",
  "launch_path": "/index.html",
  "icons": {
      "16": "/img/icons/mortar-16.png",
      "48": "/img/icons/mortar-48.png",
      "128": "/img/icons/mortar-128.png"
  },
  "developer": {
      "name": "Me",
      "url": "http://me.com"
  },
  "default_locale": "en",
  "activities": {
      "dhis": {
          "href": "*"
      }
  }
}


Installing the app in DHIS 2
  1. Login to DHIS 2
  2. Go to Maintenance
  3. Choose App Management
  4. Then you will come to a page where you will be able to upload the zip file., and that where the packaged app is ment to be loaded.