v1.0
系統概述
tzxblog博客系統旨在創建一個可持續迭代的,以博客系統爲基礎並輔以文件下載、論壇討論、商城等功能爲一體的綜合性站點。
重在持續性迭代,鞏固工作中主流技術的同時,練習工作中未使用但主流或者不可或缺的技術。
整體架構
系統整體採用前後臺分離思想,後臺以springboot爲基礎框架,前臺以vue爲基礎技術,輔以redis緩存、mysql存儲、nginx轉發以及ssl通信,力求軟件生命週期內涉及開發的內容均可得到提現。
版本控制
代碼版本
前後臺代碼均託管github,以不同分支管理大的版本,遵循如下要求:
master:最新可運行版本,從develop合併;
develop: 最新開發版本,可能不能運行,主要作用是代碼備份,防止本地最新文件丟失;
realese-X.X: X.X爲數字泛指,如1.0、1.1、2.0,作爲穩定大功能的發佈版本,由master拉出;
tags:tag版本作爲廢棄不用的版本存檔。
文檔版本
項目週期內各種文檔,儘量以兩種方式呈現,分別是博客文章和docx文檔,類似接口文檔、數據庫這種不太好博客展示的,就僅以附件文檔的格式輸出。
其中docx文檔存放於項目doc目錄下,和代碼一起託管於github,同時docx文檔每次修改變更均要變更版本號並標註具體變更說明。
數據庫設計
詳見doc中數據庫設計和sql腳本,後續補充。
緩存設計
爲提高系統性能,使用頻率高的數據需要存放於redis緩存中。
安全設計
對於接口層面,前後臺接口需要有簽名校驗,防止網絡攻擊。
對於如密碼這種敏感數據,傳輸和存儲均應加密處理。
系統前期可使用http協議,功能穩定後採用自簽名證書和https交互。
功能設計
首頁
- 用戶訪問首頁,前臺向後臺頁面發起首頁需要的各種請求:分類列表、文章列表、推薦列表,列表條數和推薦列表條數均可配置,默認分別爲10和5;
- 後臺收到請求後查詢redis緩存或者mysql數據庫,組裝數據響應前臺;
- 前臺展示首頁相關內容;
- 成功進入首頁後,分類列表、文章列表、推薦列表、導航按鈕均可進行點擊後進入具體的文章頁、功能頁。
文章詳情
- 用戶點擊文章列表、推薦列表具體文章,前臺根據文章id向後臺發起文章詳情查詢;
- 後臺收到請求後查詢redis或者mysql,組裝數據後響應前臺;
- 文章詳情包含文章內容和閱讀量、評論數、評論列表分頁;
- 文章詳情頁面三欄佈局,頂部導航,下左方用戶信息,下右方文章詳情。
用戶基礎信息
- 文章詳情左側顯示用戶基本信息,用戶頭像、暱稱、簡介、簽名、以及用戶文章分類和歸檔等信息;
- 點擊用戶頭像或暱稱均可進入用戶個人首頁。
個人首頁
- 個人首頁整體佈局和文章詳情類似,把文章詳情區域的內容替換爲文章列表。
文章評論
- 文章詳情末尾展示評論框,可輸入文字評論;
- 評論框下方展示評論列表,評論列表條數可配置,默認展示5條,評論必須登錄。
分類查詢
- 個人首頁或首頁點擊分類列表中的具體分類,前臺向後臺發起分類文章查詢;
- 後臺查詢具體分類的文章分頁列表後,返回前臺;
- 前臺在個人首頁的下右方主區域或者首頁的下中區展示存檔文章列表。
存檔查詢
- 個人首頁點擊存檔列表中的具體月份,前臺向後臺發起存檔文章查詢;
- 後臺查詢具體月份的文章分頁列表後,返回前臺;
- 前臺在個人首頁的下右方主區域展示存檔文章列表。
文章發佈
- 用戶登錄後,在頂部導航欄展示發佈文章按鈕,點擊後進入文章編輯頁面;
- 文章內容使用markdown格式,編輯完成後點擊發布;
- 編輯頁面包含文章標題、主內容、分類、是否原創、是否公開等信息。
文章管理
- 用戶登錄後,在頂部導航欄展示文章管理按鈕,點擊後進入文章列表頁面;
- 對列表後展示刪除、修改、分類、權限等按鈕,均可進行編輯。
文件列表
- 用戶點擊頂部導航中的下載頁面,進入下載資源列表頁面;
- 下載頁面展示可下載資源列表,同時提供上傳按鈕。
文件上傳
- 用戶在文件列表頁面可以點擊文件上傳按鈕上傳文件;
- 上傳文件必須登錄。
文件下載
- 文件列表中的文件可以直接下載,不需登錄,後期考慮引入積分制。
通用異常設計
系統中的異常均需要人工捕獲,避免直接出現系統類異常。
500、404等均需要有自定義的友好提示,自定義異常儘可能詳細,使得前臺提示更加清晰。
項目地址
項目代碼和文檔均以github託管,地址如下:
https://github.com/tuzongxun/tzxblog