{"id":15074414,"url":"https://github.com/buemura/minibank","last_synced_at":"2026-02-08T17:03:18.562Z","repository":{"id":250969238,"uuid":"835959720","full_name":"buemura/minibank","owner":"buemura","description":"Mini Bank is a microservices-based application that provides a simple banking system with features such as account creation, balance transfer, and account retrieval. The application is designed using a microservices architecture, where each service is responsible for a specific business function.","archived":false,"fork":false,"pushed_at":"2024-08-17T03:10:09.000Z","size":1546,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-19T21:55:55.750Z","etag":null,"topics":["docker","golang","grpc","microservice","rabbitmq"],"latest_commit_sha":null,"homepage":"","language":"Go","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/buemura.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-07-30T21:52:01.000Z","updated_at":"2024-08-17T03:10:13.000Z","dependencies_parsed_at":"2024-08-17T03:50:11.197Z","dependency_job_id":null,"html_url":"https://github.com/buemura/minibank","commit_stats":{"total_commits":50,"total_committers":2,"mean_commits":25.0,"dds":"0.040000000000000036","last_synced_commit":"67756f06464d80006398a1ed4bc6e89e8e51ff72"},"previous_names":["buemura/minibank"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/buemura/minibank","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buemura%2Fminibank","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buemura%2Fminibank/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buemura%2Fminibank/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buemura%2Fminibank/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buemura","download_url":"https://codeload.github.com/buemura/minibank/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buemura%2Fminibank/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29237113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T14:18:14.570Z","status":"ssl_error","status_checked_at":"2026-02-08T14:18:14.071Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","golang","grpc","microservice","rabbitmq"],"created_at":"2024-09-25T03:32:52.861Z","updated_at":"2026-02-08T17:03:18.545Z","avatar_url":"https://github.com/buemura.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mini Bank\n\nMini Bank is a microservices-based application that provides a simple banking system with features such as account creation, balance transfer, and account retrieval. The application is designed using a microservices architecture, where each service is responsible for a specific business function.\n\n## Architecture\n\nThe architecture of Mini Bank consists of the following microservices:\n\n1. `svc-transaction`: This service is responsible for handling all the transaction-related operations, such as `DEPOSIT`, `TRANSFER`, and `WITHDRAWAL`. It serves `GRPC` methods.\n2. `svc-account`: This service manages the account-related operations, such as account details retrieval, creating, and updating balances. It serves `GRPC` methods.\n3. `api-gateway`: This service is responsible for centralizing user requests and orchestrating redirects to the necessary services. It serves `HTTP` endpoints.\n\n## Diagrams\n\n### Architecture Diagram\n\n![Architecture](docs/arch.png)\n\n### Sequence Diagram for Transfer operation\n\n![Transfer Sequence](docs/transfer-sequence.png)\n\n## Getting Started\n\nTo get started with Mini Bank, follow these steps:\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/buemura/minibank.git\n   ```\n\n2. Setup environment\n\n   ```bash\n   sh env_up.sh\n\n   ```\n\n3. Install services dependencies\n\n   ```bash\n    # API gateway\n    cd apps/api-gateway \u0026\u0026 go mod tidy \u0026\u0026 cp .env.example .env\n    # Account Service\n    cd apps/svc-account \u0026\u0026 go mod tidy \u0026\u0026 cp .env.example .env\n    # Transaction Service\n    cd apps/svc-transaction \u0026\u0026 go mod tidy \u0026\u0026 cp .env.example .env\n   ```\n\n4. Start services\n   ```bash\n    # API gateway\n    cd apps/api-gateway \u0026\u0026 go run cmd/http/main.go\n    # Account Service GRPC\n    cd apps/svc-account \u0026\u0026 go run cmd/grpc/main.go\n    # Transaction Service GRPC\n    cd apps/svc-transaction \u0026\u0026 go run cmd/grpc/main.go\n    # Transaction Service Consumer\n    cd apps/svc-transaction \u0026\u0026 go run cmd/consumer/main.go\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuemura%2Fminibank","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuemura%2Fminibank","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuemura%2Fminibank/lists"}