此版本對核心功能進行了完善,也對大家提的一些建議及bug進行了修復;也誠請各位小夥伴們關注GoFrame
專案發展,為生態添磚加瓦,加油助力!
更新功能:
- 文章回復功能完善:加入了點贊,踩,刪除,回覆,採納;
- 編輯資料加入了我的訊息模組:此版本主要加入了回覆訊息統一展示;
- 加入了簡單的管理員功能,可以對垃圾文章和垃圾回覆進行清理;
- 加入Docker Compose一鍵部署,極大方便linux環境部署;
- 對網友的一些建議及上一版本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、執行document
下focus.sql
初始化資料庫SQL
。
4、複製config
下config.example.toml
為config.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.toml
和focus
放到同一級目錄,啟動focus
即可。
釋出說明:
預設配置檔案配置中,會將public,template
目錄進行二進位制打包,隨著可執行檔案一同釋出。因此,釋出時僅需要將config.toml
和focus
複製到目標伺服器執行即可。此外,您也可以考慮將特定的配置檔案用打包釋出,那麼釋出時僅需要釋出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聚焦社群文件