Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

功能模块的设计 #3

Closed
62 of 63 tasks
luoyunchong opened this issue Sep 2, 2019 · 1 comment
Closed
62 of 63 tasks

功能模块的设计 #3

luoyunchong opened this issue Sep 2, 2019 · 1 comment
Labels
enhancement New feature or request

Comments

@luoyunchong
Copy link
Owner

luoyunchong commented Sep 2, 2019

功能模块的设计

基础权限模块

  • 用户信息:邮件、用户名(唯一)、昵称、头像、分组、是否激活、手机号、是否是Admin、个性签名
    • 注册/登录
    • 上传头像
    • 修改密码
    • 用户基本信息修改
    • 用户增删改,配置分组
  • 绑定第三方账号
    • GitHub登录
    • QQ 登录
    • Gitee登录
  • 分组信息:是否静态分组(无法删除,无法修改分组编码)、名称可以修改
    • 分组增删改
    • 组别配置权限
  • 文件管理
    • 本地文件上传
    • 七牛云存储
    • 文件去重,秒传
  • 系统日志:请求方法、路径、http返回码、时间、用户昵称、用户id、访问哪个权限、 日志信息
    • 记录系统请求的日志
    • 异常日志
  • 设置管理:name(键),value(值),provider_name(提供名),provider_key(提供者值)
    • 设置新增修改删除
    • 所有设置

比如存某用户选择的是markdown还是富文本。

name="Article.Editor",
value="markdown" 或 "富文本",
provider_name为"User",
provider_key为用户Id

或存储七牛云的某一个配置

name="Qiniu.AK",
value="asfadsfadf23rft66S4XM2GIK7FGmj7czuYkcAyNGDAc" ,
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


lin-cms 开源地址分享

luoyunchong added a commit that referenced this issue Sep 8, 2019
luoyunchong added a commit that referenced this issue Oct 13, 2019
@luoyunchong luoyunchong changed the title 前端博客相关介绍 功能模块的设计 Dec 17, 2019
@luoyunchong luoyunchong pinned this issue Dec 17, 2019
@luoyunchong
Copy link
Owner Author

luoyunchong commented Dec 17, 2019

产品设计

产品设计-评论模块的设计

1.主题式

将评论分为二级,第一级采用时间倒序,二级按照时间正序,有助于理解上下文关系。

用户操作:

  • 评论随笔(内容支持超链接、emoji)
  • 点赞评论/取消点赞
  • 回复评论
  • 删除自己的评论

运营操作:

  • 审核通过/拉黑评论
  • 删除任何评论
  • 拉黑后的显示逻辑。(保留当前区块、显示内容为:该评论因违规被拉黑)
  • 删除:(如果是二级评论,直接软删除,如果是一级评论,软删除子评论和当前评论-需要提前提醒用户)
    交互设计
  • 评论的字数长度(500)、emoji。
  • 点赞交互-动画、消息通知/推送
  • 评论区域元素,需要有明确可点击的区域,会跳转到哪个地方。

优化

  • 精选评论

排行榜见解

排行榜从心理学上分析,主要从四个方面影响着您:寻找权威 、参与比较 、关注主流 、自我确认。

如何设计一个简单的排行榜呢。。

在一个博客随笔中,我们设计一个3天、七天(周榜)、30天(月榜)、全部的榜单。以浏览量(权重1)、点赞量(20)、评论量(30)。权重可自己定义。

1.默认取最新的随笔

前台传create_time时,使用如下sql

select * from `blog_article` order by create_time desc;

2.传排序方式为最近n天的热榜时。

参数:THREE_DAYS_HOTTEST(三天)、WEEKLY_HOTTEST(七天)、MONTHLY_HOTTEST(一个月)、HOTTEST(全部)

mysql 查询当前日期时间前三天数据

select date_sub(now() ,interval 3 day);

根据权重查询

select * from `blog_article` a 
where a.`create_time`>(select date_sub(now() ,interval 3 day))
order by (a.`view_hits` + a.`likes_quantity` * 20 + a.`comment_quantity` * 30) DESC, a.`create_time` DESC

创作者中心

用户主页

  • 统计值:阅读总数,点赞总数,关注者总数

个人设置

  • 用户信息
  • 密码修改

更多参考

Repository owner locked as spam and limited conversation to collaborators Dec 17, 2019
@luoyunchong luoyunchong added the enhancement New feature or request label Dec 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant