{"id":15056681,"url":"https://github.com/ratnesh2003/book-microservices","last_synced_at":"2026-02-01T22:31:15.917Z","repository":{"id":225658507,"uuid":"766489439","full_name":"Ratnesh2003/book-microservices","owner":"Ratnesh2003","description":"This is a microservice application created using Spring Boot and Spring Cloud","archived":false,"fork":false,"pushed_at":"2024-03-22T06:44:59.000Z","size":58,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-21T02:09:06.746Z","etag":null,"topics":["api-gateway","cassandra","docker-compose","eureka-discovery-service","grafana","kafka","keycloak","micrometer","microservices","mongodb","postgresql","prometheu","resilience4j","spring-cloud","springboot","springboot3","webclient"],"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/Ratnesh2003.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-03-03T12:13:11.000Z","updated_at":"2024-12-04T07:24:03.000Z","dependencies_parsed_at":"2024-11-19T22:52:02.856Z","dependency_job_id":null,"html_url":"https://github.com/Ratnesh2003/book-microservices","commit_stats":{"total_commits":11,"total_committers":1,"mean_commits":11.0,"dds":0.0,"last_synced_commit":"f37fb6e2838d9c9b71ff8acec2dd7f8d115a9eae"},"previous_names":["ratnesh2003/book-microservices"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ratnesh2003%2Fbook-microservices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ratnesh2003%2Fbook-microservices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ratnesh2003%2Fbook-microservices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ratnesh2003%2Fbook-microservices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ratnesh2003","download_url":"https://codeload.github.com/Ratnesh2003/book-microservices/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243538302,"owners_count":20307149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api-gateway","cassandra","docker-compose","eureka-discovery-service","grafana","kafka","keycloak","micrometer","microservices","mongodb","postgresql","prometheu","resilience4j","spring-cloud","springboot","springboot3","webclient"],"created_at":"2024-09-24T21:55:04.234Z","updated_at":"2026-02-01T22:31:15.910Z","avatar_url":"https://github.com/Ratnesh2003.png","language":"Java","readme":"\u003cbr /\u003e\n\u003cdiv align=\"center\" id=\"readme-top\"\u003e\n    \n\u003ca href=\"https://github.com/othneildrew/Best-README-Template\"\u003e\n    \u003cimg src=\"https://ucarecdn.com/96843f63-58bd-451e-8d6b-e42e599c6fd8/logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch1 align=\"center\"\u003eBook Microservices\u003c/h1\u003e\n\n  \u003cp align=\"center\"\u003e\n    A microservice application built using Spring Boot and Spring Cloud.\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#introduction\"\u003eIntroduction\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#list-of-microservices\"\u003eList of microservices\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#services-ports\"\u003eServices Ports\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\n    \u003cul\u003e\n          \u003cli\u003e\u003ca href=\"#book-service\"\u003eBook Service\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#inventory-service\"\u003eInventory Service\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#loan-service\"\u003eLoan Service\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n## Introduction\n\n\nThis application showcases the use of Spring Cloud for a microservice application. It is a basic application for a bookstore platform. Admins can manage books and their availability in the inventory. They can also lend books to users and facilitate book returns.\n\n### List of microservices\n* [Book Service](https://github.com/Ratnesh2003/book-microservices/tree/master/book-service) : Add and modify information about books.\n* [Inventory Service](https://github.com/Ratnesh2003/book-microservices/tree/master/inventory-service) : Update availability of books.\n* [Loan Service](https://github.com/Ratnesh2003/book-microservices/tree/master/loan-service) : Lend and receive books from users.\n* [Notification Service](https://github.com/Ratnesh2003/book-microservices/tree/master/notification-service) : To send notifications about books and loans.\n* [Discovery Server](https://github.com/Ratnesh2003/book-microservices/tree/master/discovery-server) : Eureka service discovery server.\n* [API Gateway](https://github.com/Ratnesh2003/book-microservices/tree/master/api-gateway) : API Gateway to route requests to microservices.\n\nEach of the microservice has its own `README` file with detailed information about the service.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n### Built With\n\n\n* [![SpringBoot][SpringBoot]][SpringBoot-url]\n* [![Prometheus][Prometheus]][Prometheus-url]\n* [![Grafana][Grafana]][Grafana-url]\n* [![Cassandra][Cassandra]][Cassandra-url]\n* [![Mongodb][Mongodb]][Mongodb-url]\n* [![Postgresql][Postgresql]][Postgresql-url]\n* [![Docker][Docker]][Docker-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## Screenshots\nThis section shows the screenshots of some of the additional tools and services used in the application.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://ucarecdn.com/a709095a-dac6-4da7-8251-05da0dace471/eureka.png\" alt=\"eureka\" width=\"49%\"\u003e\n    \u003cimg src=\"https://ucarecdn.com/994efa6a-5c7e-4061-9d12-94cee99d5fe2/prometheus.png\" alt=\"prometheus\" width=\"49%\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://ucarecdn.com/64b5c4ca-9fef-47cd-af8d-c63b2161f5fb/prometheus_2.png\" alt=\"monitoring\" width=\"49%\"\u003e\n    \u003cimg src=\"https://ucarecdn.com/bd65905e-c9da-4a95-a92c-33ffd340b77c/keycloak.png\" alt=\"keycloak\" width=\"49%\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://ucarecdn.com/a262aef3-37e9-4d93-81ef-e0722e053faa/zipkin.png\" alt=\"zipkin\" width=\"49%\"\u003e\n    \u003cimg src=\"https://ucarecdn.com/cd5ffda3-73a6-4538-a1c9-58545483ec23/zipkin_tracing.png\" alt=\"tracing\" width=\"49%\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\n## Getting Started\n\n\n### Prerequisites\n\n* [Java 17+](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)\n* [Docker](https://www.docker.com/)\n\n### Installation\n\n- Make a copy of the `.env.example` file and rename it to `.env`. Fill in the environment variables in the file.\n\n    ```sh\n  cp .env.example .env\n  ```\n- Run the following command to run the docker-compose file.\n\n    ```sh\n  docker-compose up -d\n  ```\n- Now you can start each of the microservice using the following command inside each of the microservice directory.\n\n    ```sh\n  ./mvnw spring-boot:run\n  ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Services Ports\n\n- Microservices:\n    * `Book Service` : 8282\n    * `Inventory Service` : 8383\n    * `Loan Service` : 8484\n    * `Notification Service` : 8585\n    * `Discovery Server` : 8761\n    * `API Gateway` : 8080\n    * `Apache Kafka`: 9092\n\u003cbr/\u003e\u003cbr/\u003e\n- Metrics and Monitoring:\n    * `Keycloak` : 8181\n    * `Zipkin` : 9411\n    * `Prometheus` : 9090\n    * `Grafana` : 3000\n\u003cbr/\u003e\u003cbr/\u003e\n- Databases:\n    * `Cassandra` : 9042\n    * `MongoDB` : 27017\n    * `PostgreSQL` : 5432\n\n\n\n\n## Usage\n\nThis section shows how to use the services provided by the application.\n\n### Book Service\nThis service is used to manage books. Admins can add, modify and delete books from the database. The service uses `MongoDB` as the database.\n\u003cbr/\u003e\n_Complete documentation [here](https://github.com/Ratnesh2003/book-microservices/tree/master/book-service)._\n\n\n### Inventory Service\nThis service is used to manage the availability of books. Admins can update the availability of books in the inventory. The service uses `PostgreSQL` as the database.\n\u003cbr/\u003e\n_Complete documentation [here](https://github.com/Ratnesh2003/book-microservices/tree/master/inventory-service)._\n\n### Loan Service\nThis service is used to lend and receive books from users. Admins can lend books to users and receive books from users. The service uses `Cassandra` as the database.\n\u003cbr/\u003e\n_Complete documentation [here](https://github.com/Ratnesh2003/book-microservices/tree/master/loan-service)._\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Roadmap\n\n- [x] Add documentation for each of the microservices.\n- [ ] Add gmail smtp server for sending emails in notification service.\n- [ ] Add redis for caching and improving performance.\n- [ ] Add rate limiting for the API Gateway.\n- [ ] Add more events for the notification service.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\n## Contributing\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the`enhancement`tag.\n\n1. Fork the Project\n2. Create your Feature Branch \u003cbr/\u003e\n`git checkout -b feature/new_feature`\n3. Commit your Changes \u003cbr/\u003e\n`git commit -m 'Add new_feature'`\n4. Push to the Branch \u003cbr/\u003e\n`git push origin feature/new_feature`\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\n\n\n\n[SpringBoot]: https://img.shields.io/badge/Spring%20Boot-6DB33F?style=for-the-badge\u0026logo=Spring\u0026logoColor=white\n[SpringBoot-url]: https://nextjs.org/\n[ApacheKafka.js]: https://img.shields.io/badge/Apache%20Kafka-000?style=for-the-badge\u0026logo=apachekafka\n[React-url]: https://reactjs.org/\n[Prometheus]: https://img.shields.io/badge/Prometheus-grey?style=for-the-badge\u0026logo=prometheus\n[Prometheus-url]: https://vuejs.org/\n[Grafana]: https://img.shields.io/badge/Grafana-black?style=for-the-badge\u0026logo=grafana\n[Grafana-url]: https://angular.io/\n[Cassandra]: https://img.shields.io/badge/Apache%20Cassandra-white?style=for-the-badge\u0026logo=apachecassandra\n[Cassandra-url]: https://svelte.dev/\n[Mongodb]: https://img.shields.io/badge/MongoDB-black?style=for-the-badge\u0026logo=mongodb\n[Mongodb-url]: https://laravel.com\n[Postgresql]: https://img.shields.io/badge/postgresql-white?style=for-the-badge\u0026logo=postgresql\u0026logoColor=blue\n[Postgresql-url]: https://getbootstrap.com\n[Docker]: https://img.shields.io/badge/docker-blue?style=for-the-badge\u0026logo=docker\u0026logoColor=white\n[Docker-url]: https://jquery.com \n\n\u003c!--\nhttps://ibb.co/BLd5ZqS\nhttps://ibb.co/J5h4GMK\nhttps://ibb.co/yB4HdHK\nhttps://ibb.co/fdR4hWY\nhttps://ibb.co/9VNKd6x\nhttps://ibb.co/njk3F7h\nhttps://ibb.co/8z3pPvv\nhttps://ibb.co/YtJ8wdN\nhttps://ibb.co/K0t8T74\nhttps://ibb.co/86H8XBw\nhttps://ibb.co/7SDRgRM\nhttps://ibb.co/W0XjS1F\nhttps://ibb.co/hV09jcG\nhttps://ibb.co/5XQqgv6\nhttps://ibb.co/DtzHfCs\n--\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fratnesh2003%2Fbook-microservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fratnesh2003%2Fbook-microservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fratnesh2003%2Fbook-microservices/lists"}