Project Structure
Angular Application
All NSHMP applications reside in the
nshmp-apps
Angular project.
nshmp-apps Structure
The NSHMP applications are organized such that the directories and applications match
the url path:
graph LR
root[".
/projects/nshmp-apps/src/app"] --> /dashboard["/dashboard
USGS Earthquake Hazard Toolbox Dashboard"]
root[".
/projects/nshmp-apps/src/app"] --> /hazard["/hazard
Hazard Applications"]
root[".
/projects/nshmp-apps/src/app"] --> /gmm["/gmm
GMM Applications"]
root[".
/projects/nshmp-apps/src/app"] --> /source["/source
Source Model Applications"]
root[".
/projects/nshmp-apps/src/app"] --> /dev["/dev
Development Applications"]
root[".
/projects/nshmp-apps/src/app"] --> /services["/services
Services Application"]
%% Hazard applications
/hazard --> /disagg["/disagg
Disaggregations"]
/hazard --> /dynamic["/dynamic
Dynamic Hazard Curves"]
/hazard --> /static["/static
Static Hazard Curves"]
%% GMM applications
/gmm --> /distance["/distance
Ground Motion vs. Distance"]
/gmm --> /magnitude["/magnitude
Ground Motion vs. Magnitude"]
/gmm --> /spectra["/spectra
Response Spectra"]
%% Source model applications
/source --> /data["/data
Model Mapping"]
/source --> /mfd["/mfd
Magnitude Frequency Distribution"]
%% Development applications
/dev --> /dev-dashboard["/dashboard
Development Dashboard"]
/dev --> /aws["/aws
AWS Applications"]
/dev --> /math["/math
Math Applications"]
%% AWS development applications
/aws --> /check-haz-jobs["/check-haz-jobs
Check Hazard Jobs
Running in AWS"]
/aws --> /haz-job-history["/haz-job-history
History of hazard jobs"]
/aws --> /submit-haz-jobs["/submit-haz-jobs
Run Hazard Code in AWS"]
/aws --> /terminate-haz-jobs["/terminate-haz-jobs
Terminate hazard job"]
%% Math development applications
/math --> /exceedance-explorer["/exceedance-explorer
Explorer Exceedance Calculations"]
A Single Application
Each application should follow the same heirarchy:
graph LR
some-application --> components["components
Define Angular components"]
some-application --> models["models
TypeScript interfaces"]
some-application --> state["state
State files"]
some-application --> utils["utils
Application utilities"]
some-application --> html["app.component.html
Application entry component HTML"]
some-application --> scss["app.component.scss
Application entry styling"]
some-application --> ts["app.component.ts
Application entry component TypeScript"]
some-application --> module["some-application.module.ts
Application module and route"]