blob: 00f420589228a6028cd238aa2654ac3e30f3ec7b [file] [log] [blame] [view]
# Eclipse openK User Modules - Statement Public Affairs Frontend
This application represents a user module for the
[Eclipse openK User Modules](https://projects.eclipse.org/projects/technology.openk-usermodules)
project.
## Prerequisites
With `npm` in the path variable, run first `npm install` to
download and install all dependencies of this module.
After that, all npm scripts for deploying, developing and
testing are available.
Additionally, archiving the build as WAR file requires also
the Java Archiver command line tool in the path variable.
## Configuration
The whole application can be configured via certain properties in
the `./package.json`. The following options are available:
* `routes.spaFrontend`: Route on which the website is served
* `routes.spaBackend`: Route on which the website's backend is served
* `routes.portal`: Route on which the main portal is served
* `routes.contactDataBase`: Route on which the contact data base module is served
Changes to these properties take only effect after rebuilding the
application.
Additionally, the following options can be used to configure all map views based
on [Leaflet](https://leafletjs.com):
* `leaflet.templateUrl`: Route to the map tile server required by leaflet
* `leaflet.attribution`: Attribution which is added to the leaflet map, e.g.
`&copy; <a>TileServer</a> contributors`
* `leaflet.gis`: Route to a GIS system
* `leaflet.lat`/`leaflet.lng`/`leaflet.zoom`: Default coordinates and zoom
level to which all leaflet maps are initially configured
## Build
Building the application is done via the Angular CLI or by the
provided scripts in the `./package.json` (which also provide all
necessary configuration steps):
* `npm run build` Build the application via the Angular CLI
to the `./dist/statement-public-affairs` folder
* `npm run archive` Archive the build as WAR file
to `./dist/statement-public-affairs-frontend.war`
Note that the archiving script requires the Java Archiver
(`jar`) command line tool in the path variable.
## Development
Run `npm run start` for setting up a local dev server which is
served on http://localhost:4200/. The local dev server is also
a proxy which can be configured by the file `./proxy.conf.json`.
It redirects all calls to the back end to a specific location.
Run `npm run test` to execute all tests via Karma and Jasmine.
This also sets up a local dev server with live reload.
Run `npm run test:report` instead to generate a coverage report
at the folder `./coverage/statement-public-affairs`.
Run `npm run lint` for linting all source files, both
typescript and (s)css code.
Run `npm run lint:report` to generate instead linting report
files at `./lint.ts.report.json` and `./lint.styles.report.json`.
Run `npm run sonar` to upload the test and linting reports
to a sonarqube instance via the sonar-scanner.
This can be configured either by the
`./sonar-projects.properties` file or by arguments on the command
line. For example, uploading the reports to a different
port can be done via:
```
npm run sonar -- -Dsonar.host.url=http://localhost:9001
```
## Storybook
Run `start:storybook` for setting up a local storybook server.
Run `build:storybook` instead for building the storybook webpage
for later use.
## Miscellaneous Scripts
Run `npm run list-licenses` to generate a listing of all packages
and their licenses used for production. A file is created at
`./licenses.txt`.
The content of this file is required in the `./NOTICE.md` file.
Run `npm run check-legal-headers` to check if all source files
have a specific legal header.
## Git Hooks
Run `npm run pre-commit` to check if a commit passes the pre-commit
script. This script concatenates `npm run lint` and
`npm run check-legal-headers`.