https://github.com/crim-ca/wildfirevisualizationproject
The Wildfire Visualization Platform is an innovative tool designed to provide historical data on wildfires
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
Repository
The Wildfire Visualization Platform is an innovative tool designed to provide historical data on wildfires
Basic Info
Statistics
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 18
- Releases: 13
Metadata Files
README.md
Wildfire Visualization Platform
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
- API Endpoints
- Overall Architecture and Class Diagrams
- UI Mockups
- Infrastructure and Tools
- Name Conventions
- Personas
Development Process
- Testing Plan and Continuous Integration
- Bug Reporting Template
- Documented Substantial Engineering and Design
- End Of Iteration Notes
- Meeting Minutes
- Postmortems
Project Planning
Compliance and Security
- Security Strategy
- Legal and Ethical Issues
- Economic Considerations
- Diversity Statement
- IP Opt-Out Form
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:
- Clone the Repository
bash
git clone https://github.com/XavierGuertin/WildfireVisualizationProject.git
- Navigate to the Project Root
bash
cd WildfireVisualizationProject
- Run the Application using Docker Compose
bash
docker-compose up --pull always
- 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:
- Pull Required Services
bash
docker compose pull geoserver db tileserver tileserver-init
- Start Services
bash
docker compose up geoserver db tileserver tileserver-init
- 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
- Run the Backend
bash
nx dev backend
- Install Dependencies
bash
cd wildfire-visualization-platform
npm i
- 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
- Repositories: 79
- Profile: https://github.com/crim-ca
GitHub Events
Total
- Issue comment event: 1
Last Year
- Issue comment event: 1
Dependencies
- actions/checkout v4 composite
- actions/setup-node v4 composite
- nrwl/nx-set-shas v4 composite
- org.springframework.boot:spring-boot-starter
- org.springframework.boot:spring-boot-starter-test test
- 1440 dependencies
- @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