lin-cms-dotnetcore功能模块的设计
先來回答以下問題。
1.什么是cms?
Content Management System,內容管理系統。
2.dotnetcore是什么?
.NET Core,是由Microsoft開發,目前在.NET Foundation(一個非營利的開源組織)下進行管理,采用寬松的MIT協議,可構建各種軟件,包括Web應用程序、移動應用程序、桌面應用程序、云服務、微服務、API、游戲和物聯網應用程序。
3.lin-cms 是什么?
Lin-CMS 是林間有風團隊經過大量項目實踐所提煉出的一套內容管理系統框架。Lin-CMS 可以有效的幫助開發者提高 CMS 的開發效率,
Lin的定位在于實現一套 CMS的解決方案,管理系統的基礎框架,提供了不同的后端,不同的前端實現,后端也支持不同的數據庫,是一套前后端完整的解決方案
目前官方團隊維護 lin-cms-vue,lin-cms-spring-boot,lin-cms-koa,lin-cms-flask 社區維護了 lin-cms-tp5,lin-cms-react,lin-cms-dotnetcore,即已支持vue,react二種前端框架,java,nodejs,python,php,c#等五種后端語言。
lin-cms-vue(官方)
https://github.com/TaleLin/lin-cms-vue
???? Vue+ElementUI構建的CMS開發框架,
林間有風團隊經過大量項目實踐所提煉出的一套內容管理系統框架
內置了 CMS 中最為常見的需求:用戶管理、權限管理、日志系統等
lin-cms-koa(官方)
python
https://github.com/TaleLin/lin-cms-koa
????使用Node.JS KOA構建的CMS開發框架
lin-cms-flask(官方)
node.js
https://github.com/TaleLin/lin-cms-flask
????A simple and practical CMS implememted by flask
lin-cms-spring-boot(官方)
java
https://github.com/TaleLin/lin-cms-spring-boot
???? 基于SpringBoot的CMS/DMS/管理系統開發框架
lin-cms-tp5(社區)
php 被官方fork。
https://github.com/TaleLin/lin-cms-tp5
???? A simple and practical CMS implememted by ThinkPHP 5.1
lin-cms-react(社區)
https://github.com/Bongkai/lin-cms-react
???? React+Antd構建的CMS開發框架
lin-cms-dotnetcore(社區)
C#
????A simple and practical CMS implemented by .NET Core 3.1 一個簡單實用、基于.NET?Core
https://github.com/luoyunchong/lin-cms-dotnetcore
.NET Core 3.1實現的CMS;前后端分離、Docker部署、OAtuh2授權登錄、自動化部署DevOps、GitHub Action同步至Gitee
4.lin-cms-dotnetcore有哪些特點?
基于.NET Core3.1實現的LIN-CMS-VUE后端API,并增加了博客模塊。目前實現簡約的權限管理系統、基礎字典項管理、隨筆專欄,評論點贊、關注用戶、技術頻道(標簽分類)、消息通知,標簽等仿掘金模塊。
功能模塊的設計
基礎權限模塊
用戶信息:郵件、用戶名(唯一)、昵稱、頭像、分組、是否激活、手機號、是否是Admin、個性簽名
?注冊/登錄
?上傳頭像
?修改個人密碼
?用戶基本信息修改
?用戶增刪改,配置分組
綁定第三方賬號
?GitHub登錄
?QQ 登錄
分組信息:是否靜態分組(無法刪除,無法修改分組編碼)、名稱可以修改
?分組增刪改
?分組配置權限
文件管理
?本地文件上傳
?七牛云存儲
?文件去重,秒傳
系統日志:請求方法、路徑、http返回碼、時間、用戶昵稱、用戶id、訪問哪個權限、 日志信息
?記錄系統請求的日志
?異常日志
設置管理:name(鍵),value(值),provider_name(提供名),provider_key(提供者值)
?設置新增修改刪除
?所有設置
比如存某用戶選擇的是markdown還是富文本。
name="Article.Editor", value="markdown" 或 "富文本", provider_name為"User", provider_key為用戶Id或存儲七牛云的某一個配置
name="Qiniu.AK", value="asfadsfadf23rft66S4XM2GIK7FxfqefauYkcAyNGDAc" , provider_name為"Qiniu"或自己定義的字符串 provider_key為空cms 管理員維護模塊
?標簽管理:名稱、圖片,是否啟用/禁用,排序、文章數量、用戶關注數量。
?標簽增刪改
?標簽列表,禁用
?校正文章數量
?技術頻道:封面圖、名稱、是否啟用/禁用、排序、編碼、備注描述、下屬標簽.一個技術頻道對應多個標簽
?技術頻道增刪改
?列表、禁用
?隨筆管理:
?審核隨筆/拉黑
?管理員刪除隨筆
?評論管理
?后臺審核通過/拉黑
?管理員刪除評論
?字典類別管理:編碼,名稱,排序
?增刪改查
?字典管理::編碼,名稱,排序,類別:如隨筆類型(原創、轉載、翻譯)
?增刪改查
cms 用戶端模塊
技術頻道
?首頁展示技術頻道
?選擇技術頻道后,可再根據標簽查詢文章
分類專欄管理:發布隨筆時可選擇單個分類。
?分類增刪改(隨筆數量、圖片、名稱、排序)
?分類列表,僅查看、編輯自己創建的分類專欄
標簽:統計每個標簽下多少個文章、多少人關注
?標簽列表
?無限加載
?最新/最熱 根據標簽名稱模糊查詢
?已關注的標簽
?熱門標簽
隨筆
?支持目錄導航(滾動時,固定至頂部位置),展示字數統計、預計閱讀時長;
?作者介紹:頭像,昵稱,簽名,隨筆數;
?展示文章類型:原創、轉載、翻譯
?相關文章
?推薦文章
?支持markdown,增刪改(僅自己的隨筆),修正分類專欄中的隨筆數量
?支持富文本編輯隨筆
?列表無限加載,按標簽查詢隨筆
?點贊隨筆
隨筆詳情頁
評論
?用戶關閉評論時,無法對隨筆進行評論
?評論隨筆(內容支持超鏈接、emoji)
?刪除自己的評論
?點贊評論
?回復評論
關注
?關注/取消關注用戶
?關注/取消關注標簽
?我關注的用戶發隨筆
個人主頁
?關注的用戶
?粉絲
?關注的標簽
?用戶專欄分類展示
?最新發布的隨筆
隨筆
關注
設置
?編輯器設置,(可切換markdown/富文本)
?代碼風格配置(tango、native、monokai、github、solarized-light、vs)
?密碼修改:快速登錄的賬號,初次設置時可留空
?個人資料更新
個人主頁設置
安全設置
博客設置
消息
?評論:點贊評論、評論隨筆、回復評論
?喜歡和贊:點贊隨筆、點贊評論
?關注,誰誰關注了你
腦圖分享
http://naotu.baidu.com/file/6532431a2e1f0c37c93c5ffd1dd5b49c?token=87690a9bc64fbae1
分組
分為三種
id name info 1 Admin 系統管理員 2 CmsAdmin 內容管理員 3 User 普通用戶審計日志
大多數表存在如下8個字段,用于記錄行的變化狀態,is_deleted為軟刪除,執行刪除操作時,將其狀態置為true,默認實體類繼承?FullAduitEntity?即可擁有以下8個字段。該設計參考ABP中的實現。FullAduitEntity為泛型,默認id為long類型,FullAduitEntity<Guid>,即可改變主鍵類型,默認LinUser表主鍵long,保持create_user_id,delete_user_id,update_user_id都與LinUser的主鍵相同
id bigint create_user_id bigint create_time datetime is_deleted bit delete_user_id bigint delete_time datetime update_user_id bigint update_time datetime相關技術
數據庫相關:ORM:FreeSql+DataBase:MySQL5.6
ASP.NET?Core3.1+WebAPI+RESTful
簡化對象映射:AutoMapper
身份認證框架:IdentityServer4
Json Web令牌:JWT
文檔API:Swagger(Swashbuckle.AspNetCore)
序列化:Newtonsoft.Json
測試框架:Xunit
日志?Serilog
依賴注入服務AutoFac
通用擴展方法 Z.ExtensionMethods
云存儲:七牛云 MQiniu.Core
分布式事務、EventBus:DotNeteCore.CAP
GitHub第三方授權登錄AspNet.Security.OAuth.GitHub
QQ第三方授權登錄AspNet.Security.OAuth.QQ
Docker
Azure DevOps
健康檢查AspNetCore.HealthChecks.UI.Client
GitHub Action同步至Gitee
分層結構(Layers)
framework
IGeekfan.CAP.MySql:為CAP實現了配合FreeSql的事務一致性擴展
identityserver4
LinCms.IdentityServer4:使用id4授權登錄
src
LinCms.Web:接口API(ASP.NET Core)
LinCms.Application:應用服務
LinCms.Application.Contracts:DTO,數據傳輸對象,應用服務接口
LinCms.Infrastructure:基礎設施,數據庫持久性的操作
LinCms.Core:該應用的核心,實體類,通用操作類,AOP擴展,分頁對象,基礎依賴對象接口,時間擴展方法,當前用戶信息,異常類,值對象
LinCms.Plugins 使用單項目實現某個業務的擴展,不需要主要項目結構,可暫時忽略。
test
LinCms.Test:對倉儲,應用服務或工具類進行測試
lin-cms 開源地址分享
后端接口?https://github.com/luoyunchong/lin-cms-dotnetcore
管理后臺UI?https://github.com/luoyunchong/lin-cms-vue
前端UIhttps://github.com/luoyunchong/lin-cms-vvlog
功能特性
?Azure Devops CI/CD構建
?GitHub Action實現 GitHub Gitee代碼同步
?.Net Core結合AspNetCoreRateLimit實現限流
?方法級別權限控制
社交賬號管理:支持多種第三社交賬號登錄,不干涉原用戶數據,實現第三方賬號管理
多語言
?全局敏感詞處理
日志記錄,方便線上排查錯誤
?支持多種數據庫,并測試,
?Mysql
?Postgresql
?Sql Server
?SQlite
Demo
用戶端 lin-cms-vvlog?https://vvlog.baimocore.cn
普通用戶:710277267@qq.com
密碼:123qwe
管理員 lin-cms-vue?https://cms.baimocore.cn/
管理員:admin
密碼:123qwe
總結
以上是生活随笔為你收集整理的lin-cms-dotnetcore功能模块的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速打造属于你的接口自动化测试框架
- 下一篇: 研发协同平台数据库死锁处理及改进