Full Stack Angular PWA app with NgRx Store, Effects (HTTP+WebSockets), Entity & NestJS
Backend is available here: https://github.com/avatsaev/angular-contacts-app-example-api
DEMO: https://angular-contacts-ngrx.surge.sh
This application uses @ngrx/store to manage application state, and @ngrx/effects to manange side effects (http+sockets), It also uses NgRx fractal state management to leverage lazy loading of reducers and effects.
@ngrx/entity is released and available on NPM, @ngrx/entity helps to reduce boilerplate and manipulate data in a fast and easy fashion, you can find @ngrx/entity implementation in Contacts Reducer.
NGRX infrastructure
Ngrx + Effects with an HTTP Service
Ngrx + Effects with Socket.IO
Lighthouse Audit:
Get started
You can run the app with docker compose:
$ docker-compose up --build
The app will be available at: http://localhost:4000
Development server
Start the backend server: https://github.com/avatsaev/angular-contacts-app-example-api
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Code scaffolding
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|module
.
Build
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the -prod
flag for a production build.
Running unit tests
Run ng test
to execute the unit tests via Karma.
Running end-to-end tests
Run ng e2e
to execute the end-to-end tests via Protractor.
Before running the tests make sure you are serving the app via ng serve
.
Further help
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.