https://github.com/crim-ca/wildfirevisualizationproject

The Wildfire Visualization Platform is an innovative tool designed to provide historical data on wildfires

https://github.com/crim-ca/wildfirevisualizationproject

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

The Wildfire Visualization Platform is an innovative tool designed to provide historical data on wildfires

Basic Info
  • Host: GitHub
  • Owner: crim-ca
  • License: mit
  • Language: TypeScript
  • Default Branch: dev
  • Homepage:
  • Size: 20.5 MB
Statistics
  • Stars: 9
  • Watchers: 1
  • Forks: 0
  • Open Issues: 18
  • Releases: 13
Created almost 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

Wildfire Visualization Platform

CI Docker Image CI E2E Pipeline Release

Release Demos

Click to expand ## [Release 1](https://drive.google.com/file/d/1JsXKsDaoS1fAFSvkUBiOB_QMhBAMq9s_/view?usp=sharing) ## [Release 2](https://drive.google.com/file/d/1EwC_pmEvNcNeKkw6HzDpERxLRwDPYCPv/view?usp=sharing) ## [Release 3](https://drive.google.com/file/d/1Y2OU3Ql9QxUUYYapv8CttsNoKHVjcoPO/view?usp=sharing)

Project Summary

The Wildfire Visualization Platform is an innovative tool designed to provide historical data on wildfires. The platform integrates data from multiple sources such as weather APIs, geographic data, and wildfire propagation models to offer data scientists and climate scientists a comprehensive view of wildfire events. Using open-source data visualization tools, it aims to enhance decision-making and provide predictive insights for wildfire management.

Project Overview

Project Documentation

Development Process

Project Planning

Compliance and Security

User Testing

Most Important Files and Tests

