All Projects → Away0x → Gin_bbs

Away0x / Gin_bbs

Gin BBS App

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects
golang
3204 projects

Projects that are alternatives of or similar to Gin bbs

Goweibo
Go Weibo App
Stars: ✭ 243 (+97.56%)
Mutual labels:  gorm, gin, sass
Snake
🐍 一款小巧的基于Go构建的开发框架,可以快速构建API服务或者Web网站进行业务开发,遵循SOLID设计原则
Stars: ✭ 615 (+400%)
Mutual labels:  gorm, gin
Go Gin Example
An example of gin
Stars: ✭ 4,992 (+3958.54%)
Mutual labels:  gorm, gin
Goforum
Let's go a forum
Stars: ✭ 23 (-81.3%)
Mutual labels:  gorm, gin
golang api
This is a source code of my golang restful api series on youtube.
Stars: ✭ 36 (-70.73%)
Mutual labels:  gin, gorm
Go Project Sample
Introduce the best practice experience of Go project with a complete project example.通过一个完整的项目示例介绍Go语言项目的最佳实践经验.
Stars: ✭ 344 (+179.67%)
Mutual labels:  gorm, gin
Wblog
基于gin+gorm开发的个人博客项目
Stars: ✭ 763 (+520.33%)
Mutual labels:  gorm, gin
Go-bjut
A bbs system.
Stars: ✭ 60 (-51.22%)
Mutual labels:  gin, gorm
Ginbro
Converting a MySQL database'schema to a RESTful golang APIs app in the fastest way
Stars: ✭ 97 (-21.14%)
Mutual labels:  gorm, gin
Ugin
UGin is an API boilerplate written in Go (Golang) with Gin Framework.
Stars: ✭ 110 (-10.57%)
Mutual labels:  gorm, gin
Logrus
Hooks for logrus logging
Stars: ✭ 110 (-10.57%)
Mutual labels:  gorm, gin
lyanna
go的gin框架实现一个博客系统
Stars: ✭ 39 (-68.29%)
Mutual labels:  gin, gorm
goft-gin
基于gin的开发脚手架
Stars: ✭ 108 (-12.2%)
Mutual labels:  gin, gorm
Go Admin
基于Gin + Vue + Element UI的前后端分离权限管理系统脚手架(包含了:多租户的支持,基础用户管理功能,jwt鉴权,代码生成器,RBAC资源控制,表单构建,定时任务等)3分钟构建自己的中后台项目;文档:https://doc.go-admin.dev Demo: https://www.go-admin.dev Antd beta版本:https://preview.go-admin.dev
Stars: ✭ 5,439 (+4321.95%)
Mutual labels:  gin, gorm
Go-Gin-Api
基于golang开源框架 gin封装的api框架
Stars: ✭ 42 (-65.85%)
Mutual labels:  gin, gorm
Go Gin Api
基于 Gin 进行模块化设计的 API 框架,封装了常用功能,使用简单,致力于进行快速的业务研发。比如,支持 cors 跨域、jwt 签名验证、zap 日志收集、panic 异常捕获、trace 链路追踪、prometheus 监控指标、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、gormgen 代码生成工具、graphql 查询语言、errno 统一定义错误码、gRPC 的使用 等等。
Stars: ✭ 730 (+493.5%)
Mutual labels:  gorm, gin
Golang Gin Realworld Example App
Exemplary real world application built with Golang + Gin
Stars: ✭ 1,780 (+1347.15%)
Mutual labels:  gorm, gin
gt-crud
gin+gorm+mysql+api[两步自动crud]
Stars: ✭ 15 (-87.8%)
Mutual labels:  gin, gorm
go-12factor-example
Example the 12factor app using golang
Stars: ✭ 20 (-83.74%)
Mutual labels:  gin, gorm
Duckygo
一个同时支持Session以及JWT的高性能高可用 Golang Restful API 脚手架 !
Stars: ✭ 57 (-53.66%)
Mutual labels:  gorm, gin

Gin BBS App

项目目录结构

展开查看

