{"id":32717932,"url":"https://github.com/akash-adak/banking-system","last_synced_at":"2025-11-02T16:03:58.830Z","repository":{"id":303719005,"uuid":"1016124310","full_name":"Akash-Adak/Banking-system","owner":"Akash-Adak","description":"Advanced Type Banking Management System ","archived":false,"fork":false,"pushed_at":"2025-10-05T15:31:00.000Z","size":1333,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-05T17:19:36.099Z","etag":null,"topics":["docker","docker-compose","grafana","jwt-authentication","kafka","microservices","mysql","promotheus","redis","spring","spring-boot","springcloud-config"],"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/Akash-Adak.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-08T14:21:29.000Z","updated_at":"2025-10-05T15:33:42.000Z","dependencies_parsed_at":"2025-07-09T04:30:44.015Z","dependency_job_id":"e6994c13-6d32-48b4-9afb-c89fa3c61fd8","html_url":"https://github.com/Akash-Adak/Banking-system","commit_stats":null,"previous_names":["akash-adak/banking-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Akash-Adak/Banking-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akash-Adak%2FBanking-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akash-Adak%2FBanking-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akash-Adak%2FBanking-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akash-Adak%2FBanking-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Akash-Adak","download_url":"https://codeload.github.com/Akash-Adak/Banking-system/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Akash-Adak%2FBanking-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282314761,"owners_count":26649104,"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","status":"online","status_checked_at":"2025-11-02T02:00:06.609Z","response_time":64,"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","grafana","jwt-authentication","kafka","microservices","mysql","promotheus","redis","spring","spring-boot","springcloud-config"],"created_at":"2025-11-02T16:03:54.325Z","updated_at":"2025-11-02T16:03:58.823Z","avatar_url":"https://github.com/Akash-Adak.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🏦 Banking Management System\n\n\u003cdiv align=\"center\"\u003e\n\n![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2.x-brightgreen?style=for-the-badge\u0026logo=spring\u0026logoColor=white)\n![Java](https://img.shields.io/badge/Java-21-orange?style=for-the-badge\u0026logo=java\u0026logoColor=white)\n![Kafka](https://img.shields.io/badge/Apache%20Kafka-Latest-black?style=for-the-badge\u0026logo=apache-kafka\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n![MySQL](https://img.shields.io/badge/MySQL-8.0-4479A1?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n![Redis](https://img.shields.io/badge/Redis-Latest-DC382D?style=for-the-badge\u0026logo=redis\u0026logoColor=white)\n![Prometheus](https://img.shields.io/badge/Prometheus-Monitoring-E6522C?style=for-the-badge\u0026logo=prometheus\u0026logoColor=white)\n![Grafana](https://img.shields.io/badge/Grafana-Dashboards-F46800?style=for-the-badge\u0026logo=grafana\u0026logoColor=white)\n\n**A production-ready microservices architecture for modern banking operations**\n\n[Features](#-features) • [Quick Start](#-quick-start) • [Architecture](#-architecture) • [Monitoring](#-monitoring) • [Contributing](#-contributing)\n\n\u003c/div\u003e\n\n---\n\n## 🌟 Features\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 🔐 **Security First**\n- RS256 JWT Authentication\n- Redis-backed token revocation\n- Role-based access control (RBAC)\n- API Gateway security layer\n\n### 💼 **Core Banking Operations**\n- Multi-account management\n- Real-time transactions\n- Loan processing \u0026 approvals\n- Balance tracking \u0026 auditing\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n### ⚡ **Event-Driven Architecture**\n- Kafka-based messaging\n- Async notification system\n- Email \u0026 SMS alerts\n- Transaction event streaming\n\n### 📊 **Production Ready**\n- Prometheus metrics\n- Grafana dashboards\n- Health checks \u0026 monitoring\n- CI/CD with GitHub Actions\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## 🏗️ Architecture\n\n```mermaid\ngraph TB\n    Client[🖥️ Client Applications]\n    Gateway[🚪 API Gateway\u003cbr/\u003ePort: 8080]\n    Eureka[📡 Eureka Server\u003cbr/\u003ePort: 8761]\n    \n    Auth[🔐 Auth Service\u003cbr/\u003ePort: 8081]\n    User[👤 User Service\u003cbr/\u003ePort: 8082]\n    Account[💼 Account Service\u003cbr/\u003ePort: 8083]\n    Transaction[💰 Transaction Service\u003cbr/\u003ePort: 8084]\n    Notification[📢 Notification Service\u003cbr/\u003ePort: 8085]\n    Loan[🏦 Loan Service\u003cbr/\u003ePort: 8086]\n    \n    Kafka[📨 Kafka Broker\u003cbr/\u003ePort: 9092]\n    MySQL[(🗄️ MySQL\u003cbr/\u003ePort: 3306)]\n    Redis[(⚡ Redis\u003cbr/\u003ePort: 6379)]\n    \n    Prometheus[📊 Prometheus\u003cbr/\u003ePort: 9090]\n    Grafana[📈 Grafana\u003cbr/\u003ePort: 3000]\n    \n    Client --\u003e Gateway\n    Gateway --\u003e Auth\n    Gateway --\u003e User\n    Gateway --\u003e Account\n    Gateway --\u003e Transaction\n    Gateway --\u003e Loan\n    \n    Auth -.-\u003e|Register| Eureka\n    User -.-\u003e|Register| Eureka\n    Account -.-\u003e|Register| Eureka\n    Transaction -.-\u003e|Register| Eureka\n    Notification -.-\u003e|Register| Eureka\n    Loan -.-\u003e|Register| Eureka\n    \n    Transaction --\u003e|Events| Kafka\n    Account --\u003e|Events| Kafka\n    User --\u003e|Events| Kafka\n    Kafka --\u003e|Consume| Notification\n    \n    Auth --\u003e Redis\n    User --\u003e MySQL\n    Account --\u003e MySQL\n    Transaction --\u003e MySQL\n    Loan --\u003e MySQL\n    \n    Auth --\u003e|Metrics| Prometheus\n    User --\u003e|Metrics| Prometheus\n    Account --\u003e|Metrics| Prometheus\n    Transaction --\u003e|Metrics| Prometheus\n    Notification --\u003e|Metrics| Prometheus\n    Loan --\u003e|Metrics| Prometheus\n    \n    Prometheus --\u003e Grafana\n    \n    style Gateway fill:#4CAF50,stroke:#2E7D32,color:#fff\n    style Kafka fill:#231F20,stroke:#000,color:#fff\n    style Eureka fill:#2196F3,stroke:#1565C0,color:#fff\n    style Prometheus fill:#E6522C,stroke:#C41E00,color:#fff\n    style Grafana fill:#F46800,stroke:#D94600,color:#fff\n    style MySQL fill:#4479A1,stroke:#00546B,color:#fff\n    style Redis fill:#DC382D,stroke:#A41E11,color:#fff\n```\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n```bash\n# Required installations\n- Docker 20.x+\n- Docker Compose 2.x+\n- Git\n```\n\n### 🐳 One-Command Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/Akash-Adak/Banking-system.git\ncd Banking-system\n\n# Start all services\ndocker-compose up -d\n\n# Check service health\ndocker-compose ps\n\n# View logs\ndocker-compose logs -f\n```\n\n### 🎯 Access Points\n\n| Service | URL | Credentials |\n|---------|-----|-------------|\n| 🚪 API Gateway | `http://localhost:8080` | - |\n| 📡 Eureka Dashboard | `http://localhost:8761` | - |\n| 📊 Prometheus | `http://localhost:9090` | - |\n| 📈 Grafana | `http://localhost:3000` | admin / admin |\n| 🗄️ MySQL | `localhost:3306` | root / rootpassword |\n| ⚡ Redis | `localhost:6379` | - |\n| 📨 Kafka | `localhost:9092` | - |\n\n---\n\n## 🐳 Docker Compose Configuration\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📄 Click to view complete docker-compose.yml\u003c/b\u003e\u003c/summary\u003e\n\n```yaml\nversion: '3.8'\n\nservices:\n  # ==================== Infrastructure ====================\n  \n  mysql:\n    image: mysql:8.0\n    container_name: banking-mysql\n    environment:\n      MYSQL_ROOT_PASSWORD: rootpassword\n      MYSQL_DATABASE: banking_db\n    ports:\n      - \"3306:3306\"\n    volumes:\n      - mysql-data:/var/lib/mysql\n    networks:\n      - banking-network\n    healthcheck:\n      test: [\"CMD\", \"mysqladmin\", \"ping\", \"-h\", \"localhost\"]\n      interval: 10s\n      timeout: 5s\n      retries: 5\n\n  redis:\n    image: redis:7-alpine\n    container_name: banking-redis\n    ports:\n      - \"6379:6379\"\n    volumes:\n      - redis-data:/data\n    networks:\n      - banking-network\n    healthcheck:\n      test: [\"CMD\", \"redis-cli\", \"ping\"]\n      interval: 10s\n      timeout: 5s\n      retries: 5\n\n  zookeeper:\n    image: confluentinc/cp-zookeeper:7.5.0\n    container_name: banking-zookeeper\n    environment:\n      ZOOKEEPER_CLIENT_PORT: 2181\n      ZOOKEEPER_TICK_TIME: 2000\n    ports:\n      - \"2181:2181\"\n    networks:\n      - banking-network\n\n  kafka:\n    image: confluentinc/cp-kafka:7.5.0\n    container_name: banking-kafka\n    depends_on:\n      - zookeeper\n    ports:\n      - \"9092:9092\"\n    environment:\n      KAFKA_BROKER_ID: 1\n      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181\n      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092\n      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT\n      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT\n      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1\n    networks:\n      - banking-network\n    healthcheck:\n      test: [\"CMD\", \"kafka-broker-api-versions\", \"--bootstrap-server\", \"localhost:9092\"]\n      interval: 30s\n      timeout: 10s\n      retries: 5\n\n  # ==================== Service Discovery ====================\n  \n  eureka-server:\n    build:\n      context: ./eureka-server\n      dockerfile: Dockerfile\n    container_name: banking-eureka\n    ports:\n      - \"8761:8761\"\n    networks:\n      - banking-network\n    environment:\n      SPRING_PROFILES_ACTIVE: docker\n    healthcheck:\n      test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:8761/actuator/health\"]\n      interval: 30s\n      timeout: 10s\n      retries: 5\n\n  # ==================== Microservices ====================\n  \n  auth-service:\n    build:\n      context: ./auth-service\n      dockerfile: Dockerfile\n    container_name: banking-auth\n    ports:\n      - \"8081:8081\"\n    depends_on:\n      mysql:\n        condition: service_healthy\n      redis:\n        condition: service_healthy\n      eureka-server:\n        condition: service_healthy\n    environment:\n      SPRING_PROFILES_ACTIVE: docker\n      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/banking_db\n      SPRING_DATASOURCE_USERNAME: root\n      SPRING_DATASOURCE_PASSWORD: rootpassword\n      SPRING_REDIS_HOST: redis\n      SPRING_REDIS_PORT: 6379\n      EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://eureka-server:8761/eureka/\n    networks:\n      - banking-network\n    restart: on-failure\n\n  user-service:\n    build:\n      context: ./user-service\n      dockerfile: Dockerfile\n    container_name: banking-user\n    ports:\n      - \"8082:8082\"\n    depends_on:\n      mysql:\n        condition: service_healthy\n      kafka:\n        condition: service_healthy\n      eureka-server:\n        condition: service_healthy\n    environment:\n      SPRING_PROFILES_ACTIVE: docker\n      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/banking_db\n      SPRING_DATASOURCE_USERNAME: root\n      SPRING_DATASOURCE_PASSWORD: rootpassword\n      SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka:29092\n      EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://eureka-server:8761/eureka/\n    networks:\n      - banking-network\n    restart: on-failure\n\n  account-service:\n    build:\n      context: ./account-service\n      dockerfile: Dockerfile\n    container_name: banking-account\n    ports:\n      - \"8083:8083\"\n    depends_on:\n      mysql:\n        condition: service_healthy\n      kafka:\n        condition: service_healthy\n      eureka-server:\n        condition: service_healthy\n    environment:\n      SPRING_PROFILES_ACTIVE: docker\n      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/banking_db\n      SPRING_DATASOURCE_USERNAME: root\n      SPRING_DATASOURCE_PASSWORD: rootpassword\n      SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka:29092\n      EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://eureka-server:8761/eureka/\n    networks:\n      - banking-network\n    restart: on-failure\n\n  transaction-service:\n    build:\n      context: ./transaction-service\n      dockerfile: Dockerfile\n    container_name: banking-transaction\n    ports:\n      - \"8084:8084\"\n    depends_on:\n      mysql:\n        condition: service_healthy\n      kafka:\n        condition: service_healthy\n      eureka-server:\n        condition: service_healthy\n    environment:\n      SPRING_PROFILES_ACTIVE: docker\n      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/banking_db\n      SPRING_DATASOURCE_USERNAME: root\n      SPRING_DATASOURCE_PASSWORD: rootpassword\n      SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka:29092\n      EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://eureka-server:8761/eureka/\n    networks:\n      - banking-network\n    restart: on-failure\n\n  notification-service:\n    build:\n      context: ./notification-service\n      dockerfile: Dockerfile\n    container_name: banking-notification\n    ports:\n      - \"8085:8085\"\n    depends_on:\n      kafka:\n        condition: service_healthy\n      eureka-server:\n        condition: service_healthy\n    environment:\n      SPRING_PROFILES_ACTIVE: docker\n      SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka:29092\n      EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://eureka-server:8761/eureka/\n    networks:\n      - banking-network\n    restart: on-failure\n\n  loan-service:\n    build:\n      context: ./loan-service\n      dockerfile: Dockerfile\n    container_name: banking-loan\n    ports:\n      - \"8086:8086\"\n    depends_on:\n      mysql:\n        condition: service_healthy\n      kafka:\n        condition: service_healthy\n      eureka-server:\n        condition: service_healthy\n    environment:\n      SPRING_PROFILES_ACTIVE: docker\n      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/banking_db\n      SPRING_DATASOURCE_USERNAME: root\n      SPRING_DATASOURCE_PASSWORD: rootpassword\n      SPRING_KAFKA_BOOTSTRAP_SERVERS: kafka:29092\n      EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://eureka-server:8761/eureka/\n    networks:\n      - banking-network\n    restart: on-failure\n\n  # ==================== Monitoring ====================\n  \n  prometheus:\n    image: prom/prometheus:latest\n    container_name: banking-prometheus\n    ports:\n      - \"9090:9090\"\n    volumes:\n      - ./prometheus.yml:/etc/prometheus/prometheus.yml\n      - prometheus-data:/prometheus\n    command:\n      - '--config.file=/etc/prometheus/prometheus.yml'\n      - '--storage.tsdb.path=/prometheus'\n    networks:\n      - banking-network\n    depends_on:\n      - auth-service\n      - user-service\n      - account-service\n      - transaction-service\n      - notification-service\n      - loan-service\n\n  grafana:\n    image: grafana/grafana:latest\n    container_name: banking-grafana\n    ports:\n      - \"3000:3000\"\n    environment:\n      GF_SECURITY_ADMIN_USER: admin\n      GF_SECURITY_ADMIN_PASSWORD: admin\n      GF_INSTALL_PLUGINS: grafana-piechart-panel\n    volumes:\n      - grafana-data:/var/lib/grafana\n      - ./grafana/dashboards:/etc/grafana/provisioning/dashboards\n      - ./grafana/datasources:/etc/grafana/provisioning/datasources\n    networks:\n      - banking-network\n    depends_on:\n      - prometheus\n\nnetworks:\n  banking-network:\n    driver: bridge\n\nvolumes:\n  mysql-data:\n  redis-data:\n  prometheus-data:\n  grafana-data:\n```\n\n\u003c/details\u003e\n\n### 📦 Multi-Stage Dockerfile (All Services)\n\n```dockerfile\n# Build stage\nFROM eclipse-temurin:21-jdk-alpine AS build\nWORKDIR /app\nCOPY pom.xml .\nCOPY src ./src\nRUN apk add --no-cache maven\nRUN mvn clean package -DskipTests\n\n# Runtime stage\nFROM eclipse-temurin:21-jre-alpine\nWORKDIR /app\nCOPY --from=build /app/target/*.jar app.jar\nEXPOSE 8080\nENTRYPOINT [\"java\", \"-jar\", \"app.jar\"]\n```\n\n---\n\n## 📊 Monitoring\n\n### Prometheus Configuration\n\n```yaml\nglobal:\n  scrape_interval: 15s\n  evaluation_interval: 15s\n\nscrape_configs:\n  - job_name: 'spring-actuator'\n    metrics_path: '/actuator/prometheus'\n    static_configs:\n      - targets:\n          - 'auth-service:8081'\n          - 'user-service:8082'\n          - 'account-service:8083'\n          - 'transaction-service:8084'\n          - 'notification-service:8085'\n          - 'loan-service:8086'\n    relabel_configs:\n      - source_labels: [__address__]\n        target_label: instance\n        regex: '([^:]+).*'\n        replacement: '${1}'\n\n  - job_name: 'kafka'\n    static_configs:\n      - targets: ['kafka:9092']\n\n  - job_name: 'mysql'\n    static_configs:\n      - targets: ['mysql:3306']\n\n  - job_name: 'redis'\n    static_configs:\n      - targets: ['redis:6379']\n```\n\n### 📈 Key Metrics Tracked\n\n- **JVM Metrics**: Heap memory, GC pauses, thread count\n- **HTTP Metrics**: Request rate, latency percentiles, error rates\n- **Database**: Connection pool size, query duration\n- **Kafka**: Consumer lag, message throughput\n- **Business Metrics**: Transaction volume, user registrations, loan approvals\n\n---\n\n## 🔧 Useful Commands\n\n```bash\n# Start all services\ndocker-compose up -d\n\n# Start specific service\ndocker-compose up -d auth-service\n\n# View logs\ndocker-compose logs -f [service-name]\n\n# Stop all services\ndocker-compose down\n\n# Stop and remove volumes\ndocker-compose down -v\n\n# Rebuild specific service\ndocker-compose up -d --build auth-service\n\n# Scale a service\ndocker-compose up -d --scale transaction-service=3\n\n# Check service health\ndocker-compose ps\ndocker inspect banking-mysql | grep -i health\n```\n\n---\n\n## 📡 Kafka Topics\n\n| Topic | Producer | Consumer | Description |\n|-------|----------|----------|-------------|\n| `user.registered` | user-service | notification-service | New user registration events |\n| `transaction.completed` | transaction-service | notification-service | Transaction completion events |\n| `account.credit` | account-service | notification-service | Credit/deposit notifications |\n| `account.debit` | account-service | notification-service | Debit/withdrawal notifications |\n| `loan.approved` | loan-service | notification-service | Loan approval notifications |\n| `loan.rejected` | loan-service | notification-service | Loan rejection notifications |\n\n---\n\n## 🔐 Security Features\n\n- **JWT RS256**: Asymmetric encryption with public/private key pairs\n- **Token Revocation**: Redis-based blacklist for logout\n- **Role-Based Access**: ADMIN, USER, MANAGER roles\n- **API Gateway Security**: Centralized authentication\n- **Rate Limiting**: Prevents API abuse\n- **CORS Configuration**: Controlled cross-origin requests\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n4. **Push** to branch (`git push origin feature/amazing-feature`)\n5. **Open** a Pull Request\n\n### Development Guidelines\n\n- Follow Java coding conventions\n- Write unit tests for new features\n- Update documentation for API changes\n- Ensure Docker builds pass\n- Keep commits atomic and meaningful\n\n---\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 👨‍💻 Author\n\n**Akash Adak**  \n🔗 GitHub: [@Akash-Adak](https://github.com/Akash-Adak)  \n📧 Backend Architect | Microservices Specialist\n\n---\n\n## ⭐ Show Your Support\n\nIf you find this project helpful, please give it a ⭐ on GitHub!\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Built with ❤️ using Spring Boot Microservices**\n\n![Banking System](https://img.shields.io/badge/Banking-System-success?style=for-the-badge)\n![Microservices](https://img.shields.io/badge/Architecture-Microservices-blue?style=for-the-badge)\n![Production Ready](https://img.shields.io/badge/Status-Production%20Ready-brightgreen?style=for-the-badge)\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakash-adak%2Fbanking-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakash-adak%2Fbanking-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakash-adak%2Fbanking-system/lists"}