Spring Boot + MongoDB project

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.
https://github.com/h-hub/jakartaee8-usermanagement_frozen

Few images of the UI.


jakartaee_app_ui1

jakartaee_app_ui2

jakartaee_app_ui3


The design of the Application.

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

ER_diagram
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.

Architecture
Architecture


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.


Comments