Developer Guide

For developers maintaining or extending the Groundwater Drawdown Tool.

The tool is a Python Dash application. Stage 1 runs locally on a user’s Windows machine and connects to BC’s Oracle spatial database (BCGW). It is built so that a future Stage 2 (deployment to a server) is mostly packaging work, not a rewrite.

Pages in this guide

  1. Architecture — the layer model and module responsibilities.
  2. Development setup — getting a working environment with uv.
  3. Releasing — cutting a GitHub release that end users install from.
  4. Reference documents — the in-repository specification and data documents.

Technology

  • Python 3.13, pinned via .python-version.
  • uv for environment, dependency, and interpreter management.
  • Dash (with dash-leaflet and plotly) for the UI.
  • oracledb (thin mode) for the BCGW Oracle connection.
  • pyproj for coordinate transforms.
  • pandas for tabular data.
  • pytest for the test suite.

Table of contents