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
UserDetails
class 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:
User
andNote
with 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
User
andNote
with 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