“博客引擎”演示視頻:https://www.jianguoyun.com/p/Dc6WQSgQiuaHBhiOqiU
程序功能分析
里程碑一:確定技術棧,搭建框架
所用的技術棧:
- 采用JavaScript,支持ES6. 具體會用到的庫和框架:Express,Bootstrap,react;
- 數據庫使用MongoDB;
- 構建工具采用npm;
- 代碼提交到github上.
- README文件,方便別人拿到代碼后,能夠成功快速在電腦上運行.
驗收條件
- 其他人可以方便的獲取你的代碼
- 其他人可以通過你的說明文件,在本地將服務器快速的運行起來,看到頁面
- 通過簡單的頁面可以證明你使用的技術棧和主要的庫等已經配置正確
- 若干篇博客用來記錄你的學習收獲和疑問
里程碑二:博客的增刪改查
實現博客的增刪改查。
驗收條件
- 任何人都可以添加、刪除、修改、查看任何博客
- 創建博客時,只需要填寫“標題”、“內容”、“創建人”并記錄“創建時間”即可
- 修改博客時,只需要填寫“修改人”,“修改時間”即可
- 刪除博客時,要向用戶發出確認,防止誤操作
- 可以以列表形式查看當前所有博客
- 代碼以“小步”方式提交到github上,并且每個commit都有清楚的描述
- 若干篇博客記錄學習收獲和疑問
注意
- 暫不用提供用戶相關功能(如注冊、登錄等),以及評論、標簽等功能
- 由于沒有用戶功能,所以在創建和修改博客時,需要手動提供“創建人”和“修改人”姓名
- 如果一篇博客多次修改,“修改人”和“修改時間”記錄的是最后一次
- 不需要記錄每次修改的內容,直接保存最后的修改即可
- 刪除博客時,直接從系統中刪除
- 這一步不需要使用真實數據庫,可以把數據直接保存在內存中某個變量,或者一個JSON文件里
里程碑三:使用真實數據庫
使用真實的數據庫mongodb來替換前一個里程碑中的模擬數據庫。
驗收條件:
- 前一個里程碑的功能沒有被破壞
- 可以通過某種方式來初始化數據庫結構和預置數據,并在README中說明步驟
- 代碼以“小步”方式提交到github上,并且每個commit都有清楚的描述
- 若干篇博客用來記錄你的學習收獲和疑問
里程碑四:用戶登錄
這個里程碑主要實現用戶的注冊、登錄、退出,當然只是普通用戶,暫時還沒有管理員。
驗收條件
- 查看博客時不需要登錄
- 只有注冊成用戶并登錄后,才能創建、修改、刪除自己的博客
- 用戶不能修改或刪除別人的博客
- 如果沒有登錄,則不允許訪問“創建、修改、刪除”等頁面
- 注冊用戶時,需要提供以下數據 “用戶名”,“密碼”。其ID由數據庫或代碼自動生成,每個用戶的ID都是唯一并且不變的
- 用戶登錄時,需要輸入“用戶名”和“密碼”
- 用戶登錄后,可以退出
- 用戶可以修改自己的用戶名和密碼
- 創建或修改博客時,不需要再手動輸入“創建人”和“修改人”,而是由系統自動拿到當前用戶的ID并使用該ID
注意
- 這個里程碑只有一種用戶“普通用戶”,沒有“管理員”,所以沒有人可以修改或刪除別人的博客
- 原有的數據庫結構需要修改。之前保存的是手動輸入的“創建人”或“修改人”姓名,而現在應該使用登錄者的ID。當需要顯示其用戶名時,可以通過ID拿到其用戶名
里程碑五:博客評論
對于每一篇博客,每個人都可以增加評論,在評論時,不論用戶是否登錄,都要求輸入用戶名。
驗收條件
- 查看每一篇博客時,都可以看到已有的評論,并按某種時間順序排列
- 查看每一篇博客時,都可以看到一個輸入框輸入新的評論,包括“姓名”和“內容”,可以提交新的評論
- 評論一旦添加,則不可以修改或刪除(在后面可以添加該功能)
里程碑六:管理員
現在添加一個新的用戶角色“管理員”。它與“普通用戶”的區別在于:它可以對所有的注冊用戶、所有博客、評論進行增刪改查等操作,還可以把別的用戶設置為管理員。
驗收條件:
- 管理員登錄后與普通用戶看到的界面有所不同,多了“所有用戶”、“所有博客”、“所有評論”的管理功能
- 管理員可以對“所有用戶”、“所有博客”、“所有評論”進行增刪改查
- 管理員可以將某個用戶設置為“管理員”,也可以將某個“管理員”設置為“普通用戶”
- 管理員不能刪除自己,或者把自己降為“普通用戶”
里程碑七:為管理員添加搜索功能
當管理員管理用戶、博客和評論時,可以搜索,以方便管理
驗收條件
- 管理員在管理用戶時,可以使用輸入的關鍵字模糊搜索“用戶名”,并只顯示符合條件的用戶
- 對于博客,只搜索“標題”
- 對于評論,只搜索評論“內容”
注意
- 不需要提供分頁功能