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.
- API Endpoints
- Overall Architecture and Class Diagrams
- UI Mockups
- Infrastructure and Tools
- Name Conventions
- Personas
- Testing Plan and Continuous Integration
- Bug Reporting Template
- Documented Substantial Engineering and Design
- End Of Iteration Notes
- Meeting Minutes
- Postmortems
- Security Strategy
- Legal and Ethical Issues
- Economic Considerations
- Diversity Statement
- IP Opt-Out Form
Click to expand
| File path with clickable GitHub link | Purpose |
|---|---|
| docker-compose.yml | Backbone of application, contains all configurations for services and resource allocations. |
| MapContext.tsx | Glue for the frontend, contains all the shared attributes across all components. |
| MapView.tsx | Component for rendering the map, serves as the background of our app. |
| DataService.java | Fetches information from external API, and applies application logic. |
| StacRepository.java | Communicates with the database, inserting and deleting entries. |
| Test file path with clickable GitHub link | Purpose |
|---|---|
| loads | End to end test ensuring proper loading of available datasets |
| loads | End to end test ensuring proper loading of metadata values from the selected dataset |
| runs properly when sped up | End to end test that ensure the wildfire simulation runs properly, even when sped up |
| registerGeoTIFF_shouldReturnTrue_onSuccess | Unit test ensuring proper functionality when registering a GeoTIFF (file responsible for loading weather assets) |
| processGeoTIFF_shouldReturnTrue_onSuccess | Unit test ensuring proper functionality when processing a GeoTIFF (downloading and storing in GeoServer and saving layer URL in DB) |
Click to expand
| Name | Student ID | GitHub ID | Email Address |
|---|---|---|---|
| Wong, Samuel | 40209013 | im-samwong | samuel.wong60@gmail.com |
| Dubois, Gabriel | 40209252 | Adissuu | gabrieldubois.eng@gmail.com |
| Hilout, Yasmine | 40214158 | yasminehilout | yasminehilout@gmail.com |
| Fetanat, Ali | 40158208 | Fetyali7 | fetyali7@gmail.com |
| Frattolillo, Philip | 40192245 | PFratt | phil.fratt@gmail.com |
| Villemure, Louis | 40210315 | lo-vil | louis.villemure@gmail.com |
| Daigle, Liam | 40207583 | LiamDaigle | liam.daigle@gmail.com |
| Keating, Kade | 40166656 | Kadestery | kadekeating@gmail.com |
| Cheng, Justin | 40210279 | justncheng | chengjustin2002@gmail.com |
| Guertin, Xavier | 40213525 | XavierGuertin | xavierguertin@gmail.com |
| Oliel, Eden | 40211989 | eo2000 | olieleden0@gmail.com |
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.
To run the application, follow these steps:
-
Clone the Repository
git clone https://github.com/XavierGuertin/WildfireVisualizationProject.git
-
Navigate to the Project Root
cd WildfireVisualizationProject -
Run the Application using Docker Compose
docker-compose up --pull always
-
Access the Application Once the project is running, open your browser and navigate to:
http://localhost:3000
For setting up the development environment, follow these additional steps:
-
Pull Required Services
docker compose pull geoserver db tileserver tileserver-init
-
Start Services
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.developmentAdd the following variables to both .env.production and .env.development
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
nx dev backend
-
Install Dependencies
cd wildfire-visualization-platform npm i -
Run the Frontend
nx dev frontend
To ensure code quality, run tests for both frontend and backend as follows:
- 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:
nx test frontend- 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:
nx e2e frontend-e2e- 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:
nx test backendThe project utilizes the following technologies:
- Framework: NextJS
- Mapping Library: OpenLayers
- CSS Framework: Tailwind CSS
- Testing: Jest for unit testing, Cypress for end-to-end testing
- Framework: Spring Boot (Java)
- Database: PostgreSQL
- API Development: RESTful APIs with Spring Boot
- Testing: JUnit for unit testing, Cypress for e2e testing
- 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