Develop CoRE Stack¶
This section is the main developer chapter for CoRE Stack.
If you are trying to get the backend running, start with Installer.
If you are already set up and want the computation path, continue into Pipeline Development.
This section is for questions like:
- where does a request move through the backend?
- how are the major subsystems organized?
- how do integrations with GEE, GeoServer, and AWS fit together?
- how do new pipelines move from local experimentation into stable platform surfaces?
- what standards should platform contributors follow?
Main Development Routes¶
- Start with Installer, Setup Troubleshooting, and Backend Code Map if you are getting the platform running.
- Continue into Pipeline Development once you want to understand or extend the computation workflows.
- Use Integrations when a working computation needs Earth Engine, GeoServer, or AWS-facing setup.
- Use Coding Standards and Guidelines when you are preparing durable code or docs changes.
Request Routing¶
graph TB
A[Swagger or Client] --> B[nrm_app/urls.py]
B --> C[geoadmin]
B --> D[public_api]
B --> E[computing]
E --> F[Celery-backed pipeline modules]
D --> G[GeoServer and DB-backed metadata]
F --> H[GEE utilities]
F --> I[GeoServer publishing helpers]
C --> J[State, district, block models]
D --> J
The top-level Django router is nrm_app/urls.py. It wires:
- auth-free geographic discovery routes from geoadmin/urls.py
- API-key public-data routes from public_api/urls.py
- compute submission routes from computing/urls.py
- Swagger and ReDoc from nrm_app/urls.py
Runtime Layers¶
sequenceDiagram
participant Client
participant Django as Django API handler
participant Celery as Celery task queue
participant Pipeline as pipeline module
participant GEE as GEE or GCS helpers
participant GeoServer as GeoServer publishing
Client->>Django: request
Django->>Celery: apply_async(...)
Celery->>Pipeline: run compute pipeline
Pipeline->>GEE: read or export assets when needed
Pipeline->>GeoServer: publish output layer
Django-->>Client: immediate success response
What Each App Does¶
geoadmin¶
- Implements auth-free location discovery in geoadmin/api.py
- Backs state, district, and block lookup flows used before heavier computation
public_api¶
- Exposes public-data lookups in public_api/api.py
- Builds layer download metadata in public_api/views.py
- Fetches MWS and village geometries from GeoServer in public_api/views.py
computing¶
- Declares the backend compute later in computing/urls.py
- Queues SWB, LULC, hydrology, terrain, and other tasks from computing/api.py
- Publishes vector and raster outputs toward GeoServer via computing/utils.py
utilities¶
- Handles auth mode parsing and headers in utilities/auth_check_decorator.py
- Handles Earth Engine initialization, task polling, and asset path helpers in utilities/gee_utils.py
Note
In operational terms, this means most compute deployments need a configured Django GEEAccount before pipeline execution will work reliably. The setup flow is documented in Google Earth Engine.