個人項目實踐——搭建一個博客網站

  學習是好的,但以爲是須要一個實踐項目來練手的,否則學的東西幾天就忘光了~html

  so,我打算本身搭建一個博客網站來練習一下,把學到的東西都應用上。前端

項目架構

項目需求

  需求背景

  對於剛剛學習完SpringBoot的童鞋來講,沒有什麼是比實踐開發一個項目更有效的了,好比搭建一個本身的博客系統。mysql

  需求列表(兼容移動端?)

  • 前端-主頁
    • Banner位預留
    • 推薦博文+圖形輪播式展現;
    • 博文列表,最多展現10篇,下拉加載更多;
    • 標籤分類-側邊欄,點擊進入對應的文章分類列表頁;
    • 文章搜索,模糊搜索指定文章信息、做者名稱;
    • 頂tab分類,進入各個系統分類;
    • 連接文章推薦區,外聯其餘做者的文章或博客;
    • 閱讀量最多的文章列表,展現最多的前5篇文章;
    • 博客logo圖+關注+聯繫我+返回頂部的浮層按鈕;
    • 動態時鐘;
    • 友情連接;
  • 前端-博文列表頁
    • manager可添加文章
    • 展現文章標題、更新時間、文章做者、操做按鈕(manager展現-編輯、刪除、置頂)
      • 文章編輯框:可存草稿(找控件實現?)
      • 文章詳情頁:可評論留言、收藏文章、分享文章
    • 默認按照更新時間排序從上至下;
    • 標籤分類-側邊欄
    • 頂tab分類,可返回首頁
  • 前端-後臺管理
    • 博文管理(增刪改查)
    • 用戶管理(權限配置)
      • 用戶可修改密碼;
      • 管理員和管理用戶;
    • 博文統計(PV及UV);
    • 博客管理(友情連接配置)
      • 有評論留言10分鐘沒有變動的狀況下,發出郵件;
  • 後端-日誌統計:
    • 用戶訪問量、用戶IP、文章PV/UV/分享量
    • 實時保存文章更新信息(前端?)
    • 定時任務備份數據
    • 監控網站各系統運行狀態
  • 後端-性能處理:
    • 頁面響應不能超過2秒
    • 文字刷新不能超過1秒

項目交互

項目設計

  項目部署

  • 使用docker方式部署,能夠採用-jar啓動;
  • 整體採用springboot框架打包;利用SpringCloud進行微服務的分佈式開發;
  • 技術框架:
    • 本項目用到的技術和框架web

      • 項目構建: maven
      • web框架:spring boot
      • 分佈式:SpringCloud
      • 數據庫ORM:mybatis-plus(有分頁查詢)
      • 數據庫鏈接池:Druid
      • 數據庫:mysql
      • 緩存NOSQL:redis
      • 模板引擎:thymeleaf
      • webjar:bootstrap
      • 文章展現:使用commonmark,將markdown轉成html頁面
    • 數據結構
      • 用戶表 blog_users
      • 文章表 blog_contents
      • 標籤表 blog_tags
      • 文章-標籤關係表 blog_ct_relation

  項目開發

  • 搭建分佈式框架,將各需求做爲微服務開發;
  • 建立數據庫,關聯數據,設計service層,實現增刪改查;
  • 找個開源UI框架作到前端展現,controller層的請求實現;
  • 打包發佈

項目測試

  功能測試

  • 項目開發完成後進行單元測試;
    • 能夠考慮接口自動化框架;
  • 發佈到test環境進行功能測試;
    • 能夠考慮ui自動化框架;
  • 發佈至線上作輪訓測試;

項目發佈

  發佈階段

  • 本地作開發及單元測試;
  • 發佈至test環境;
  • 發佈至線上;
相關文章
相關標籤/搜索