This is a demo project using Hibernate Envers, Spring boot and AngularJS. It was meant as a solution for a real-world use case called "The four eyes principle" (http://whatis.techtarget.com/definition/four-eyes-principle). The main actors for this use case are the "maker" and the "checker". The first one will make changes to specific business objects and the second one will approve or reject those changes.
Spring-boot (http://projects.spring.io/spring-boot/) was chosen to build a quick working model based on a back-end REST architecture and a frontend implementation using AngularJS (https://angularjs.org) that would consume those services. Hibernate envers (http://hibernate.org/orm/envers/) will be used to audit all changes to database rows and to query for changes at specific points in time.
As this is a demo, an in-memory H2 database will be used, and the schema will be auto-generated by spring from the entity mapping.
The application can be run using the maven command: mvn spring-boot:run
. This will start an embedded tomcat server and the application will be available by default at http://localhost:8080
. The default port can be changed by adding the server.port=PORT_NUMBER
in application.properties file from the resources folder.
During the application lifetime, the in-memory database can be browsed at the following URL: http://localhost:8080/console
.