-
Notifications
You must be signed in to change notification settings - Fork 0
Infrastructure and tools
For each library, framework, database, tool, etc
This tech stack is a proposed solution for building the wildfire visualization platform. It is designed to create a scalable, maintainable, and well-tested system using modern frameworks and DevOps practices. The tech stack outlined below has been agreed upon by the development team and is under review by the stakeholders.
The platform’s current focus is to visualize historical wildfire data while ensuring the infrastructure can support future simulations and communication protocols. Free alternatives such as GitHub Actions and SonarQube are also being considered to minimize costs.
- React: React will be used for developing the user interface. It's a very strong and reliable frontend UI that excels in creating dynamic UI components. This is perfect for what we need, as we will be dynamically loading a lot of data from our backend to the frontend.
- OpenLayers (TBD): OpenLayers is an open-source JavaScript library for embedding interactive maps. It will allows custom map layers and can integrate with various data sources.
- Styled-Components or Tailwind CSS: These frameworks simplify the design process, ensuring the interface is responsive and visually appealing.
- Jest (Unit Testing) and Cypress (End-to-End Testing): Jest is fully integrated into the React ecosystem, meaning that it will allow us to create unit tests without worrying about conflicts between the libraries. Cypress is an end-to-end testing tool that our team is very familiar with. It allows for easy and efficient end-to-end testing.
- Spring Boot (Java): A robust framework for building scalable backends, providing easy integration with databases and external APIs.
- PostgreSQL: This database will be used for storing wildfire, weather, and geographic data. PostgreSQL is the preferred relational database for handling complex geographic data (PostGIS extension).
- N/A
- JUnit and Spring Test: These will be used for unit and integration testing in the backend.
- GitHub Actions: Github Actions simplifies the CI/CD process by allowing easy creation of workflows using the .yml file type as well as being fully integrated into our codebase.
- SonarQube: Integrated with Github Actions to ensure code quality through static analysis.
- SonarCloud: A free cloud-based version of SonarQube for open-source projects that runs on every PR.
- Docker: The platform will be containerized using Docker, enabling consistent deployment across development, staging, and production environments. Images will be saved on the cloud platform Docker Hub.
- Logback (with SLF4J): A widely-used logging framework in the Java ecosystem, supporting various logging levels (INFO, DEBUG, ERROR).
- react-logger: For logging in React applications, to track frontend errors and warnings.
- The project will be deployed on CRIM’s internal servers. Data will be stored locally for performance optimization, and public APIs will be integrated when necessary.
- A staging server will be set up for testing new features before pushing to production.
This tech stack provides a modern and scalable approach to developing the wildfire visualization platform. The team is considering free alternatives (GitHub Actions, SonarCloud) to optimize costs while maintaining a robust development and deployment process.
This proposal is currently under review by stakeholders, and any feedback will be incorporated into the final stack selection.