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

此版本对外围性能进行了欠缺,也对大家提的一些倡议及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聚焦社区文档

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理