Click to expand --- | File path with clickable GitHub link | Purpose | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | [docker-compose.yml](https://github.com/XavierGuertin/WildfireVisualizationProject/blob/dev/docker-compose.yml) | Backbone of application, contains all configurations for services and resource allocations. | | [MapContext.tsx](https://github.com/XavierGuertin/WildfireVisualizationProject/blob/dev/apps/frontend/src/app/context/MapContext.tsx) | Glue for the frontend, contains all the shared attributes across all components. | | [MapView.tsx](https://github.com/XavierGuertin/WildfireVisualizationProject/blob/dev/apps/frontend/src/app/components/MapView.tsx) | Component for rendering the map, serves as the background of our app. | | [DataService.java](https://github.com/XavierGuertin/WildfireVisualizationProject/blob/dev/apps/backend/src/main/java/com/example/backend/service/DataService.java) | Fetches information from external API, and applies application logic. | | [StacRepository.java](https://github.com/XavierGuertin/WildfireVisualizationProject/blob/dev/apps/backend/src/main/java/wildfire/visualization/backend/repository/StacRepository.java) | Communicates with the database, inserting and deleting entries. | | Test file path with clickable GitHub link | Purpose | | ---------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | [loads](apps\frontend-e2e\src\e2e\available_datasets.cy.ts) | End to end test ensuring proper loading of available datasets | | [loads](apps\frontend-e2e\src\e2e\metadata.cy.ts) | End to end test ensuring proper loading of metadata values from the selected dataset | | [runs properly when sped up](apps\frontend-e2e\src\e2e\simulation.cy.ts) | End to end test that ensure the wildfire simulation runs properly, even when sped up | | [registerGeoTIFF_shouldReturnTrue_onSuccess](apps\backend\src\test\java\wildfire\visualization\backend\service\GeoTIFFServiceTests.java) | Unit test ensuring proper functionality when registering a GeoTIFF (file responsible for loading weather assets) | | [processGeoTIFF_shouldReturnTrue_onSuccess](apps\backend\src\test\java\wildfire\visualization\backend\service\GeoTIFFServiceTests.java) | Unit test ensuring proper functionality when processing a GeoTIFF (downloading and storing in GeoServer and saving layer URL in DB) |

Team Members

Click to expand | Name | Student ID | GitHub ID | Email Address | | ------------------- | ---------- | ------------------------------------------------- | --------------------------- | | **Wong, Samuel** | 40209013 | [im-samwong](https://github.com/im-samwong) | samuel.wong60@gmail.com | | Dubois, Gabriel | 40209252 | [Adissuu](https://github.com/Adissuu) | gabrieldubois.eng@gmail.com | | Hilout, Yasmine | 40214158 | [yasminehilout](https://github.com/yasminehilout) | yasminehilout@gmail.com | | Fetanat, Ali | 40158208 | [Fetyali7](https://github.com/Fetyali7) | fetyali7@gmail.com | | Frattolillo, Philip | 40192245 | [PFratt](https://github.com/PFratt) | phil.fratt@gmail.com | | Villemure, Louis | 40210315 | [lo-vil](https://github.com/lo-vil) | louis.villemure@gmail.com | | Daigle, Liam | 40207583 | [LiamDaigle](https://github.com/LiamDaigle) | liam.daigle@gmail.com | | Keating, Kade | 40166656 | [Kadestery](https://github.com/Kadestery) | kadekeating@gmail.com | | Cheng, Justin | 40210279 | [justncheng](https://github.com/justncheng) | chengjustin2002@gmail.com | | Guertin, Xavier | 40213525 | [XavierGuertin](https://github.com/XavierGuertin) | xavierguertin@gmail.com | | Oliel, Eden | 40211989 | [eo2000](https://github.com/eo2000) | olieleden0@gmail.com |

Equity and Diversity Statement

The Wildfire Visualization Platform Team is committed to fostering equity, diversity, and inclusion in all aspects of its development and deployment. We recognize that wildfires impact diverse communities differently and strive to ensure our tools are accessible, informative, and responsive to the needs of all users—especially those from historically underserved or vulnerable populations. By prioritizing inclusive data representation and engaging with a broad range of stakeholders, we aim to support equitable decision-making and promote environmental justice through transparent and collaborative technology.


Running the Application

To run the application, follow these steps:

  1. Clone the Repository

bash git clone https://github.com/XavierGuertin/WildfireVisualizationProject.git

  1. Navigate to the Project Root

bash cd WildfireVisualizationProject

  1. Run the Application using Docker Compose

bash docker-compose up --pull always

  1. Access the Application Once the project is running, open your browser and navigate to: http://localhost:3000

Developer Guide

For setting up the development environment, follow these additional steps:

  1. Pull Required Services

bash docker compose pull geoserver db tileserver tileserver-init

  1. Start Services

bash docker compose up geoserver db tileserver tileserver-init

  1. Add Environment Variables

``` # Navigate to the frontend directory cd frontend

# Create environment files if they don't exist touch .env.production .env.development ```

Add the following variables to both .env.production and .env.development

ini NEXT_PUBLIC_BACKEND_URL=http://localhost:8080 NEXT_PUBLIC_GEOSERVER_URL=http://localhost:8090/geoserver/Default/wms NEXT_PUBLIC_TILESERVER_URL=http://localhost:8081/data/OAM-World-1-8-min-J80

  1. Run the Backend

bash nx dev backend

  1. Install Dependencies

bash cd wildfire-visualization-platform npm i

  1. Run the Frontend bash nx dev frontend

Running Tests

To ensure code quality, run tests for both frontend and backend as follows:

Frontend Testing

  • Location of Tests: ./apps/frontend/__tests__
  • Components to Test: ./apps/frontend/src/components
  • Example Test File: apps/frontend/__tests__/MapMetaData.spec.tsx

Run frontend tests:

bash nx test frontend

Frontend End-to-End (E2E) Testing

  • Location of Tests: apps/frontend-e2e/src/e2e
  • Example Test File: apps/frontend-e2e/src/e2e/app.cy.ts
  • Developers need to create a cypress.env.json file with the following: "COLLECTIONS_URL": "*URL_TO_COLLECTIONS_ENDPOINT*"

Run frontend E2E tests:

bash nx e2e frontend-e2e

Backend Testing

  • Location of Tests: ./apps/backend/src/tests
  • Components to Test: ./apps/backend/src/main
  • Example Test File: src/test/java/com/example/backend/backendTests/BackendSampleJUnitTest.java

Run backend tests:

bash nx test backend


Tech Stack

The project utilizes the following technologies:

Frontend:

  • Framework: NextJS
  • Mapping Library: OpenLayers
  • CSS Framework: Tailwind CSS
  • Testing: Jest for unit testing, Cypress for end-to-end testing

Backend:

  • Framework: Spring Boot (Java)
  • Database: PostgreSQL
  • API Development: RESTful APIs with Spring Boot
  • Testing: JUnit for unit testing, Cypress for e2e testing

DevOps & Infrastructure:

  • CI/CD: Github Actions for automated builds and deployments
  • Containerization: Docker for managing containers and deployments
  • Code Quality: SonarQube for static code analysis
  • Version Control: GitHub for repository management

Owner

  • Name: crim-ca
  • Login: crim-ca
  • Kind: organization

GitHub Events

Total
  • Issue comment event: 1
Last Year
  • Issue comment event: 1

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v4 composite
  • actions/setup-node v4 composite
  • nrwl/nx-set-shas v4 composite
apps/backend/pom.xml maven
  • org.springframework.boot:spring-boot-starter
  • org.springframework.boot:spring-boot-starter-test test
package-lock.json npm
  • 1440 dependencies
package.json npm
  • @babel/preset-env ^7.25.7 development
  • @cypress/code-coverage ^3.13.4 development
  • @eslint/compat ^1.1.1 development
  • @eslint/js ^9.8.0 development
  • @nrwl/workspace ^19.8.4 development
  • @nx/cypress 20.0.0 development
  • @nx/eslint 20.0.0 development
  • @nx/eslint-plugin 20.0.0 development
  • @nx/jest 20.0.0 development
  • @nx/js 20.0.0 development
  • @nx/next 20.0.0 development
  • @nx/workspace 20.0.0 development
  • @swc-node/register ~1.9.1 development
  • @swc/core ~1.5.7 development
  • @swc/helpers ~0.5.11 development
  • @types/jest ^29.5.12 development
  • @types/node 18.16.9 development
  • @types/react 18.3.1 development
  • @types/react-dom 18.3.0 development
  • autoprefixer 10.4.13 development
  • babel-core ^6.26.3 development
  • babel-jest ^29.7.0 development
  • babel-loader ^9.2.1 development
  • babel-plugin-istanbul ^7.0.0 development
  • cypress ^13.15.0 development
  • eslint ^9.8.0 development
  • eslint-config-next 14.2.3 development
  • eslint-config-prettier ^9.0.0 development
  • eslint-plugin-cypress ^3.5.0 development
  • eslint-plugin-import 2.31.0 development
  • eslint-plugin-jsx-a11y 6.7.1 development
  • eslint-plugin-react 7.35.0 development
  • eslint-plugin-react-hooks 4.6.0 development
  • istanbul-lib-coverage ^3.2.2 development
  • istanbul-lib-instrument ^6.0.3 development
  • jest ^29.7.0 development
  • jest-environment-jsdom ^29.7.0 development
  • nx 20.0.0 development
  • nyc ^17.1.0 development
  • postcss 8.4.38 development
  • prettier ^2.6.2 development
  • tailwindcss 3.4.3 development
  • ts-jest ^29.1.0 development
  • ts-node 10.9.1 development
  • tslib ^2.3.0 development
  • typescript ~5.5.2 development
  • typescript-eslint ^8.0.0 development
  • next 14.2.3
  • react 18.3.1
  • react-dom 18.3.1