MCPcopy Index your code
hub / github.com/ali-bouali/springboot-3-micro-service-demo

github.com/ali-bouali/springboot-3-micro-service-demo @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
43 symbols 86 edges 21 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Microservices Demo Project

by Alibou (https://aliboucoding.com/courses)

alt text

This repository contains a demo project showcasing a microservices-based application, designed to provide a hands-on understanding of microservices architecture and implementation. The project consists of an API Gateway, Config Server, Discovery Server, and two microservices: Student and School.

Table of Contents

Getting Started

Follow the instructions below to set up the project on your local machine for development and testing purposes.

Prerequisites

Ensure you have the following software installed on your system before proceeding:

  • Java Development Kit (JDK) 17 or later
  • Maven
  • Docker (optional, for containerization)

Installation

  1. Clone the repository:

git clone git remote add origin git@github.com:ali-bouali/springboot-3-micro-service-demo.git

  1. Navigate to the project directory:
  2. Build and package each component with Maven:

Project Components

API Gateway

The API Gateway serves as the single entry point for all client requests, managing and routing them to the appropriate microservices.

Config Server

The Config Server centralizes configuration management for all microservices, simplifying application maintenance and consistency across environments.

Discovery Server

The Discovery Server provides service registration and discovery, enabling seamless service-to-service communication within the microservices ecosystem.

Student Microservice

The Student Microservice is responsible for managing student-related data and operations, such as adding, updating, and retrieving student records.

School Microservice

The School Microservice manages school-related data and operations, including adding, updating, and retrieving school records.

Inter-Service Communication

Using OpenFeign

This project demonstrates inter-service communication using OpenFeign, a declarative REST client that simplifies service-to-service communication within the microservices ecosystem.

Distributed Tracing

Using Zipkin

The project showcases the use of Zipkin for distributed tracing, enhancing application observability and enabling the visualization and troubleshooting of latency issues.

Contributing

Contributions are welcome! Please read our CONTRIBUTING.md for details on how to contribute to this project.

License

This project is licensed under the MIT License.

Contact

[Ali Bouali] - [contact@aliboucoding.com]

[Website] - [https://aliboucoding.com/courses]

Project Link: https://github.com/ali-bouali/springboot-3-micro-service-demo

Acknowledgements

Extension points exported contracts — how you extend this code

StudentClient (Interface)
(no doc) [1 implementers]
school/src/main/java/com/alibou/school/client/StudentClient.java
StudentRepository (Interface)
(no doc)
student/src/main/java/com/alibou/student/StudentRepository.java
SchoolRepository (Interface)
(no doc)
school/src/main/java/com/alibou/school/SchoolRepository.java

Core symbols most depended-on inside this repo

findAllStudentsBySchool
called by 2
school/src/main/java/com/alibou/school/client/StudentClient.java
save
called by 1
student/src/main/java/com/alibou/student/StudentController.java
findAllBySchoolId
called by 1
student/src/main/java/com/alibou/student/StudentRepository.java
saveStudent
called by 1
student/src/main/java/com/alibou/student/StudentService.java
saveSchool
called by 1
school/src/main/java/com/alibou/school/SchoolService.java
findSchoolsWithStudents
called by 1
school/src/main/java/com/alibou/school/SchoolService.java
save
called by 1
school/src/main/java/com/alibou/school/SchoolController.java
main
called by 0
config-server/src/main/java/com/alibou/configserver/ConfigServerApplication.java

Shape

Method 22
Class 18
Interface 3

Languages

Java100%

Modules by API surface

student/src/main/java/com/alibou/student/StudentService.java4 symbols
school/src/main/java/com/alibou/school/SchoolService.java4 symbols
student/src/main/java/com/alibou/student/StudentController.java3 symbols
school/src/main/java/com/alibou/school/SchoolController.java3 symbols
student/src/test/java/com/alibou/student/StudentApplicationTests.java2 symbols
student/src/main/java/com/alibou/student/StudentRepository.java2 symbols
student/src/main/java/com/alibou/student/StudentApplication.java2 symbols
school/src/test/java/com/alibou/school/SchoolApplicationTests.java2 symbols
school/src/main/java/com/alibou/school/client/StudentClient.java2 symbols
school/src/main/java/com/alibou/school/SchoolApplication.java2 symbols
gateway/src/test/java/com/alibou/gateway/GatewayApplicationTests.java2 symbols
gateway/src/main/java/com/alibou/gateway/GatewayApplication.java2 symbols

Datastores touched

schoolsDatabase · 1 repos
studentsDatabase · 1 repos

For agents

$ claude mcp add springboot-3-micro-service-demo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page