关于社区:Focus-聚焦社区-v020GoFrame-开源社区项目

38次阅读

共计 2447 个字符,预计需要花费 7 分钟才能阅读完成。

此版本对外围性能进行了欠缺,也对大家提的一些倡议及 bug 进行了修复;也诚请各位小伙伴们关注 GoFrame 我的项目倒退,为生态添砖加瓦,加油助力!

更新性能:

  1. 文章回复功能完善:退出了点赞,踩,删除,回复,驳回;
  2. 编辑材料退出了我的音讯模块:此版本次要退出了回复音讯对立展现;
  3. 退出了简略的管理员性能,能够对垃圾文章和垃圾回复进行清理;
  4. 退出 Docker Compose 一键部署,极大不便 linux 环境部署;
  5. 对网友的一些倡议及上一版本 bug 进行了修复;

零、对于 Focus

Focus 聚焦社区 GoFrame社区我的项目,采纳了简洁弱小的 GoFrame 作为后端 WEB 框架,因为前台零碎须要 SEO 因而应用了 GF 自带 template 模板引擎,数据库用 MySQL,前端应用jQuery/bootstrap 框架。

一、源码地址

  • github:https://github.com/gogf/focus
  • gitee:https://gitee.com/johng/focus

二、演示地址

请不要歹意发送垃圾数据哦~ 地址:https://focus.goframe.org/

三、装置部署

装置

1、下载我的项目源码:git clone https://github.com/gogf/focus

2、创立 focus 数据库:

CREATE DATABASE `focus` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';

3、运行 documentfocus.sql初始化数据库SQL

4、复制 configconfig.example.tomlconfig.toml 配置文件,其余配置依据须要自行调整。

# 数据库配置
[database]
    link  = "mysql:root:123456@tcp(127.0.0.1:3306)/focus"
    debug = true

5、运行:go run main.go

6、拜访 http://127.0.0.1:8199 即可看到登录页面,默认账号 / 明码:goframe / 123456

一键部署

一键部署仅反对 linux,并且须要先实现 docker-compose 装置;

git clone https://github.com/gogf/focus && \\
 cd focus && chmod 755 focus.sh && ./focus.sh build

更多命令,请执行./focus help

传统部署

1、装置 gf-cli 工具链,详情查看:开发工具

2、打包命令:执行 gf build 即可,具体配置请参考:build 穿插编译

3、打包后果:默认 linux/macos/windows 三个版本。

bin
├── darwin_amd64
│   └── focus
├── linux_amd64
│   └── focus
└── windows_amd64
    └── focus.exe

4、将 config.tomlfocus放到同一级目录,启动 focus 即可。

公布阐明:

默认配置文件配置中,会将 public,template 目录进行二进制打包,随着可执行文件一起公布。因而,公布时仅须要将 config.tomlfocus拷贝到指标服务器运行即可。此外,您也能够思考将特定的配置文件用打包公布,那么公布时仅须要公布 focus 可执行文件即可。

如果您想同时打包配置文件到可执行文件中,那么您能够同时参考一下对于默认配置文件读取的批改形式:配置管理里 #默认文件批改

四、我的项目构造

├── app
│ ├── dao
│ ├── model
│ ├── shared
│ └── system
│     ├── admin
│     │ └── internal
│     └── index
│         └── internal
│             ├── api
│             ├── define
│             └── service
├── config
├── document
├── library
├── packed
├── public
├── template
├── upload
├── Dockerfile
├── go.mod
└── main.go

五、目录阐明

目录 / 文件名称 阐明 形容
app 业务逻辑层 所有的业务逻辑寄存目录。
dao 数据拜访 数据库的拜访操作,仅蕴含最根底的数据库 CURD 办法。
model 数据模型 存放数据相干的实体构造定义。
system 零碎模块 外部可能蕴含多个子系统,不同子系统之间资源互相隔离。
    – index 前端页面 子系统,前端页面。
        – internal 外部模块 零碎外部模块,仅供以后外部零碎调用,无奈在零碎间共享。
          – api 业务接口 零碎外部接管 / 解析用户输出参数的入口 / 接口层
          – define 构造定义 零碎外部的输出、输入数据结构定义。
          – service 逻辑封装 零碎外部业务逻辑封装,实现特定的业务需要。
config 配置管理 所有的配置文件寄存目录。
docker 镜像文件 Docker 镜像相干依赖文件,脚本文件等等。
document 我的项目文档 Documentation 我的项目文档,如: 设计文档、帮忙文档等等。
library 公共库包 公共的性能封装包,往往不蕴含业务需要实现。
packed 打包目录 将资源文件打包的 Go 文件寄存在这里,boot包初始化时会主动调用。
public 动态目录 仅有该目录下的文件能力对外提供动态服务拜访。
template 模板文件 MVC 模板文件寄存的目录。
Dockerfile 镜像形容 云原生时代用于编译生成 Docker 镜像的形容文件。
go.mod 依赖治理 应用 Go Module 包治理的依赖形容文件。
main.go 入口文件 程序入口文件。

六、框架设计

因为采纳了弱小易用的 GoFrame 开发框架,能够参考框架的一些设计介绍。

  • 代码分层设计
  • 对象封装设计
  • Context: 业务流程共享变量
  • 单利用多零碎设计
  • 更多:框架设计

七、我的项目截图

图 1. 社区首页

图 2. 登录页面


图 3. 注册页面


图 4. 公布 / 编辑页面

图 5. 内容详情

图 6. 搜寻页面

图 7. 个人主页

图 8. 编辑材料

八、数据库表设计

九、功能模块进度

十、Focus 文档

更多材料请移步:Focus 聚焦社区文档

正文完
 0