V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
johng
V2EX  ›  Go 编程语言

Focus 聚焦社区 v0.1.0 beta, GoFrame 开源社区项目

  •  
  •   johng · 2021-01-07 20:32:25 +08:00 · 1825 次点击
    这是一个创建于 1445 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Focus聚焦社区v0.1.0 beta版本发布啦~!新年第一发!第一次给你!~

    此版本为社区的第一个发布版本,还有很多待完善的功能等待大家发现。也诚请各位小伙伴们关注GoFrame项目发展,为生态添砖加瓦,加油助力!

    零、关于 Focus

    Focus 聚焦社区GoFrame社区项目,采用了简洁强大的GoFrame作为后端WEB框架, 由于前台系统需要SEO因此使用了GF自带template模板引擎,数据库用MySQL,前端使用jQuery/bootstrap框架。

    一、源码地址

    二、演示地址

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

    三、安装部署

    安装

    1 、下载项目源码: git clone [https://github.com/gogf/focus]( 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

    部署

    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开发框架,可以参考框架的一些设计介绍。

    七、项目截图

    图 1. 社区首页

    图 2. 登录页面

    图 3. 注册页面

    图 4. 发布 /编辑页面

    图 5. 内容详情

    图 6. 搜索页面

    图 7. 个人主页

    图 8. 编辑资料

    八、数据库表设计

    image

    九、功能模块进度

    4 条回复    2021-01-07 22:55:25 +08:00
    solider245
        1
    solider245  
       2021-01-07 22:31:39 +08:00
    有现成的部署案例吗?想看看
    lemayi
        2
    lemayi  
       2021-01-07 22:42:51 +08:00
    强烈支持!!!
    Lemeng
        3
    Lemeng  
       2021-01-07 22:54:16 +08:00
    支持一下,收藏支持
    ArJun
        4
    ArJun  
       2021-01-07 22:55:25 +08:00
    好东西啊,关注一波
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   994 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:38 · PVG 02:38 · LAX 10:38 · JFK 13:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.