/E-shop

E-commerce Java web app made using Spring Boot, Hibernate plus Thymeleaf. The app features user registration and authorization, a shopping cart, and descriptive product categories.

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

e-shop-logo

GitHub last commit (branch) GitHub commit activity (branch) GitHub pull requests


📔 Table of Contents

🌟 About the Project

This Java application is an E-shop that allows users to register, authorize, and browse products by category. It utilizes Thymeleaf for UI technology and is built on Spring Boot, Spring MVC, and new Java 17 technologies. Users can add items to their cart for purchase. The system is designed to streamline the online shopping experience by providing a user-friendly interface and incorporating the latest Java technologies for improved functionality and security.

📷 Screenshots

profile page

👾 Tech Stack

Show
  • Java 17
  • Spring 3.0.6 (Spring boot, Spring Security, Spring web)
  • Maven 3.8.1
  • Postgresql 42.6.0
  • Lombok 1.18.24
  • Modelmapper 3.1.1
  • FlyWay 9.19.1
  • ThymeLeaf 3.0.6
  • Hibernate 6.1.7
  • Spring data JPA 3.0.5
  • JUnit 5

🎯 Features

  • user registration and authorization

🏃 Run Locally

Clone the project

  git clone https://github.com/Petrovich-A/E-shop.git

🔑 Database structure

DB_structure

🧭 roadmap:

  • building a plain Application with Spring Boot
  • create the User controller
  • plug the Hibernate
  • connect entities with 1:M and M:M relationships
  • add entities validator
  • add DTO and converters
  • add global search by product name
  • add User registration with saving Users to database
  • add User authorization
  • create shopping cart and opportunity to add products
  • add orders storing to DB
  • display user's order history
  • add the ability to view the list of products of each user order
  • add admin page with user's list
  • add Spring Security with In-Memory Authentication
  • add Spring Security authentication form Login custom page with Database
  • add Spring Security roles
  • add Spring Security's remember me feature
  • add images for according products

🎨 color:

HEX RGB
#04AA6D rgb: (4, 170, 109)
#1ad18c rgb: (26, 209, 140)
#e9e9e9 rgb: (233, 233, 233)

🤝 Contact

Petrovich Alexandr - @Petrovich Alexandr - a.piatrovich@gmail.com

💎 Acknowledgements

Here are useful resources for readme writing and designing that I've used in my projects.