├── app              项目核心逻辑代码
│    ├── controllers 控制器
│    ├── models      模型
│    ├── auth        用户相关
│    ├── cache       缓存
│    ├── cron        定时任务
│    ├── helpers     帮助方法
│    ├── policies    权限
│    ├── requests    参数验证
│    ├── services    复杂查询
│    └── viewmodels  数据转换
│
├── bootstrap        各组件初始化
│
├── config           配置中心
│
├── database         数据库
│    └── factory     数据 mock
│
├── pkg              项目依赖
│
├── public           项目静态文件
│
├── docs             swagger api doc
│
├── test             测试文件
│
├── resources        前端源码
│    └── view        go 模板文件
│
├── routes           路由
│    └── middleware  中间件
│    └── routes.go   路由注册
│    └── api.go      api 路由注册
│    └── web.go      页面路由注册
│
├── storage          存放日志等文件
│
├── main.go          项目入口
│
├── config.yaml      项目配置
│
├── deploy.sh        部署脚本
│
├── Makefile         Makefile 文件
│
├── vue-admin-app    vue 管理员后台前端源码
│
├── taro-app         taro web app 源码(小程序 ... 端)
│
└── flutter_app      flutter app 源码(Android iOS 端)

启动

# 需先安装 fresh (https://github.com/gravityblast/fresh)
# go get github.com/pilu/fresh

# 启动前建议配置环境变量: GOPROXY=https://goproxy.io

cd gin_bbs
cp ./config.example.yaml ./config.yaml
make dev # 或者也可直接 fresh -c ./fresh.conf
# 项目相关命令参见 Makefile

数据库配置需要修改 config.yaml

DB:
  CONNECTION: mysql
  HOST: 127.0.0.1
  PORT: 3306
  DATABASE: gin_bbs
  USERNAME: your_username
  PASSWORD: your_password

如果运行的是 debug 模式,数据库名应该为 gin_bbs_debug

实现功能

  • [x] CSRF 验证
  • [x] flash 消息闪现
  • [x] 记忆上次表单提交的数据
  • [x] 参数校验模块
  • [x] 命名路由
  • [x] 分页
  • [x] 发送邮件
  • [x] 用户权限模块
  • [x] 日志
  • [x] 前端构建 (typescript、sass ...)
  • [x] 验证码
  • [x] pongo2 template
  • [x] 文件上传
  • [x] 发送短信
  • [x] 微信登录
  • [x] swagger api 文档
  • [x] JWT (刷新、黑名单)
  • [x] 接口测试
  • [x] 推送
  • [ ] vue 管理员后台系统
  • [ ] taro web 移动端 (小程序 ... 端)
  • [ ] flutter 移动端 app (Android iOS 端)

角色

角色的权限从低到高,高权限的用户将包含权限低的用户权限

  • 游客 —— 没有登录的用户
  • 用户 —— 注册用户,没有多余权限
  • 管理员 —— 辅助超级管理员做社区内容管理
  • 站长 —— 权限最高的用户角色

信息结构

  • 用户 —— 模型名称 User,论坛为 UGC 产品,所有内容都围绕用户来进行
  • 话题 —— 模型名称 Topic,LaraBBS 论坛应用的最核心数据,有时我们称为帖子
  • 分类 —— 模型名称 Category,话题的分类,每一个话题必须对应一个分类,分类由管理员创建
  • 回复 —— 模型名称 Reply,针对某个话题的讨论,一个话题下可以有多个回复

用例

1. 游客

  • 游客可以查看所有话题列表
  • 游客可以查看某个分类下的所有话题列表
  • 游客可以按照发布时间和最后回复时间进行话题列表排序
  • 游客可以查看单个话题内容
  • 游客可以查看话题的所有回复
  • 游客可以通过注册按钮创建用户(用户注册,游客专属)
  • 游客可以查看用户的个人页面

2. 用户

  • 用户可以在某个分类下发布话题
  • 用户可以编辑自己发布的话题
  • 用户可以删除自己发布的话题
  • 用户可以回复所有话题
  • 用户可以删除自己的回复
  • 用户可以编辑自己的个人资料
  • 用户可以接收话题新回复的通知

3. 管理员

  • 管理员可以访问后台
  • 管理员可以编辑所有的话题
  • 管理员可以删除所有的回复
  • 管理员可以编辑分类

4. 站长

  • 站长可以编辑用户
  • 站长可以删除用户
  • 站长可以修改站点设置
  • 站长可以删除分类

1

2

3

4

5

6

7

8

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].