“博客引擎”演示视频:https://www.jianguoyun.com/p/Dc6WQSgQiuaHBhiOqiU
功能分析:
功能分析见下图:
管理员还可以将某个用户设为管理员
第1个里程碑:确定所用技术栈,搭建项目框架
- 采用JavaScript相关技术栈,整体采用ES6规范
- 构建工具使用npm
- 数据库采用非关系型数据库:Mongodb
- React+Redux框架
- README文件,方便别人拿到代码后,能够成功快速在电脑上运行。
- 代码小步提交到github上。
验收条件:
- 其他人可以方便的获取你的代码
- 其他人可以通过你的说明文件,在本地将服务器快速的运行起来,看到页面
- 通过简单的页面可以证明你使用的技术栈和主要的库等已经配置正确
- 若干篇博客用来记录你的学习收获和疑问
第2个里程碑:展示博客首页
根据演示视频中所展示的首页的功能,完成博客首页,不需要实现逻辑处理
验收条件:
- 别人可以从github上获取我的代码
- 根据README文件,在本地成功运行项目
- 成功运行后,可以看到与演示视频中类似的页面
第3个里程碑:个人博客管理
- 不用真实数据库,不用用户登录
- 将数据保存在json文件中
- 实现对博客的显示,添加,删除,修改。
验收条件:
- 任何人都可以添加、删除、修改、查看任何博客
- 创建博客时,只需要填写“标题”、“内容”、“创建人”并记录“创建时间”即可
- 修改博客时,只需要填写“修改人”,“修改时间”即可
- 删除博客时,要向用户发出确认,防止误操作
- 可以以列表形式查看当前所有博客
- 代码以“小步”方式提交到github上,并且每个commit都有清楚的描述
- 若干篇博客用来记录学习收获和疑问
注意:
- 如果一篇博客多次修改,“修改人”和“修改时间”记录的是最后一次
- 不需要记录每次修改的内容,直接保存最后的修改即可
- 删除博客时,直接从系统中删除
第4个里程碑:使用真实数据库
使用Mongodb数据库来保存数据。
验收条件:
- 前一个里程碑的功能没有被破坏
- 可以通过某种方式来初始化数据库结构和预置数据,并在README中说明步骤
- 代码以“小步”方式提交到github上,并且每个commit都有清楚的描述
- 若干篇博客用来记录你的学习收获和疑问
第5个里程碑:用户登录
实现用户的注册,登陆,退出功能
验收条件:
- 查看博客时不需要登录
- 只有注册成用户并登录后,才能创建、修改、删除自己的博客
- 用户不能修改或删除别人的博客
- 如果没有登录,则不允许访问“创建、修改、删除”等页面
- 注册用户时,需要提供以下数据 “用户名”,“密码”。其ID由数据库或代码自动生成,每个用户的ID都是唯一并且不变的
- 用户登录时,需要输入“用户名”和“密码”
- 用户登录后,可以退出
- 用户可以修改自己的用户名和密码
- 创建或修改博客时,不需要再手动输入“创建人”和“修改人”,而是由系统自动拿到当前用户的ID并使用该ID
注意:
- 这个里程碑只有一种用户“普通用户”,没有“管理员”,所以没有人可以修改或删除别人的博客
- 原有的数据库结构需要修改。之前保存的是手动输入的“创建人”或“修改人”姓名,而现在应该使用登录者的ID。当需要显示其用户名时,可以通过ID拿到其用户名
第6个里程碑:博客评论
每个人都可以对任何博客添加评论。在评论时,不论用户是否登录,都要求输入用户名
验收条件:
- 查看每一篇博客时,都可以看到已有的评论,并按某种时间顺序排列
- 查看每一篇博客时,都可以看到一个输入框输入新的评论,包括“姓名”和“内容”,可以提交新的评论
- 评论一旦添加,则不可以修改或删除(在后面可以添加该功能)
第7个里程碑:管理员
现在添加一个新的用户角色“管理员”。它与“普通用户”的区别在于:它可以对所有的注册用户、所有博客、评论进行增删改查等操作,还可以把别的用户设置为管理员。
验收条件:
- 管理员登录后与普通用户看到的界面有所不同,多了“所有用户”、“所有博客”、“所有评论”的管理功能
- 管理员可以对“所有用户”、“所有博客”、“所有评论”进行增删改查
- 管理员可以将某个用户设置为“管理员”,也可以将某个“管理员”设置为“普通用户”
- 管理员不能删除自己,或者把自己降为“普通用户”
第8个里程碑:为管理员添加搜索功能
当管理员管理用户、博客和评论时,可以搜索,以方便管理
验收条件:
- 管理员在管理用户时,可以使用输入的关键字模糊搜索“用户名”,并只显示符合条件的用户
- 对于博客,只搜索“标题”
- 对于评论,只搜索评论“内容”
**注意:
不需要提供分页功能。