From 7ec0670121fde79e585c8ddf157746dd586784d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=A7=E9=A9=8A?= Date: Sat, 8 Feb 2025 14:06:19 +0800 Subject: [PATCH] chore: add readme md --- readme.md | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) diff --git a/readme.md b/readme.md index e69de29..c6a9749 100644 --- a/readme.md +++ b/readme.md @@ -0,0 +1,133 @@ +# 會員服務:用戶帳號管理系統 + +會員服務是一個完整的用戶帳號管理系統, 負責用戶身份驗證、帳號創建及個人資料管理。 +
+此服務為需要用戶管理功能的應用程式提供穩健的後端,支援多種身份驗證方式,並可與外部服務整合。 + +本系統採用微服務架構,利用 MongoDB 作為資料存儲、Redis 作為快取,並使用 Etcd 進行分散式配置管理。其功能涵蓋用戶註冊、帳號綁定、個人資料管理,以及支援 Google 和 LINE 等第三方身份驗證服務。 + +## 核心功能 + +- 用戶帳號的建立與管理 +- 多種身份驗證方式(Email、手機、Google、LINE) +- 跨平台帳號綁定 +- 用戶個人資料管理 +- 生成及驗證 綁定以及忘記密碼的 code +- 可擴展的微服務架構 +- 整合 MongoDB、Redis 和 Etcd +- 支援 Docker 進行部署與擴展 +## Repository Structure + +``` +. +├── docker-compose.yml +├── etc/ +│ ├── member.example.yaml +│ └── member.yaml +├── internal/ +│ ├── config/ +│ ├── logic/account/ +│ ├── server/account/ +│ └── svc/ +├── member.go +├── pkg/ +│ ├── domain/ +│ ├── mock/ +│ ├── repository/ +│ └── usecase/ +└── readme.md +``` + +### 主要檔案與目錄: +- `docker-compose.yml`:定義多容器 Docker 環境 +- `etc/member.yaml`:會員服務的設定檔 +- `internal/`:內部應用程式代碼 + - `logic/account/`:帳號相關的業務邏輯 + - `server/account/`:帳號服務的 gRPC 伺服器實作 +- `pkg/`:可重複使用的程式碼模組 + - `domain/`:const、interface、error code、redis key 等定義 + - `repository/`:資料存取層的實作 + - `usecase/`:使用案例實作 +- `member.go`:會員服務的主要進入點 + +## 使用說明 + +### 先決條件 +- Go 1.23.1 或更新版本 +- Docker 及 Docker Compose +- MongoDB 8.0 +- Etcd 3.5.5 +- Redis 7.0 + +### 安裝依賴項目 +```bash + +go install github.com/zeromicro/go-zero/tools/goctl@latest // goctl 安裝 +go install golang.org/x/tools/cmd/goimports@latest + +# binary will be $(go env GOPATH)/bin/golangci-lint +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.63.4 + +golangci-lint --version +```` + + + +### 本地開發 + +1. 克隆專案: + ```bash + git clone git@git.30cm.net:digimon/app-cloudep-member-server.git + cd app-cloudep-member-server + ``` + +2. 複製範例設定檔並根據需求修改: + ```bash + cp etc/member.example.yaml etc/member.yaml + ``` + +4. 執行會員服務: + ```golang + go mod tidy + go run member.go + ``` + +### 設定 +etc/member.yaml 是會員服務的主要設定檔,關鍵設定包括: +- `ListenOn`: The address and port the service listens on +- `Etcd`: Configuration for Etcd connection +- `Cache`: Redis cache configuration +- `Mongo`: MongoDB connection details +- `Bcrypt`: Password hashing cost +- `GoogleAuth`: Google authentication settings +- `LineAuth`: LINE authentication settings + +Ensure all configuration values are set correctly before starting the service. + + +### Make + +1. To run the test suite: +```bash +make test +``` + +2. Golint and sort import +```bash +make fmt +``` + +3. 格式化與 lint +```bash +make fmt +``` + +4. 產生 mock. +```bash +make mock-gen +``` + +5. 產生 rpc data(有改io的話). +```bash +make gen-rpc +``` \ No newline at end of file