Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abhishekomp/microservice-tutorial
Bookstore app - Purchase Books (Cart functionality using Spring Boot, Thymeleaf and AlpineJS)
https://github.com/abhishekomp/microservice-tutorial
alpinejs docker docker-compose docker-image email-sender event-driven rabbitmq-consumer restclient spring-boot spring-mvc thymeleaf-layout-dialect
Last synced: 8 days ago
JSON representation
Bookstore app - Purchase Books (Cart functionality using Spring Boot, Thymeleaf and AlpineJS)
- Host: GitHub
- URL: https://github.com/abhishekomp/microservice-tutorial
- Owner: abhishekomp
- Created: 2024-09-08T10:38:46.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-22T09:23:53.000Z (17 days ago)
- Last Synced: 2024-10-23T14:16:27.444Z (16 days ago)
- Topics: alpinejs, docker, docker-compose, docker-image, email-sender, event-driven, rabbitmq-consumer, restclient, spring-boot, spring-mvc, thymeleaf-layout-dialect
- Language: Java
- Homepage:
- Size: 138 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Microservice Based Bookstore application
This project demonstrates microservice applications interacting with one another including a thymeleaf based frontend application.
## Project Overview
This Spring Boot Microservice application showcases the following features:
- Setting up individual Spring Boot application that talk to each other for Bootstore application.
- Dockerizing the applications using GitHub Actions workflow.
- Running the application in Docker container.
- Usage of RestClient for interaction between different microservice applications.
- Publishing of events to RabbitMQ using Outbox Pattern.
- Implementation of email notification via mailhog.
- Frontend application based on Thymeleaf rendering and usage of AlpineJS for adding functionality on web page.
- Cart functionality for Order placement.## Prerequisites
Before you begin, ensure you have the following installed:
- Java Development Kit (JDK) 17 or later
- Apache Maven
- Docker client## Project Structure
The project (multi-module maven project) consists of the following applications:
- `catalog-service`: A Spring boot application that manages the books for the bookstore application.
- `order-service`: A Spring boot application that is used to create and manage Order from the user.
- `notification-service`: A Spring boot application that interacts with RabbitMQ to fetch the events and sends out the email notification to the user.
- `api-gateway`: A Spring boot application that serves as a single point of entry for api usage.
- `bookstore-webapp`: (End User facing application) A Spring boot web mvc application using Thymeleaf for html rendering and AlpineJS for adding functionality to the html page## Usage
Once the application is running, you can interact access the application using following endpoints:
- Bookstore web application: `http://localhost:8080`
The above endpoint will show the main page for the Bookstore web application along with Cart in the upper right side.
Happy coding!