N.T.K Survey

From mn/ifi/inf5750
Revision as of 14:45, 6 December 2013 by Thucth@uio.no (talk | contribs) (Group meeting log)

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

Group members of N.T.K

- Nguyen (congnn@ifi.uio.no)

- Thuc (thucth@ifi.uio.no)

- Kennet (kennetvu@ifi.uio.no)

Requirements for the Survey app

- Single event data entry form

- Skip logic (eg. If pregnant, fill in these extra forms)

- Make interface for easily defining form and skip logic (integrated with single event, but you’ll need some additional info)

- Available as DHIS2 web app and Android app (phonegap) - Touch friendly UI

(copied directly from Lecture 6 - Group projects)

Milestones set by course-teachers

Each group should follow these milestones:

Milestone 1: 1st November

Document features and architecture on Wiki

Show understanding of DHIS2 web apps

Milestone 2: 15th November

First bare-bone version - static HTML

Uploadable as DHIS2 web app

Milestone 3: 30th November

Finished, if applicable also with mobile app.
Final delivery: 8th December
Presentation: 9th December

Work logs

--- Thuc's work log ---

Currently working on:

Optimalizing code and fixing bugs


  • Data extraction successful and uploaded to Github
  • Added bootstrap twitter as UI.
  • Since other groups (on all projects) are using Angluar/Ember/Restful/Data binding-frameworks I've chosen (for the group) to write everything in pure JS (with jQuery), both for learning and understanding more but also to prove that it's also possible to make without a framework that makes some parts easier.
  • Create a dropdown menu with all programs the users have access to (http://apps.dhis2.org/demo/api/programs.json)
  • Retrieve data from DHIS2 about the logged in user (http://apps.dhis2.org/demo/api/me)
  • Finishing up the program-forms (retrieving data and creating form-inputs (with optionsets!))
  • Initiated a joint-project between HKH and NT by sharing DHIS-api JSON-files in a private repository.
  • Polishing the pages, optimalizing the code and testing out the current implementations
  • Changed the way the questions are getting fetched from the server in order to integrate skip-logic easier
  • Integration of skip-logic in the forms

--- Nguyen's work log ---

Currently working on:

Main bug-tester


  • Fetching data from forms
  • Downloaded json files to work offline because it takes too much effort to upload the web app everytime I wanted to test it. Created hostcheck and revising after planning with Thuc on the program-fetching part (going back to selector instead of using buttons).
  • Tested how to upload an web-app to DHIS2. Uploaded a dummy-app with a simple manifest file.
  • Fixed some code in the various javascript files for more efficiency when running.
  • Fetching the input values from the form and parsing the data values
  • Creating a new JSON object to match the criterias
  • Sending parsed JSON object to http://apps.dhis2.org/demo/api/events

--- Kennet's work log ---

Currently working on:

Optimizing code and fixing bugs
Adding issues to github, that should be fixed by the group.


Kennet have worked close with the N.T group before joining the group permanently (group is now renamed N.T.K), and alot of the solutions in this survey app is solved in collaboration with Kennet.

Go to HKH page to look at his work with his previous group: https://wiki.uio.no/mn/ifi/inf5750/index.php/HKH_Survey

He has previously used angular, but has now moved over to pure javascript to work on this survey app.


- JavaScript, jQuery, CSS, HTML5, AJAX, Bootstrap Twitter

- Instead of only skip logic, we'll try to implement the Survey app with "grow" logic. 

- We define "grow" logic as giving the user only the nessesary data/questions/choices at a certain time. And skipping the alternatives that aren't relevant for the answer.

[Example] If the user has chosen their gender as male earlier in the survey, the question of being pregnant will never shown.


Survey v1 webapp.png

Survey uploaded to localhost
Survey uploaded to DHIS2
Survey v2 uploaded to localhost
Survey v2.1 uploaded on localhost
Survey v2.2 uploaded on localhost

To do list

0: Create a GitHub repository for the group | [DONE] GitHub-masterbranch: https://github.com/ThucHoang/INF5750_Survey.git

1.1: Upload a test-zip with a working manifest file to test out how the web-app works. [DONE] Uploaded a dummy app: http://apps.dhis2.org/apps/test//index.html [REMOVED FROM DHIS DUE TO THE DAILY RESET]

1.2: Create a simple webpage with working skip logic 

1.3: Use EmberJS/Angular to retrieve data from the Web API [DONE] Retrieved data from DHIS2 (both program and me) with pure JS (and jQuery). 

2.1: Creating the program-forms [DONE]

2.2: Creating a skip logic function that works with the program-forms [DONE]

2.3: Sending form-data to http://apps.dhis2.org/demo/api/events [DONE] The data has been confirmed sent by checking on the dhis2 single event registration manager-page.

Group meeting log

29th October 2013: First meeting of the N.E.T group. Deciding the architechture and how we should proceed with the project. Next meeting will be held on Friday 1st November.

1st November 2013: Decided which frameworks to use, still unsure if we're going to use Ember or Angular, but that will be tested and the result will be presented in the next group meeting. The work dividing-are has been updated, we've also created a to-do list (workplan) for the upcoming days/weeks.

12th November 2013: Eivind (eivineng@ifi.uio.no) has decided to leave our group because of personal reasons. We wish him good luck in his studies and in the future. On another note, our next meeting will be on thursday 14th November.

14th November 2013: Due to high pressure from other courses combined with work Thuc are taking a week to take care of the amount of work he has to do. Nguyen are working with sending data from the forms and skip-logic (a meeting on Monday 18th November will be held to define how we are going to do the skip-logic).

18th November 2013: Since we are now only 2 in the group we've been allowed to skip the interface to create skip-logic, but instead load the skip-logic from a pre-defined file. A very simple skip-logic has been defined, but we have chosen to NOT have skip-logic for the optionsets. A new meeting will be held on Tuesday 26th November to see how far the we've gotten with the implementations.

26th November 2013: We've finished faster than what we expected. The skip-logic integration has been tested, but still have some bugs. While the sending JSON object have not been tested towards DHIS2. It should be working, but time will tell. As for the next few weeks we'll go through the js files and filter our code, perhaps there's a better way to implement the current methods we've done. The next meeting will be held on Monday 2nd December.

Monday 2nd December: We've recieved a new member in the group, we were before known asN.T, but now we are N.T.K. Kennet switched from HKH (now HH(?)) to us, and his duties will be optimalizing the code and tracking the bugs we have. We've also decided to EXTEND our skip logic to make it even better than what it currently are (and the code behind it to make it run smoother in browsers and mobile-units). The goal for the finished product are set to Sunday 8th December. In theory we have finished this assignment by using jQuery and pure JS + AngularJS.


Link: https://github.com/ThucHoang/INF5750_Survey.git

Please send an email to thucth@ifi.uio.no if you need access to our private repository.