Glee-o-meter is a simple Angular 7 application focused on the interaction with a Spring REST server.
The data-centric application offers a basic user-management section, with the possibility to sign-in new users. Each user can manage a list of glee-levels, each one associated to a date, time and a comment. There are three different roles:
- Admin: has full permissions on the whole data
- User manager: has permissions on user data
- User: has full permissions on owned glee data.
The application has the following features:
- data access with pagination, sorting, ordering and filtering;
- CRUD operations on whole data;
- sign-in to permit the registration of new users;
- authentication based on oauth2 JWT, with token refresh;
- consumes REST resources
/api/glee
,/api/users
and/api/signin
The server side is implemented with Spring boot, slightly customized to run on Google App Engine. Server implementation features the following:
- oauth2 JWT authentication with spring-boot, using grant types
password
andrefresh token
; - publish 2 authenticated REST resources
/api/glee
,/api/users
and one public/api/signin
for user registration; - method-level authorization based on
@PreAuthorize
and@PostAuthorize
; - data access based on logged user's permissions;
- Spring based JSR-349 data validation;
- CORS configuration for running separated local server and client development environments;
A running version is deployed on Google App-Engine cloud.
Available users are:
User email | Password | Role |
---|---|---|
[email protected] | pwd | Admin |
[email protected] | pwd | User manager |
[email protected] | pwd | User |
[email protected] | pwd | User |
... |
This project was generated with Angular CLI version 7.0.6.
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.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
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.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.