Custom Web Tools and Databases
Custom web tools, applications, and databases refer to the process of combining data, tools, and systems to support watershed management and river restoration programs. Generally, web tools and software products become valuable assets to support data management within complex systems. Various frameworks, services, and components can be linked together to create decision support tools with real-time data or provide powerful visuals for science communication.
The most exciting aspect of this service area (or discipline) is the rapid evolution of the underlying tools, libraries, and software packages. Today, it's possible to develop applications in a matter of hours (or days) that would have taken months (or longer) to produce just a few years ago. The rise of modern packages, frameworks, cloud services, and AI-assisted coding has made it possible to do a lot with a limited investment. Examples include the development of custom web applications for a short-term workshop series or applications to support a one or two-season field program.
Custom applications and tools are increasingly prevalent in almost all environmental management and monitoring programs. This field is naturally well suited to foster the demand and development of custom applications since most of the day-to-day desktop work generally involves integrating information from time series, statistics, model outputs, and geospatial data. We are moving away from a time when the cost-prohibitive development of custom tools and applications limited their use to large mega-projects. Increasingly, we are seeing the development of low-cost, high-impact web tools and applications to support smaller entities like First Nations fisheries societies and local NGO groups. Contributing to these programs is personally rewarding and has a high impact on local communities and watershed management initiatives.
My programming and application development journey has taught me that it's all about getting the underlying architecture right to launch a proof-of-concept draft application (or tool) quickly. I like getting to that stage and working with individuals to decide where to go from there. When I work with individuals in this space, every element of a proposed application will rarely be accompanied by predefined specs and documentation. Instead, most working groups want to get something up and running, try it out, test their vision, and develop it further in stages.
Here are some of the tools, frameworks, systems and languages that I work with:
- Data Manipulation and Modelling: R, R-Shiny, R-Plumber APIs, Python, Excel/VBA macros, JavaScript.
- General Web Sites and Web Tools: JavaScript, HTML, CSS, Python, PHP, JQuery, GitHub Pages, Quarto.
- Libraries and Frameworks: SPA, Angular, Vue.js, Drupal, WordPress.
- Database: PostgreSQL & PostGIS, MySQL, Neo4J.
- Cloud Servers: Ubuntu/Linux servers via Digital Ocean (Droplets, Databases, Apps etc.), AWS (SSS & Lambda functions), Google Cloud Platform.
- Geospatial: Leaflet, Mapbox, pg_tileserv, Geoserver, QGIS Plugins, Google Earth Engine.
- Miscellaneous: Alexa Developer Kit, ESRI Story Maps, CRON jobs, APIs, CI/CD, Containerization with Docker.