{"id":22345670,"url":"https://github.com/gifflet/spring-cloud-microservices","last_synced_at":"2026-04-19T13:32:11.227Z","repository":{"id":216586154,"uuid":"741268374","full_name":"gifflet/spring-cloud-microservices","owner":"gifflet","description":"Spring Cloud powered microservices utilizing Eureka, Gateway LoadBalancer, Open Feign, RabbitMQ, KeyCloak and Docker","archived":false,"fork":false,"pushed_at":"2024-12-08T20:01:49.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-29T11:48:39.062Z","etag":null,"topics":["docker","docker-compose","eureka","feign","keycloak","mapstruct","microservices","rabbitmq","spring-boot","spring-cloud"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gifflet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-10T03:27:00.000Z","updated_at":"2024-12-08T20:01:53.000Z","dependencies_parsed_at":"2025-01-31T11:41:11.457Z","dependency_job_id":"a43d9927-9165-47c3-980f-1b651a967a42","html_url":"https://github.com/gifflet/spring-cloud-microservices","commit_stats":null,"previous_names":["gifflet/spring-cloud-microservices"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gifflet/spring-cloud-microservices","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gifflet%2Fspring-cloud-microservices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gifflet%2Fspring-cloud-microservices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gifflet%2Fspring-cloud-microservices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gifflet%2Fspring-cloud-microservices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gifflet","download_url":"https://codeload.github.com/gifflet/spring-cloud-microservices/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gifflet%2Fspring-cloud-microservices/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32009112,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","eureka","feign","keycloak","mapstruct","microservices","rabbitmq","spring-boot","spring-cloud"],"created_at":"2024-12-04T09:18:22.296Z","updated_at":"2026-04-19T13:32:11.206Z","avatar_url":"https://github.com/gifflet.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Cloud Microservices Project\n\n## Overview\n\nThis project is a collection of microservices built using Spring Boot, designed to demonstrate the capabilities of microservices architecture. The system consists of several services, including a client management service, a card management service, a credit assessment service, and a cloud gateway for routing requests. Each service is registered with a Eureka server for service discovery.\n\n## Architecture\n\nThe architecture of the project is based on the following components:\n\n- **Eureka Server**: Acts as a service registry for all microservices.\n- **Clients Service**: Manages client information.\n- **Cards Service**: Handles card-related operations.\n- **Credit Assessment Service**: Evaluates the creditworthiness of clients.\n- **Cloud Gateway**: Routes requests to the appropriate microservice.\n\n## Technologies Used\n\n- Spring Boot\n- Spring Cloud\n- Spring Data JPA\n- RabbitMQ\n- H2 Database (for development)\n- Lombok\n- MapStruct\n- Feign Client\n\n## Getting Started\n\n### Prerequisites\n\n- Java 17\n- Maven\n- Docker (optional, for running services in containers)\n\n### Running the Application\n\nYou can run the application using Docker Compose. Make sure you have Docker installed and running, then execute the following command in the root directory of the project:\n```bash\ndocker-compose up --build\n```\n\nThis command will build and start all the microservices along with the RabbitMQ and Keycloak services.\n\n### Accessing the Services\n\nOnce the services are up and running, you can access them through the Cloud Gateway. The default port for the gateway is `8080`.\n\n## How to Use\n\n### Client Management\n\n1. **Create a Client**\n\n   To create a new client, send a POST request to the `/clients` endpoint:\n\n   ```bash\n   curl -X POST http://localhost:8080/clients \\\n   -H \"Content-Type: application/json\" \\\n   -d '{\n       \"cpf\": \"12345678900\",\n       \"name\": \"John Doe\",\n       \"age\": 30\n   }'\n   ```\n\n2. **Find a Client by CPF**\n\n   To retrieve a client by their CPF, send a GET request to the `/clients` endpoint:\n\n   ```bash\n   curl -X GET \"http://localhost:8080/clients?cpf=12345678900\"\n   ```\n\n### Card Management\n\n1. **Create a Card**\n\n   To create a new card, send a POST request to the `/cards` endpoint:\n\n   ```bash\n   curl -X POST http://localhost:8080/cards \\\n   -H \"Content-Type: application/json\" \\\n   -d '{\n       \"name\": \"Visa\",\n       \"brand\": \"Visa\",\n       \"income\": 5000,\n       \"creditLimit\": 1000\n   }'\n   ```\n\n2. **Get Cards by CPF**\n\n   To retrieve cards associated with a specific CPF, send a GET request to the `/cards` endpoint:\n\n   ```bash\n   curl -X GET \"http://localhost:8080/cards?cpf=12345678900\"\n   ```\n\n### Credit Assessment\n\n1. **Assess Credit**\n\n   To assess a client's credit, send a POST request to the `/credit-assessments` endpoint:\n\n   ```bash\n   curl -X POST http://localhost:8080/credit-assessments \\\n   -H \"Content-Type: application/json\" \\\n   -d '{\n       \"cpf\": \"12345678900\",\n       \"income\": 3000\n   }'\n   ```\n\n2. **Get Customer Cards**\n\n   To retrieve the cards associated with a customer after assessment, send a GET request to the `/credit-assessments/customer-cards` endpoint:\n\n   ```bash\n   curl -X GET \"http://localhost:8080/credit-assessments/customer-cards?cpf=12345678900\"\n   ```\n\n## Conclusion\n\nThis project demonstrates the integration of multiple microservices using Spring Cloud. Each service can be independently developed, deployed, and scaled, providing flexibility and resilience. For further customization and enhancements, feel free to explore the codebase and contribute!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgifflet%2Fspring-cloud-microservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgifflet%2Fspring-cloud-microservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgifflet%2Fspring-cloud-microservices/lists"}