From 5db54401cb27dd55fa05e46ac388eca79b72917c Mon Sep 17 00:00:00 2001 From: Brian Pilati Date: Thu, 21 Aug 2025 12:15:05 -0500 Subject: [PATCH] chore(readme): Updates to the readme to include NGXS and a diagram --- README.md | 14 +++---- docs/assets/osf-ngxs-diagram.png | Bin 0 -> 102402 bytes docs/ngxs.md | 65 +++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 8 deletions(-) create mode 100644 docs/assets/osf-ngxs-diagram.png create mode 100644 docs/ngxs.md diff --git a/README.md b/README.md index cc5f4d117..0712bdaae 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,17 @@ take up to 60 seconds once the docker build finishes. ## Index +### First steps + +- Install git commit template: [Commit Template](docs/commit.template.md). +- Volta: [Volta](#volta) + ### Recommended - Compodoc: [Compodoc Conventions](docs/compodoc.md). - Docker Commands: [Docker Commands](docs/docker.md). - Git Conventions: [Git Conventions](docs/git-convention.md). -- Install git commit template: [Commit Template](docs/commit.template.md). -- Volta: [Volta](#volta) -- Redux DevTools: [Redux DevTools](#redux-devtools) +- NGXS: [NGXS Conventions](docs/ngxs.md). ### Optional @@ -53,8 +56,3 @@ npm run test:check-coverage-thresholds OSF uses volta to manage node and npm versions inside of the repository Install Volta from [volta](https://volta.sh/) and it will automatically pin Node/npm per the repo toolchain. - -## Redux DevTools - -OSF Angular uses [NGXS](https://github.com/ngxs) for state management. It is highly recommended to install -the `Redux DevTools` extension from the Chrome web store. diff --git a/docs/assets/osf-ngxs-diagram.png b/docs/assets/osf-ngxs-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..e19e06910f8dd76e358cc6b95f6fb813c46ac7da GIT binary patch literal 102402 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 BnjQcE literal 0 HcmV?d00001 diff --git a/docs/ngxs.md b/docs/ngxs.md new file mode 100644 index 000000000..114db45fa --- /dev/null +++ b/docs/ngxs.md @@ -0,0 +1,65 @@ +# NGXS State Management Overview + +The OSF Angular project uses [NGXS](https://www.ngxs.io/) as the state management library for Angular applications. NGXS provides a simple, powerful, and TypeScript-friendly framework for managing state across components and services. + +--- + +## Purpose + +The goal of using NGXS is to centralize and streamline the handling of application state, reduce boilerplate, and maintain a predictable flow of data and events throughout the OSF Angular app. + +--- + +## Core Concepts + +- **State**: Defines a slice of the application state and how it is modified in response to actions. +- **Actions**: Dispatched to signal state changes or trigger effects (e.g., API calls). +- **Selectors**: Functions that extract and transform data from the store. +- **Store**: Centralized container that holds the application state. +- **Effects** (via `@ngxs-labs/effects` or `@ngxs/store`): Side-effect handling such as HTTP requests, logging, etc. + +### Diagram + +[![OSF NGRX Diagram](./assets/osf-ngxs-diagram.png)](./assets/osf-ngxs-diagram.png) + +--- + +## Directory Structure + +Typical NGXS-related files are organized as follows: + +``` +src/app/shared/stores/ + └── addons/ + ├── addons.actions.ts # All action definitions + ├── addons.models.ts # Interfaces & data models + ├── addons.state.ts # State implementation + ├── addons.selectors.ts # Reusable selectors +``` + +``` +src/app/shared/services/ + └── addons/ + ├── addons.service.ts # External API calls +``` + +--- + +## Tooling and Extensions + +- [Redux DevTools](https://github.com/zalmoxisus/redux-devtools-extension) is supported. Enable it in development via `NgxsReduxDevtoolsPluginModule`. +- [NGXS Logger Plugin](https://www.ngxs.io/plugins/logger) can be used for debugging dispatched actions and state changes. +- [NGXS Storage Plugin](https://www.ngxs.io/plugins/storage) allows selective persistence of state across reloads. + +--- + +## Testing + +- Mock `Store` using `jest.fn()` or test-specific modules for unit testing components and services. + +--- + +## Documentation + +Refer to the official NGXS documentation for full API details and advanced usage: +[https://www.ngxs.io/docs](https://www.ngxs.io/docs)