https://github.com/galadeat/bank-sim
Scalable banking backend built with Go and gRPC. Starts with account services, designed to evolve into a full financial simulation.
https://github.com/galadeat/bank-sim
account-management backend banking fintech go golang grpc simulation
Last synced: about 1 month ago
JSON representation
Scalable banking backend built with Go and gRPC. Starts with account services, designed to evolve into a full financial simulation.
- Host: GitHub
- URL: https://github.com/galadeat/bank-sim
- Owner: galadeat
- License: mit
- Created: 2025-09-18T11:39:36.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-18T11:52:22.000Z (9 months ago)
- Last Synced: 2025-09-18T13:43:38.727Z (9 months ago)
- Topics: account-management, backend, banking, fintech, go, golang, grpc, simulation
- Language: Go
- Homepage:
- Size: 8.79 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ฆ bank-sim
A simulation project demonstrating interaction between two microservices (user and account). It highlights clean architecture, gRPC integration, and a modern clientโserver setup.
---
## ๐ Quickstart
Quickly launch both server and client with:
```
make quickstart
```
---
## ๐ REPL UI
The client includes an interactive REPL that simulates account management.
Through simple menus you can:
- Create and manage users
- Open and manage accounts
- Perform deposits and withdrawals
- Query balances in real time
---
## ๐ Tech Stack
- **Go 1.24+**
- **gRPC**
---
## ๐ Project Structure
```
.
โโโ bankAccount/
โโโ api/
โ โโโ proto/ # gRPC contracts
โ โโโ account/ # account service (v1, v2)
โ โโโ common/ # common types (Money, etc)
โ โโโ reporting/ # reporting service
โ โโโ transaction/ # transaction service
โ โโโ user/ # user service
โโโ cmd/
โ โโโ client
โ โโโ server
โโโ internal/
โ โโโ account
โ โโโ repl
โ โโโ user
โโโ mocks/
โโโ pkg/
โ โโโ clients
โ โโโ logger
โโโ tests/
โ โโโ integration
โโโ README.md
โโโ go.mod
โโโ go.sum
โโโ .env.example
โโโ .gitignore
```
---
## ๐ฅ๏ธ Server
```
make run-server
```
## ๐ฌ Client
```
make run-client
```
---
## โ
Tests
```
make tests
```
---
## ๐ง Features
- **Create** accounts with unique UUIDs
- **Retrieve** accounts by ID
- **Store** data in memory using Go maps
- **Interact** through an intuitive REPL for better UX
- **Deposit** and **Withdraw** money from accounts
- **Communicate** via the modern gRPC client API
## ๐ฎ Future Plans
This project will evolve into a more realistic banking simulation. Planned features include:
- Persistent storage (e.g., PostgreSQL or MongoDB)
- REST gateway via grpc-gateway
- Authentication and TLS encryption
- Transaction support (deposits, withdrawals, transfers)
- Dockerization and CI/CD pipelines