JakartaEE 8 User Management Example

JakartaEE 8 User Management Example

I have developed a user management module using JakartaEE 8 technologies. Along with JakartaEE, I used other technologies such as Bootstrap4, Apache Shiro, Omnifaces, EclipseLink, and OpenLiberty Server.

To check the code please go to my GitHub repo.

Few images of the UI.




The design of the Application.

There are only two entities in the application since we are dealing with user management.

ER diagram

The architecture of the Application: I have drawn a diagram to explain how I have used technologies in different layers of the system.


Technologies and how they work

Front End/Controller: For UI I used Bootstrap, JSF, Omnicases, and Javascript. With Bootstrap it is easy to implement responsive and clean UIs. For form input validation I used JSF and Java bean validations.

Facelets Templates were used to reuse a base template throughout the application. Main bootstrap files are linked to these base templates. Page-specific CSS and js file are linked to the specific pages only.

JPA: OpenLiberty jakartaee-8.0 features enables jpa-2.2. Since EclipseLink is also included as the default JPA provider implementation, I used EclipseLink to implement the application.

The data source is defined in the server.xml file which is the openLiberty server configuration file. The persistence unit is defined in the persistence.xml

Service Layer: Stateless Session Beans are being used in this layer.

Authentication/Authorization: Apache Shiro is being used to implement this.

Future Development: To make this application production-ready, Logging, and unit testing needs to be implemented.