This repo contains build and run scripts for this project:
back: MyNotes SpringBoot Service.
front 1: Angular Material NgRx REST Client.
front 2: Angular Bootstrap REST Client.
- prerequisites: maven, git, java8, docker, docker-compose
- containers: SpringBoot app + clients served by nginx
1. git clone https://github.com/alexshavlovsky/mynotes-ci-template.git
2. cd mynotes-ci-template
3. Linux: sh build.sh
Windows: build.cmd
This is a double-frontend project. A frontend version may be switched at any moment by pressing an icon at the right upper conner of the page or by typing corresponding URI path:
- a material client is accessible at
https:\\host\material\
- a bootstrap client is be accessible at
https:\\host\bootstrap\
Default users:
Password | Role | |
---|---|---|
[email protected] | 12345 | USER |
[email protected] | 12345 | ADMIN |
[email protected] | 12345 | ADMIN, USER |
Component | Technology |
---|---|
Runtime | Java 8 |
Build tool | Maven |
Server | SpringBoot WEB (Tomcat) |
Security | SSL, JWT |
JWT implementation | jsonwebtoken.io |
Database | SpringBoot JPA (Hibernate), H2, MySQL |
SpringBoot MAIL | |
Async tasks | ThreadPoolTaskExecutor |
REST data mapping | Jackson, Bean Validation API, ModelMapper |
Code reducer | ProjectLombok |
Testing | Junit, Mockito, MockMvc, GreenMail |
REST Documentation | SpringFox Swagger2 |
MS Excel export | Apache POI |
Prod packaging | Docker Engine Container, Alpine Linux, OpenJDK, SpringBoot JAR |
Bootstrap client: | |
JS framework | Angular 8 |
Styles and templates | Bootstrap 4 |
Icons | angular-fontawesome |
Pop-up notifications | ngx-toastr |
Textarea autosize | ngx-autosize |
Material client: | |
JS framework | Angular 9 |
Styles and templates | Angular Material 9 / Angular Flex Layout |
State management | NgRx 8 (store, effects, entity) |
Forms | Angular Reactive Forms |
Authentication | JWT role based |
JWT parser | @auth0/angular-jwt |
Production packaging | Docker Engine Container, Alpine Linux, Nginx (SSL, HTTP2, API proxy) |