go-server

command module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 27, 2019 License: MIT Imports: 2 Imported by: 0

README

Build Status Coverage Status Go Report Card License Repo Size

Golang 实现的基础服务

这是我在闲暇时间写的一些基础服务, 基本上大多数后端服务都需要用到的。

它用来帮助我快速开始一个项目,而不是重头开始写,浪费大量时间和精力。

想到哪里写哪里, 我会不断的完善它。

为什么不写成微服务形式,模块分离? 项目体量没有达到。

技术栈

  • Web 框架 Gin
  • 数据库 Postgres
  • 缓存 Redis
  • 身份认证机制 JWT/oAuth2
  • 数据库操作 GORM
  • 消息队列 nsq
  • RBAC 的鉴权模型
  • Docker 一键启动应用

包含哪些模块?

模块 说明
验证模块 包含注册/登陆/账号激活/忘记密码/双重身份认证
用户模块 包含用户信息的模块, 用户资料/登陆密码/交易密码/用户邀请
授权模块 oAuth 授权登陆, 目前只支持 Google 账号登陆, 未来可能包括 微信/QQ/Github登陆
钱包模块 包含钱包的相关操作,钱包转账/结算
财务模块 所有涉及到钱的的操作都会被记录在此, 例如转账记录/消费记录
横幅模块 对于网站相关 Banner 的操作,可根据不同的平台设置不同的横幅,例如 PC 端大屏的与 APP 不相同
新闻模块 新闻公告类的相关操作, CMS 内容
系统通知 系统通知的相关模块,主要用于管理员发送给全员的通知
消息模块 用户的个人消息模块, 主要用于管理员发送给某个用户的通知
地址模块 用户设置相关的地址模块,例如收货地址
上传模块 包含用户上传文件/图片的相关操作, 包含 hash 去重/图片压缩/生成缩略图
下载模块 包含用户下载文件/图片的相关操作
邮件模块 关于邮件的相关操作,例如发送邮件, 用于发送验证码之类
静态文件模块 用户访问服务器的静态文件, 放置与 /public 目录下的文件
反馈模块 用户反馈模块,用户建议反馈/BUG反馈
页面菜单模块 定义后台页面菜单/页面权限
日志模块 系统日志/登陆日志/操作日志/异常日志

如何运行?

首选确保你安装有:

再根据以下命令运行

> go get -v github.com/axetroy/go-server # 拉取项目
> cd $GOPATH/github/axetroy/go-server # 切换到项目目录
> docker-compose -f docker-compose.mq.yml up # 启动消息队列
> docker-compose up # 启动数据库和HTTP服务
> go run ./cmd/message_queue/main.go # 启动消息队列
> go run ./cmd/user/main.go # 运行用户端的接口服务
> go run ./cmd/admin/main.go # 运行管理员端的接口服务

可以通过 .env 文件进行配置

如何构建?

make build

在生成的 bin 目录下查找对应平台的可执行文件运行即可

如何测试?

make test

License

The MIT License

Documentation

Overview

Copyright 2019 Axetroy. All rights reserved. MIT license.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL