https://github.com/xssxx/simple-bank
implemented of go backend from techschool course
https://github.com/xssxx/simple-bank
docker gin grpc postgresql redis sqlc
Last synced: 2 months ago
JSON representation
implemented of go backend from techschool course
- Host: GitHub
- URL: https://github.com/xssxx/simple-bank
- Owner: xssxx
- Created: 2025-04-06T21:59:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-06T22:00:13.000Z (about 1 year ago)
- Last Synced: 2025-06-14T10:40:20.682Z (12 months ago)
- Topics: docker, gin, grpc, postgresql, redis, sqlc
- Language: Makefile
- Homepage:
- Size: 48.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π° Simple Bank
A modern backend system for a simple banking application, built with Go and a solid microservice architecture.
## π Tech Stack
- π [Gin](https://github.com/gin-gonic/gin) β HTTP Web Framework
- π’οΈ [PostgreSQL](https://www.postgresql.org/) β Relational Database
- π°οΈ [gRPC](https://grpc.io/) β High-performance RPC framework
- π³ [Docker](https://www.docker.com/) β Containerization
- βΈοΈ [Kubernetes](https://kubernetes.io/) β Container Orchestration
- β‘ [Redis](https://redis.io/) β In-memory Data Store (Caching & Session)
---
## π¦ Features
- π¦ Account creation & management
- πΈ Secure money transfers between accounts
- π User authentication with token-based auth
- π Database migrations with version control
- π‘ gRPC service for high-performance APIs
- π§ͺ Unit & integration tests for reliability
---
## π οΈ Getting Started
1. **Clone the project**
```bash
git clone https://github.com/your-username/simple-bank.git
cd simple-bank
```
2. **Set up environment variables**
Create a .env file:
```env
POSTGRES_USER=root
POSTGRES_PASSWORD=root
POSTGRES_DB=simple_bank
POSTGRES_PORT=5432
POSTGRES_HOST=localhost
```
3. **Start PostgreSQL with Docker**
```bash
make postgres
```
4. **Create and migrate the database**
```bash
make createdb
make migrateup
```
5. **Run the server**
```bash
go run main.go
```