BHJS
Contents
List of Group Members
- Bård Winther (baardew) baardew@ifi.uio.no
- Henrik Tufte Lien (henriktl) tuftelien@gmail.com
- Jonas Sandnes (jonsandn) jonsandn@ifi.uio.no
- swati sharma (swatis) swatis@ifi.uio.no
Application Structure
For the remainder of this document "backend" would refer to application controller and other javascript that is not used directly with presentation. Likewise, "fronend" denote everything connected to or is GUI elements.
File layout
Organization of program structure using MVVM:
Technologies:
Javascript, AngularJS, HTML and CSS. JSON for rest communication.
TDD is a must: QUnit is currently used, but if it proves to be insufficient then Protactor may be an option to add as well. During development, we found no need for additional testing, as angular was best inspected manually.
Attempt to solve the problem with a generic implementation that parses any json object and displays it on screen.
CSS specific for every view, check out: http://plnkr.co/edit/oWw3QUc9P4leo0gO5EzL?p=preview
GUI Layout:
The GUI laytout describes the three different methods of viewing the content. Each view is switchable in the same main page. Presented below is the mockup, see next section for actual results.
Api index (listing the resources)
resource view (list of objects)
object view (info about a specific object)
Summary of Requirements
List is in prioritized order
- Display every possible path obtained by click-through of API (in other words, every link should be "followable")
- User friendly, which implies: no need for direct keyboard input, all information readily avaiable (no hidden content) and simple to retrace steps
- The program should deal with errors and misuse correctly and elegantly (in other words, not crash if someone does something un-expected)
Time Schedule
These milestones are guidelines only, except for 3rd December.
- 1. nov : design layout finished
- 8. nov : static html layout presentable
- 29. nov : main work done
- 3. dec : hard deadline
Task Division
baardew: backend controller and configuration + additional frontend where required
henriktl: Resource list view
jonsandn: Object view
swatis: Api index view
Screenshots and Screen Flows
Documented Learning During Project
- Learned to configure AngularJS views and linking it with other project resources.
- Improved Javascript and angular experience.
- Learned the DHIS API.
Suggested Improvements
- Display the path of clicks for easier navigation. Not included as most of the time the path taken is quite shallow.
Link to Repository
gitolite@git.uio.no:inf5750/baardew/dhis_bhjs
Download Link to Sample Web App or Android App
< NOT APPLICABLE >
Questions and Suggestions:
While the DHIS API is intuitive and easy to follow, it would be nice to have one place where the content of each module is described. Reffering to the question: "Could not find the API for data model fields (https://www.dhis2.org/doc/snapshot/en/user/html/apes04.html)"