I have been working on a personal project to create an e-commerce application. For this project I am using Spring Boot for configuration, Spring MVC, Spring Data JPA, Lombok, PostgreSQL and React.
Spring boot makes it very easy to start a Spring framework application by doing all the necessary configurations behind the scene. Spring Web MVC provides support for creating web applications. Spring Data JPA is another project of Spring which is an implementation of Java Persistence API(JPA). It uses Hibernate under the hood. The benefit of using it is that it provides implementations for many CRUD operations out of the box. Project Lombok goes a great length to reduce boiler plate code. Based on annotations it can generate a constructor, getter, setter etc. PostgreSQL is my database and React will be used for developing front-end.
I am also using Spring HATEOAS to build hypermedia based rest service.
I am going to use GitHub projects to manage this and Jenkins for CI/CD. I have created GitHub repo for this project.
This is just a high level overview. I will write in detail about everything in coming weeks.
Next step is to create some design documents before jumping into code.