Skip to content

j-fborges/java_store_adm_microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ Overview

java_store_adm_microservices is a Portfolio Project Monorepo featuring a distributed microservices architecture built with Java Spring Boot. This project demonstrates enterprise-grade system design for managing an online store, implementing a scalable configuration server and specialized microservices for customer, product, and order management.

πŸ—οΈ Project Architecture

Repository Structure

Note

A monorepo was chosen to simplify versioning and present the project as a cohesive portfolio piece.

java_store_adm_microservices/
β”œβ”€β”€ apps/
β”‚   └── api/
β”‚       β”œβ”€β”€ config-server/          # Centralized configuration management
β”‚       β”œβ”€β”€ customer-service/       # Customer management microservice
β”‚       β”œβ”€β”€ order-service/          # Order/Sales management microservice
β”‚       └── product-service/        # Product catalog management microservice
└── README.md

πŸ› οΈ Core Microservices & Technology Stack

All business microservices (customer, order, product) share a common technology foundation:

  • Java 17
  • Spring Boot 3.5.10
  • Spring Cloud 2025.0.1
  • MongoDB (NoSQL) with Spring Data MongoDB
  • Spring Cloud Config Client – connects to the Config Server
  • Spring Cloud OpenFeign – declarative HTTP client for inter-service communication
  • SpringDoc OpenAPI 2.8.13 – provides Swagger UI documentation
  • Spring Boot Validation – input validation
  • Lombok – reduces boilerplate code
  • Spring Boot DevTools – development-time hot reload

The Config Server is a dedicated microservice that uses Spring Cloud Config Server to centralize configuration for all other services.

Service Purpose Key Differentiators
Config Server Centralized configuration management Spring Cloud Config Server only; no database
Customer Service Manages customer profiles & registration MongoDB persistence; REST API for customer CRUD
Product Service Manages product catalog & inventory MongoDB persistence; product search & stock
Order Service Manages orders & sales transactions MongoDB persistence; integrates with customer & product

Each microservice exposes its own REST API and Swagger UI at http://localhost:{port}/swagger-ui.html.


✨ Key Features

βœ… Microservices Architecture - Independently deployable services with clear responsibility separation
βœ… Centralized Configuration - Config Server for unified application management
βœ… Service Communication - OpenFeign for seamless inter-service HTTP calls
βœ… API Documentation - Built-in Swagger UI via SpringDoc OpenAPI
βœ… Data Validation - Spring Validation for input integrity
βœ… MongoDB Integration - Flexible document-based data storage
βœ… Cloud-Native Design - Spring Cloud components for scalability
βœ… Development Experience - DevTools for hot reload and faster development

πŸš€ Getting Started

Prerequisites

  • Java 17 or higher
  • Maven 3.6+
  • MongoDB instance running

Build & Run

Build all services:

mvn clean install

Run individual service:

cd apps/api/config-server
mvn spring-boot:run

Access API Documentation: Each service exposes Swagger UI at http://localhost:{port}/swagger-ui.html

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages