The aim of this repo is to test multiple ways to us a state store for a web form application.
- Start the backend via terminal in the folder form-service with
mvn spring-boot:run
- Start the frontend via terminal in the folder form-ui with
ng serve
- Run this command in the main project folder:
npx openapi-generator-cli generate -i open-api-specification/open-api-specification.yml -g typescript-angular -o form-ui/src/app/core/modules/openapi --additional-properties fileNaming=kebab-case,withInterfaces=true --generate-alias-as-model
- The user sees a personal item overview with some item information
- The user is able to open a item to see more details of the item
- The user can create a request to a item
- A request is a three page form with validation on each page
- Form validation is done in frontend (user friendly) and in backend (script kiddie unfriendly)
- Security is not regarded as it is just a playground/poc
- Backend is a Spring Boot App
- Frontend is Angular
All items and requests are loaded in the store
All data for the item overview, the current loaded item and the current loaded request is loaded in the store
All needed data is fetched from the backend
Heavy | Light | No Store | |
---|---|---|---|
NGXS | TODO1 | TODO4 | TODO7 |
NGRX | TODO2 | TODO5 | TODO7 |
NGRX Signals | TODO3 | TODO6 | TODO7 |
TODO
TODO
TODO
TODO
TODO
TODO
TODO
TODO
The backend will provide static data.
- /items
- GET
- /items/{itemId}
- GET
- /requests
- GET
- /requests/{requestId}
- GET, DELETE, PATCH, POST
- /requests/{requestId}/form1
- GET, PATCH
- /requests/{requestId}/form2
- GET, PATCH
- /requests/{requestId}/form3
- GET, PATCH