Skip to content

belrbez/user-manager-spring-boot-sse-dynamic-fe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

user-manager

This is Spring Boot service, that running as a web application for user management. Try see launching app: https://user-manager-belrbez.herokuapp.com/

Source code

https://github.com/belrbeZ/UserManager

Main features:

  • Full API documentation by url "/api" (free access; models docs too)
  • Both Web and REST APIs. REST API is implemented in accordance with Six guiding constraints that define a RESTful system
  • Registration and sign in (+logout) of user profiles
  • Registration form and BE are both support validation of email and password by configurable validation rules (includes existing email)
  • Login process provide validation of email (is exist) and credentials checks
  • Password encrypts both for registration and login processes (BCrypt algorithm used, can be switched)
  • Concurrent creation and modification of users
  • Application supports localization (can choose on login page)
  • User list page contains table with full information about users and links to change profile page
  • User list page contains list of active users
  • User list page have a dynamic content which updates immediately with changes on BE service (you can show or hide event log)
  • All pages which can manage data have custom modal alert messages to make it simplier to understand application events
  • Tests added and passed (with json data initialization)

Technologies

Although Java is the main technology used for the software, a couple of libraries and frameworks are used to improve the development process:

  • Spring Boot: Spring Boot Framework
  • Spring Security: Spring Security is a powerful and highly customizable authentication and access-control framework.
  • Spring Data JPA: Makes it easy to implement JPA-based repositories
  • JUnit: Test framework
  • Swagger: API Framework describing all offered REST services
  • SSE: HTML5 Server Side Events technology. The text/event-stream MIME type where text-based messages are sent according to a HTTP protocol, and the EventSource interface with event listeners to receive messages.
  • Dozer: Mapper that recursively copies data from one object to another
  • ThymeLeaf: Thymeleaf server-side Java template engine for both web and standalone environments for modern-day HTML5 JVM web development

Setup a local development environment

It is a Maven project, you can simply open it via Eclipse or IDEA, configure start of spring boot application. Change default configuration parameters, in /resources/application.properties

Regeneration of swagger server part and building an executable jar file:

To build app run:

mvn clean package

To launch app run:

You can just use already generated "user-manager-x.x.x-RELEASE.jar" in a root source of the project. And try to use just java command (jvm need):

java -jar user-manager-x.x.x-RELEASE.jar

Improvements and problems:

  • Possible bugs with some extra validation error handling on UI
  • Increase performance with updating not whole user list, but only necessary rows (Now messages from server about events already contain ID and type of event)

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •