https://github.com/akhilesh664/microservices
π¦ A collection of real-world Java + Spring Boot Microservices projects π built using modern architectures like REST APIs, Service Discovery, API Gateway, Database Integration, and more! Perfect for learning, practicing, and showcasing your backend skills. π‘
https://github.com/akhilesh664/microservices
api-gateway jwt-auth microservices mysql netflix-eureka rest-api spring-boot
Last synced: 3 days ago
JSON representation
π¦ A collection of real-world Java + Spring Boot Microservices projects π built using modern architectures like REST APIs, Service Discovery, API Gateway, Database Integration, and more! Perfect for learning, practicing, and showcasing your backend skills. π‘
- Host: GitHub
- URL: https://github.com/akhilesh664/microservices
- Owner: Akhilesh664
- Created: 2025-06-25T06:45:03.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-25T09:59:43.000Z (about 1 year ago)
- Last Synced: 2025-10-25T06:48:33.507Z (9 months ago)
- Topics: api-gateway, jwt-auth, microservices, mysql, netflix-eureka, rest-api, spring-boot
- Language: Java
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.markdown
Awesome Lists containing this project
README
# Microservices Portfolio π
Welcome to my Microservices Portfolio! This repository showcases a collection of Spring Boot-based microservices projects designed for various functionalities, including AI-powered text summarization, hotel management, sentiment-based review systems, and more. Each project is built with modern Java technologies and follows a microservices architecture for scalability and modularity. Below, you'll find detailed descriptions of the prioritized projects (Text Summarizer, Hotel Management, and Review System) followed by other notable microservices.
---
## Table of Contents
- [Text Summarizer Microservice π](#text-summarizer-microservice)
- [Hotel Management Microservices π¨](#hotel-management-microservices)
- [Sentiment-Based Product Review System π](#sentiment-based-product-review-system)
- [Other Microservices](#other-microservices)
- [Auth Service App](#auth-service-app)
- [Feedback Service](#feedback-service)
- [Product Catalog](#product-catalog)
- [Contributing π€](#contributing)
- [License π](#license)
---
## Text Summarizer Microservice π
This Spring Boot-based microservice leverages **ONNX models** for text summarization, providing a REST API and a Thymeleaf-based web interface to summarize input text using an encoder-decoder architecture. The application uses the **ONNX Runtime** for model inference, with placeholder preprocessing and postprocessing pipelines for tokenization.
### Key Features
- Summarize text via REST API (`/api/summarize`) or web UI.
- Uses `encoder_model.onnx` and `decoder_model.onnx` for AI-driven summarization.
- Built with **Spring Boot**, **Thymeleaf**, and **ONNX Runtime**.
### Setup Instructions
1. **Clone the Repository**:
```bash
git clone
cd TextSummarizer
```
2. **Place ONNX Models**:
- Download `encoder_model.onnx` and `decoder_model.onnx` from [Google Drive Folder]().
- Place them in `src/main/resources/model/`.
3. **Install Dependencies**:
- Ensure `pom.xml` includes:
```xml
org.springframework.boot
spring-boot-starter-web
3.4.5
org.springframework.boot
spring-boot-starter-thymeleaf
3.4.5
com.microsoft.onnxruntime
onnxruntime
1.17.0
ai.djl.huggingface
tokenizers
0.32.0
```
4. **Run the Application**:
```bash
mvn spring-boot:run
```
5. **Access**:
- REST API: `http://localhost:8080/api/summarize`
- Web UI: `http://localhost:8080/`
## Model Download
The ONNX model is too large to be included in the repo.
β‘οΈ [Download model.onnx from Google Drive]: [https://drive.google.com/drive/folders/1USD0UmWzLojfP1NG0jOpYGXGFxa1dgWa?usp=sharing]
### Notes
- Replace placeholder tokenization with **Hugging Faceβs tokenizer** for production use.
- Use **Netron** (https://netron.app/) to inspect model inputs/outputs.
---
## Hotel Management Microservices π¨
This project is a robust microservices-based system for managing hotel operations, including room bookings, hotel details, and user ratings. It uses **Spring Cloud** for service discovery and configuration, with **OAuth 2.0** for secure authentication.
### Key Features
- **User Service**: User registration, authentication, room bookings, and wallet transactions.
- **Hotel Service**: Add hotels/rooms, retrieve details, and list available/booked rooms.
- **Booking Service**: Manage room bookings and retrieve booking details.
- **Rating Service**: Add and retrieve hotel ratings/reviews.
- **Service Registry & API Gateway**: Centralized service discovery and routing.
### Tech Stack
- **Java**, **Spring Boot**, **Spring Cloud** (Eureka, Config, Gateway)
- **Spring Security**, **OAuth 2.0**, **Spring Data JPA**, **Spring Data MongoDB**
- **MySQL**, **MongoDB**, **Thymeleaf**, **Okta**
### Setup Instructions
1. **Clone the Repository**:
```bash
git clone
cd Hotel-Management-Microservices
```
2. **Configure Services**:
- Update properties in `application.properties` for each microservice.
3. **Run Services**:
```bash
mvn spring-boot:run
```
4. **Check Service Status**:
- Eureka Dashboard: `http://localhost:8761`
- API Gateway: `http://localhost:8086`
### API Endpoints
- **User Service**: `http://localhost:8086/users/register`, `http://localhost:8086/users/addBooking`
- **Hotel Service**: `http://localhost:8086/hotels/all`, `http://localhost:8086/hotels/{hotelId}`
- **Rating Service**: `http://localhost:8086/ratings/add`, `http://localhost:8086/ratings/hotel/{hotelId}`
---
## Sentiment-Based Product Review System π
This beginner-friendly microservices application allows users to submit product reviews and analyze their sentiment using a **lexicon-based AI approach**. Itβs completely free, requiring no external APIs or cloud services.
### Key Features
- **Review Service**: CRUD operations for reviews, stored in **MySQL**.
- **Sentiment Service**: Analyzes review sentiment (POSITIVE, NEUTRAL, NEGATIVE) using a local word list.
- **Frontend**: Simple HTML/CSS/JS interface for submitting and viewing reviews.
### Tech Stack
- **Java**, **Spring Boot**, **Spring Data JPA**
- **MySQL**, **HTML/CSS/JavaScript**
### Setup Instructions
1. **Clone the Repository**:
```bash
git clone
cd review-system
```
2. **Set Up MySQL**:
```sql
CREATE DATABASE review_system;
USE review_system;
CREATE TABLE reviews (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
product_id VARCHAR(50) NOT NULL,
review_text TEXT NOT NULL,
sentiment VARCHAR(20) DEFAULT 'PENDING',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
3. **Run Services**:
- Review Service: `cd review-service && mvn spring-boot:run`
- Sentiment Service: `cd sentiment-service && mvn spring-boot:run`
- Frontend: `cd frontend && python3 -m http.server 8000`
4. **Access**:
- Frontend: `http://localhost:8000`
- Review API: `http://localhost:8080/api/reviews`
- Sentiment API: `http://localhost:8081/api/sentiment/analyze/{reviewId}`
---
## Other Microservices
### Auth Service App π
- **Description**: A Spring Boot microservice for user authentication and authorization using **OAuth 2.0** and **JWT**.
- **Features**: User login, token generation, and role-based access control.
- **Tech Stack**: Spring Boot, Spring Security, Okta.
- **API Endpoints**: `http://localhost:8080/auth/login`, `http://localhost:8080/auth/validate`.
---
### Feedback Service π¬
- **Description**: A microservice for collecting and managing user feedback.
- **Features**: Submit feedback, retrieve feedback by user or product, and basic analytics.
- **Tech Stack**: Spring Boot, Spring Data JPA, MySQL.
- **API Endpoints**: `http://localhost:8082/feedback/submit`, `http://localhost:8082/feedback/all`.
---
### Product Catalog ποΈ
- **Description**: A microservice to manage product listings and details.
- **Features**: Add, update, delete, and retrieve product information.
- **Tech Stack**: Spring Boot, Spring Data MongoDB, MongoDB.
- **API Endpoints**: `http://localhost:8083/products/all`, `http://localhost:8083/products/{productId}`.
---
## Contributing π€
Contributions are welcome! Please create an issue or submit a pull request to contribute to any of the microservices in this portfolio.
## License π
This project is licensed under the MIT License.
**Last Updated**: June 25, 2025