Difference between revisions of "TheGroupInc"

From mn/ifi/inf5750
Jump to: navigation, search
(System overview)
(Download link to sample web app)
 
(37 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
== Group members ==
 
== Group members ==
* Vetle Falch (vetleaf@ifi.uio.no)
+
* Vetle Falch (vetleaf@ifi.uio.no)  
 
* Bjørn Marius Von Zernichow (bjornmv@ifi.uio.no)
 
* Bjørn Marius Von Zernichow (bjornmv@ifi.uio.no)
 
* Jørgen Bjerke (jorgebje@ifi.uio.no)
 
* Jørgen Bjerke (jorgebje@ifi.uio.no)
Line 6: Line 6:
 
== Summary of requirements ==
 
== Summary of requirements ==
 
=== Purpose ===
 
=== Purpose ===
Web app for DHIS 2 statistical computation that allows users to query a dataset, returning requested statistical results.
+
Web app for DHIS 2 statistical computation that allows users to query a dataset, returning requested moving average for current and previous year.
  
 
=== System overview ===
 
=== System overview ===
Front-end: Angular 2 Singe Page Application/*
+
* Front-end: Angular 2 Single Page Application
Back-end: NodeJS server and Loopback for server side statistical computation. Reading datasets from DHIS 2 web API.
 
  
=== Overall description Product perspective System Interfaces ===
+
[[File:Architecture_TGI.png|thumb|none|alt=Architecture|Architecture]]
=== User Interfaces ===
+
 
=== Software interfaces ===
+
'''Technologies involved:
=== Communication Interfaces ===
+
'''
 +
* '''Angular 2'''
 +
* ECMAScript 6
 +
* Typescript
 +
* HTML
 +
* CSS
 +
* Angular cli - MIT license
 +
* NodeJS
 +
* Babel
 +
* Webpack
 +
* Protractor
 +
* Github
 +
* Git
 +
* DHIS2 web API
  
 +
'''3rd party native Angular 2 components:
 +
'''
 +
* '''Ng-lightning''' [http://ng-lightning.github.io/ng-lightning/#/ link] - MIT license
 +
* '''PrimeNG''' [https://github.com/primefaces/primeng link] - MIT license
  
=== Site Adaptation Requirements ===
+
=== User Interfaces ===
 +
[[File:Wireframe.JPG|thumb|none|600px|alt=Wireframe|Wireframe]]
 +
[[File:TheGroupInc_Final_release.png|thumb|none|600px|alt=Final release|Final release]]
  
=== Product functions ===
 
 
=== User characteristics ===
 
=== User characteristics ===
=== Constraints, assumptions and dependencies ===
+
* DHIS 2 related users that want to query a moving average (monthly) for occurrence of different indicators
 +
* The typical user is already familiar with general statistical functionality
  
=== Specific requirements ===
 
=== External interface requirements ===
 
 
=== Functional requirements ===
 
=== Functional requirements ===
 +
Statistical functionality:
 +
* Moving average (monthly)
 +
* Comparison of two datasets (I.e. same time interval for different years)
 +
 
=== Performance requirements ===
 
=== Performance requirements ===
 
+
* Requirements for statistical computation: test front-end computation on monthly datasets for two different years.
=== Software System attributes Reliability ===
 
  
 
== Milestone ==
 
== Milestone ==
Line 44: Line 63:
 
Make a Git repository
 
Make a Git repository
  
=== 27.11.2016 ===
+
=== 04.11.2016 ===
 +
Back end: first iteration working API and statistical computation
 +
 
 +
Front end: prototype/mvp from wireframe
 +
 
 +
Component testing
 +
 
 +
=== 11.11.2016 ===
 +
Integration between back and front end
 +
 
 +
Integration testing
 +
 
 +
=== 18.11.2016 ===
 +
Release candidate
 +
 
 +
System and user testing
 +
 
 +
Deployment
 +
 
 +
=== 27.11.2016 (new date 01.12.2016)===
 
Final delivery
 
Final delivery
  
=== 07.12.2016 - 09.12.2016 ===
+
=== 08.12.2016 ===
 
Group presentation
 
Group presentation
  
 
== How you are dividing tasks within the group ==
 
== How you are dividing tasks within the group ==
 
=== 17.10.2016 - 21.10.2016 ===
 
 
We started with a group meeting, to discuss suggestions for user experience, system architecture and functionality. At the end of the meeting we divided tasks between group members to complete within the next group meeting.
 
We started with a group meeting, to discuss suggestions for user experience, system architecture and functionality. At the end of the meeting we divided tasks between group members to complete within the next group meeting.
  
 
We decided to have a second meeting where we presented the completed tasks, prepare for the costumer meeting and setup this wiki.
 
We decided to have a second meeting where we presented the completed tasks, prepare for the costumer meeting and setup this wiki.
 +
 +
We are using kanban development methodology. The iterative development process is as follows:
 +
# Pending activities/tasks
 +
# Analysis
 +
# Development
 +
# Testing
 +
# Deployment
 +
 +
See "technical discussions" under screenshots/ screen flows below for overview of weekly technical group meetings.
  
 
== Screenshots and screen flows ==
 
== Screenshots and screen flows ==
<gallery>
+
 
Architecture_TGI.png
+
{| style="margin: 0 auto;"
Wireframe.JPG
+
| [[File:Wireframe.JPG|thumb|upright|alt=Wireframe|Wireframe 21.10.2016]]
</gallery>
+
| [[File:TheGroupInc_Final_release.png|thumb|upright|alt=Final release|Final release 01.12.2016]]
 +
|}
 +
{| style="margin: 0 auto;"
 +
| [[File:Architecture_TGI.png|thumb|upright|alt=Architecture|Architecture 23.10.2016]]
 +
|}
 +
{| style="margin: 0 auto;"
 +
| [[File:thegroupinc_11_november.jpg|thumb|upright|alt=technical discussion |technical discussion 11.11.2016]]
 +
| [[File:thegroupinc_15_november.jpg|thumb|upright|alt=technical discussion |technical discussion 15.11.2016]]
 +
| [[File:thegroupinc_18_november.jpg|thumb|upright|alt=technical discussion |technical discussion 18.11.2016]]
 +
| [[File:thegroupinc_22_november.jpg|thumb|upright|alt=technical discussion |technical discussion 22.11.2016]]
 +
| [[File:thegroupinc_25_november.jpg|thumb|upright|alt=technical discussion |technical discussion 25.11.2016]]
 +
|}
  
 
== Documented learning during project ==
 
== Documented learning during project ==
 +
 +
Until the 11.11.2016 we focused on the understanding of the Angular2 architecture, Typescript, and the DHIS2 API. We split up into two groups; each group came up with an architecture proposal for the project, which we merged/choose the best parts of both. One group followed the [https://angular.io/docs/ts/latest/tutorial/ TUTORIAL: TOUR OF HEROES], the other group followed different tutorials on [http://mean.expert/ Mean Expert]
 +
 +
For further documented learning/ technologies involved during project, see section "System overview"
  
 
== Suggested improvements to APIs etc ==
 
== Suggested improvements to APIs etc ==
 +
 +
Very good API endpoints and documentation. No further improvements suggested.
  
 
== Link to repository ==
 
== Link to repository ==
 +
[https://github.com/bmzernichow/TheGroupInc Link to GitHub repository]
  
 
== Download link to sample web app ==
 
== Download link to sample web app ==
 +
 +
'''The app is deployed at DHIS2 test server:''' [https://play.dhis2.org/test/api/apps/groupinc/index.html The Group Inc - Moving Average Statistics]
 +
 +
Tip: search for organisation unit "'''Bo'''" and indicator "'''Complicated deliveries total'''" (contains data on test server)

Latest revision as of 00:09, 2 December 2016

Group members

  • Vetle Falch (vetleaf@ifi.uio.no)
  • Bjørn Marius Von Zernichow (bjornmv@ifi.uio.no)
  • Jørgen Bjerke (jorgebje@ifi.uio.no)

Summary of requirements

Purpose

Web app for DHIS 2 statistical computation that allows users to query a dataset, returning requested moving average for current and previous year.

System overview

  • Front-end: Angular 2 Single Page Application
Architecture
Architecture

Technologies involved:

  • Angular 2
  • ECMAScript 6
  • Typescript
  • HTML
  • CSS
  • Angular cli - MIT license
  • NodeJS
  • Babel
  • Webpack
  • Protractor
  • Github
  • Git
  • DHIS2 web API

3rd party native Angular 2 components:

  • Ng-lightning link - MIT license
  • PrimeNG link - MIT license

User Interfaces

Wireframe
Wireframe
Final release
Final release

User characteristics

  • DHIS 2 related users that want to query a moving average (monthly) for occurrence of different indicators
  • The typical user is already familiar with general statistical functionality

Functional requirements

Statistical functionality:

  • Moving average (monthly)
  • Comparison of two datasets (I.e. same time interval for different years)

Performance requirements

  • Requirements for statistical computation: test front-end computation on monthly datasets for two different years.

Milestone

21.10.2016

Wireframe Choose architecture(Angular vs. React) Take a look at DHIS2 web API Have a customer meeting

28.10.2016

Understanding the project Document features and architecture on Wiki Make a Git repository

04.11.2016

Back end: first iteration working API and statistical computation

Front end: prototype/mvp from wireframe

Component testing

11.11.2016

Integration between back and front end

Integration testing

18.11.2016

Release candidate

System and user testing

Deployment

27.11.2016 (new date 01.12.2016)

Final delivery

08.12.2016

Group presentation

How you are dividing tasks within the group

We started with a group meeting, to discuss suggestions for user experience, system architecture and functionality. At the end of the meeting we divided tasks between group members to complete within the next group meeting.

We decided to have a second meeting where we presented the completed tasks, prepare for the costumer meeting and setup this wiki.

We are using kanban development methodology. The iterative development process is as follows:

  1. Pending activities/tasks
  2. Analysis
  3. Development
  4. Testing
  5. Deployment

See "technical discussions" under screenshots/ screen flows below for overview of weekly technical group meetings.

Screenshots and screen flows

Wireframe
Wireframe 21.10.2016
Final release
Final release 01.12.2016
Architecture
Architecture 23.10.2016
technical discussion
technical discussion 11.11.2016
technical discussion
technical discussion 15.11.2016
technical discussion
technical discussion 18.11.2016
technical discussion
technical discussion 22.11.2016
technical discussion
technical discussion 25.11.2016

Documented learning during project

Until the 11.11.2016 we focused on the understanding of the Angular2 architecture, Typescript, and the DHIS2 API. We split up into two groups; each group came up with an architecture proposal for the project, which we merged/choose the best parts of both. One group followed the TUTORIAL: TOUR OF HEROES, the other group followed different tutorials on Mean Expert

For further documented learning/ technologies involved during project, see section "System overview"

Suggested improvements to APIs etc

Very good API endpoints and documentation. No further improvements suggested.

Link to repository

Link to GitHub repository

Download link to sample web app

The app is deployed at DHIS2 test server: The Group Inc - Moving Average Statistics

Tip: search for organisation unit "Bo" and indicator "Complicated deliveries total" (contains data on test server)