Skip to content

Zhonghe-zhao/Simple_bank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Bank System

一个使用 Go 构建的现代化银行系统,提供完整的账户管理、安全认证和资金交易功能。项目采用分层架构设计,实现了 RESTful API 和 gRPC 服务,并包含完善的测试和部署方案。

核心功能

  • 用户认证系统

    • 用户注册与登录(密码加盐哈希存储)
    • 基于 Paseto 的无状态认证(替代传统 JWT)
    • Token 自动刷新与注销机制
  • 账户管理系统

    • 账户创建与信息查询
    • 余额查询与交易记录
    • 多账户资金转账(支持并发操作)
  • 交易处理系统

    • 事务处理保证 ACID 特性
    • 行级锁防止并发冲突
    • 异步任务处理(邮件通知等)

技术栈

类别 技术选型
开发语言 Go
Web 框架 Gin
数据库 PostgreSQL (使用 sqlc 生成类型安全代码)
缓存 Redis 7
认证 Paseto
RPC gRPC + Protocol Buffers
异步任务 Asynq (基于 Redis 的任务队列)
日志 Zerolog (结构化日志)
测试 Go test + testify + gomock
部署 Docker + Docker Compose
CI/CD GitHub Actions (自动化测试和镜像构建)

项目结构

.
├── api/                  # RESTful API 控制器层
├── gapi/                 # gRPC 服务实现
├── db/                   # 数据库相关
│   ├── sqlc/             # sqlc 生成的类型安全查询
│   ├── repository/       # 数据库操作抽象层
│   └── migrations/       # 数据库迁移脚本
├── proto/                # Protocol Buffers 定义
│   └── service.proto     # gRPC 服务接口定义
├── worker/               # 异步任务处理器
├── token/                # 认证模块
│   └── paseto.go         # Paseto 实现
├── config/               # 应用配置
├── docs/                 # 文档资源
│   ├── db.dbml           # 数据库结构图
│   └── schema.sql        # 数据库建表语句
├── docker-compose.yaml   # 开发环境容器编排
├── Dockerfile            # 应用容器化构建
└── Makefile              # 常用命令快捷入口

数据库设计

数据库关系图

主要数据表:

  • users - 用户信息表
  • accounts - 银行账户表
  • entries - 账户流水记录
  • transfers - 转账交易记录
  • sessions - 用户会话信息

开发环境搭建

启动步骤

  1. 克隆仓库

    git clone https://github.com/Zhonghe-zhao/Simple_bank.git
    cd Simple_bank
  2. 启动依赖服务

    docker-compose up -d postgres redis
  3. 运行数据库迁移

    make migrateup
  4. 启动应用

    make server
  5. 运行测试

    make test

API 文档

服务启动后,可以通过以下方式访问 API 文档:

测试覆盖

项目包含多层测试:

  • 单元测试 (80%+ 覆盖率)
  • 集成测试 (数据库操作)
  • API 端到端测试

运行完整测试套件:

make test

生产部署

  1. 构建生产镜像:

    docker-compose -f docker-compose.prod.yaml build
  2. 启动服务:

    docker-compose -f docker-compose.prod.yaml up -d

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published