Difference between revisions of "ADS"

From mn/ifi/inf5750
Jump to: navigation, search
(Division of labour)
(Architecture)
Line 20: Line 20:
  
 
== Architecture ==
 
== Architecture ==
* React - main library providing all of the necessary basic functionality for developing UI application.  
+
 
 +
=== Core components ===
 +
* react - main library providing all of the necessary basic functionality for developing UI application.  
 
* react-router-dom - allows to make dynamic routing
 
* react-router-dom - allows to make dynamic routing
 
* fuse.js - used to provide fuzzy search functionality
 
* fuse.js - used to provide fuzzy search functionality
 
* leaflet - used to render maps
 
* leaflet - used to render maps
* react-bootstrap - react components for bootstrap, provides easy way to write UI using bootstrap without the need to write out pure html.  
+
* react-bootstrap - react components for bootstrap, provides easy way to write UI using bootstrap without the need to write out pure html  
 +
 
 +
=== Architectural consideration ===
 +
The original considerations were to keep the application as simple as possible and for these reasons we opted not to use reducers such as Redux. However, the size of the project is probably on the limit on where one can avoid using reducers. It is our experience from completing this assignment, that web-applications of similar size would benefit from moving all the control on data to a global reducers.
  
 
== Design/User Interface ==
 
== Design/User Interface ==

Revision as of 03:26, 6 December 2017

Group members

Alexander Korpusov (oleksako)

Dmitry Filosofov (dmitryf)

Saskia Brinkmann (saskiabr) - left the group due to personal issues

Product descriptions requirements

Assignment

Master Facility List

Assignment description

This assignment involves making a DHIS2 Web App for searching, browsing and proposing changes to organisation units and related resources such as organisation units groups.

Requirements

  • Searching through organisation units. The searching should support filtering.
  • Displaying attributes of organisation units. Users should be able to configure which attributes should be shown.
  • A possibility for users to propose changes for the organisation units and it's structure. The list with the changes should support filtering to show only proposals relevant for the particular administrator.

Architecture

Core components

  • react - main library providing all of the necessary basic functionality for developing UI application.
  • react-router-dom - allows to make dynamic routing
  • fuse.js - used to provide fuzzy search functionality
  • leaflet - used to render maps
  • react-bootstrap - react components for bootstrap, provides easy way to write UI using bootstrap without the need to write out pure html

Architectural consideration

The original considerations were to keep the application as simple as possible and for these reasons we opted not to use reducers such as Redux. However, the size of the project is probably on the limit on where one can avoid using reducers. It is our experience from completing this assignment, that web-applications of similar size would benefit from moving all the control on data to a global reducers.

Design/User Interface

User Interface.png
User interface of the application

The user interface of the application has three main parts - search area, information area and map area. In the information area a user can choose an organization unit either from a tree list, or by using search (which support fuzzy searching to avoid simple misspellings). Information area consists is where all the information about an organization unit is shown. A user has an opportunity to keep three different organization units open simultaneously in the appropriate tabs. The map area is situated on the right side of the application. If an organization unit has the attributt with coordinates, it will be shown as a point or a region in the map area.

Administrators have an opportunity to to add specific Data Elements to be shown in the information area. Access to the set-up page is possible through the Manage panel, where administrator should select the data elements to show. The period in the current version is set to the current year, although the possibly to mark the period is reserved in the data structure of the app.

Timeline

Ween number Tasks
Week 43
  • Set-up wiki page
  • Choose main development frameworks and technologies
  • Learn React and DHIS2 api
Week 44
  • Make a basic web-app able to fetch from DHIS2 the organization units list. Display the list as well as the detailed info about a chosen orgunit
  • Decide on details of User Interface (UI) and start implementing it
Week 45
  • Implement UI
  • Search and filtering features
  • Add the option for users to configure which attributes of orgunits should be shown
  • Add Google maps
Week 46
  • Add the option to propose changes for organization units
  • Improve searching options
Week 47
  • Fix all the bugs
  • Make improvementswhere needed

Licensing

We will be using open source products to develop our app, and our product itself will be open sources (MIT licensed).

React is MIT licensed.[1]

Material UI is MIT licensed.[2]

Division of labour

All the team members will contribute equally to the design and development of the application. Alexander has put an extra effort into the parts related to the search tree, while Dmitry into the parts related to maps and administrative options.

Link to project repository

https://github.uio.no/inf5750-group-project/ADS