IDLE
Contents
Group Members
- Vebjørn Kvisli (vebjorkv@ifi.uio.no)
- Halvard Hella Kværna (halvarhk@ifi.uio.no)
- Andreas Hauge Standal (andrhst@ifi.uio.no)
Assignment
We have chosen the assignment Master Facility List.
Product Description
The final product will be a React-based DHIS2 app where the main feature will be browsing facilities and get information about them. We have focused on making a user friendly interface that is easy to navigate. The user can choose to see the facilities as a list or as markers on a map. It is also possible to search and set filters in order to see the facilities relevant for you. The user can select one specific facility to get more details about it, and can also send in suggestions if there is something he/she wants to see changed. Finally there is also an admin page where users with administrator access can see the user suggestions and change some settings.
App features
App/facilities
- A List of all facilities with the option to filter and search to get specific results.
- A form with several input fields where the user can filter and search for specific facilities.
- A map where the user can see the location of facilities searched for. The map will have the ability to show one, all or a subset of facilities.
App/map
- An information box with detailed information about one specific facility, including data sets and indicators.
- A map showing the location of that specific facility.
- A link that opens up a dialog window where the user can write suggestions for changes to the facility. The suggestions are stored in /api/dataStore
App/admin
- The admin page checks whether the user has administrator access or not.
- An information box where the user can see information about the currently logged in user.
- A list of user suggestions, each containing relevant facility, date, text and user.
- Admin users has the option to mark/unmark the suggestions as resolved, and delete them.
- Admin users can change some settings to determine which data sets and indicators that should be displayed for any user.
Architecture
The application is primarily based on the React framework. The different visual elements in the app is created as React Components, with the help of HTML, CSS and JSX.
Within React we also use several additional packages defined as dependencies in the package-file of our application, both for visual and functional elements here are some of the packages we have used (among others):
- bootstrap
- google-maps
- react-bootstrap
- react-bootstrap-dialog
- react-dom
- react-icons
- react-router-dom
- react-select
- react-toggle
- reactstrap
- webpack
- es6-promise
- babel
Licensing
React has an MIT license. The MIT license is a permissive free software license originating at the Massachusetts Institute of Technology.[1] This means that the software is free to use for anyone and for any purpose, and the source code is open. In other words the license itself has no implications on our project. However, the React source code can and will be changed and updated in the future. This may affect our software as React functionality will change.
The software packages we use in our project have a variety of different licenses, but they are all permissive. A permissive software license is a free software licence with minimal requirements about how the software can be redistributed.[2] The licenses of our software packages are MIT, BSD, Apache, ISC and WTFPL.
We use the Google Maps API for displaying facilities on the map. Google Maps has several utility software projects that is open source, but the API itself is not open source. It is free-to-use for non-commercial use and pay-to-use for commercial use. However, the free version has some limitations and restrictions. The free version is free up to 25,000 map loads per day and costs $0.50 USD per 1,000 additional map loads, up to 100,000 daily, if billing is enabled.[3]
Division of Labour
Coming
Timeline for Development
Week 42
- Created our first React app.
- Created an organization and repository on GitHub.
- Fetched our first data from the api using fetch().
- Created a simple layout for the Master Facility List (MFL) with a navigation bar, search option boxes and a result page.
- Added some styling with css and React Bootstrap.
Week 43
- Improved navigation bar style
- Improved overall layout style
- Added support for string matching of user-input for organizatons to get relevant organizations.
- Added toggle button for advanced search user inputs.
- Added routing of navigation bar buttons.
Week 44
- Linked search boxes to their respective functions to fetch and print the correct data.
Week 45
- Integrated google maps to display the organizations using their coordinates.
- Evaluated the best methods for filtering data.
- Figured out the best way to do paging of facilities when there are many results.
- Added the functionality for creating change suggestions for a facility.
- Added an admin-page where an administrator can see the change suggestions created by other users.
Week 46
- Continued development of dynamically updating search fields.
- Continued adding functionality and link everything together.
- Changed the application from a multi-page app to a single-page app (same functionality)
Plans for week 47
- Clean up and release
Plans for week 48
- Plan the final presentation
Plans for week 49
- Plan the final presentation
Git Project Repository
https://github.uio.no/MFLD2/MFLD2
References
- ↑ Wikipedia 05.12.2017 https://en.wikipedia.org/wiki/MIT_License
- ↑ Wikipedia 05.12.2017 https://en.wikipedia.org/wiki/Permissive_software_licence
- ↑ Google Maps API - Pricing and Plans 05.12.2017 https://developers.google.com/maps/pricing-and-plans/#details