Skip to content

Ramdhadage/BiodiversityDashboard

Repository files navigation

BiodiversityDashboard

Table of Contents
  1. About The Project
  2. Installation
  3. Roadmap

About The Project

The goal of Biodiversity Dashboard is to build a Shiny app that visualizes observed species on the map.

Installation

You can install the development version of blockr from GitHub with:

# install.packages("remotes")
remotes::install_github("Ramdhadage/BiodiversityDashboard")

Example

Run the dashboard

 BiodiversityDashboard::run_bd_app()

Roadmap

  • Users should be able to search for species using their scientificName and vernacularName. The application should display its observations on the map after the search box returns matching names. A radio button for species Name by Vernacular Name or Scientific Name has been added. When you select Scientific Name from the menu, the Vernacular Name is rendered and vice versa. Users should be able to search for species using their scientificName and vernacularName. The application should display its observations on the map after the search box returns matching names. A radio button for species Name by Vernacular Name or Scientific Name has been added. When you select Scientific Name from the menu, the Vernacular Name is presented and vice versa.

  • Default view when no species is selected yet should make sense to the user. It shouldn’t be just an empty map and plot. Please decide what you will display.Added default values of species to map.

  • Users should be able to view a visualization of a timeline when selected species were observed. Added monthly occurrence plot.

  • Deploy the app to shinyapps.io. Deployed on you can see it here

  • Decompose independent functionalities into shinyModules. Added shiny modules mod_loadData, mod_timelineVisualization and mod_viewMap

  • Add unit tests for the most important functions and cover edge cases. Added unit tests for important functions as well as server and ui components.

  • Use CSS and Sass to style your dashboard. Make the dashboard look better than standard Shiny. Used fresh which use sass.

  • Make sure your app initializes fast and the search field is fast. Use as many optimization techniques as possible.Used shiny cashing for application performance optimization. In addition, memoise was utilised to memorise R functions. To read data quickly, I used the fread function from the data.table package. Data in sysdata.rda was updated to be stored as internal data so that app will launched quickly in the package. Instead of choose select-input, server-side-selectize input was used. For visualization , Javascript libraries such as Echarts4r, and leaflet used.  The library shinyWidgets used for input widgets.

  • Use JavaScript to create non-trivial visualization. Javascript was used to display popups and labels on the map, as well as the monthly occurrence plot.

  • Make a separate module for dynamic ui for species selection based on scientific names and vernacular names.Mod loadData.R was reorganised, given the new name mod01 loadinputs.R.

  • Convert selected species modification code to function from Load Data module.and functions for dropdownBasedOnRadioBtn and updatedropdownBasedOnRadioBtn were added. I’ve numbered the modules as well as the modules in the workflow order. For dark mode, I also changed appearance plots.

  • Add images in popups, label and spinners using javascript.

  • Add more test cases to unit test few more functions.

(back to top)

`