A sample application showing the use of the Spring platform in practice. I mainly use Spring Boot, Spring Security, Spring Framework, Spring Data.
Server testing with swagger available here (as admin: username Kamil, password Kamil123, as user: Marcin, Marcin123).
Application for managing user notes. Implemented functionalities:
-
Spring Security:
- user management using the
UserDetailsclass extension - registration
- stateless session - verifying users using JWT (expired time: hour per token)
- email verification during registration (exipred time: 24 hours, the application uses gmail as a example)
- endpoint security for individual roles and users
- passwords stored in the database in a hash form
- user management using the
-
Spring Data:
- two tables:
UserandNotewith a one-to-many relationship as example of mapping - repositories implement
JpaRepository<T, ID>with own queries (without problems, for example N+1 query problem)
- two tables:
-
Spring Framework:
- RESTful API for
UserandNotewith DTO classes (conversion usingModelMapper) level 2 in Richardson Maturity Model - controllers with implemented pagination, sorting and security, using services
- full error handling for API
- RESTful API for
-
others:
- implemented swagger for API documentation
- implementation of tests with JUnit and Mockito