Focus 聚焦社群 v0.2.0,GoFrame 開源社群專案

FLY的狐狸發表於2021-02-07

此版本對核心功能進行了完善,也對大家提的一些建議及bug進行了修復;也誠請各位小夥伴們關注GoFrame專案發展,為生態添磚加瓦,加油助力!

更新功能:

  1. 文章回復功能完善:加入了點贊,踩,刪除,回覆,採納;
  2. 編輯資料加入了我的訊息模組:此版本主要加入了回覆訊息統一展示;
  3. 加入了簡單的管理員功能,可以對垃圾文章和垃圾回覆進行清理;
  4. 加入Docker Compose一鍵部署,極大方便linux環境部署;
  5. 對網友的一些建議及上一版本bug進行了修復;

零、關於Focus

Focus聚焦社群GoFrame社群專案,採用了簡潔強大的GoFrame作為後端WEB框架, 由於前臺系統需要SEO因此使用了GF自帶template模板引擎,資料庫用MySQL,前端使用jQuery/bootstrap框架。

一、原始碼地址

二、演示地址

請不要惡意傳送垃圾資料哦~ 地址: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開發框架,可以參考框架的一些設計介紹。

七、專案截圖

圖1. 社群首頁

圖2. 登入頁面


圖3. 註冊頁面


圖4. 釋出/編輯頁面

圖5. 內容詳情

圖6. 搜尋頁面

圖7. 個人主頁

圖8. 編輯資料

八、資料庫表設計

九、功能模組進度

十、Focus文件

更多資料請移步:Focus聚焦社群文件

相關文章