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
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
- publish 2 authenticated REST resources
/api/usersand one public
/api/signinfor user registration;
- method-level authorization based on
- 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:
This project was generated with Angular CLI version 7.0.6.
ng serve for a dev server. Navigate to
http://localhost:4200/. The app will automatically reload if you change any of the source files.
ng generate component component-name to generate a new component. You can also use
ng generate directive|pipe|service|class|guard|interface|enum|module.
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
ng test to execute the unit tests via Karma.
Running end-to-end tests
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.