Mandalorians Geolocation data entry

From mn/ifi/inf5750
Revision as of 14:05, 9 December 2013 by Clausbo@uio.no (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.