SuperDuperDrive Cloud Storage
這是一家正在進軍雲端儲存市場的全新公司,目前已經面臨來自 Google Drive 和 Dropbox 等競爭對手的激烈競爭。
然而,這並沒有影響他們的士氣。他們希望在其應用程式中包含個人資訊管理功能,以在競爭中脫穎而出,而最小可行產品包括以下三個功能:
- 檔案管理: 可以上傳、下載、刪除檔案
- 筆記管理: 能夠新增、編輯、刪除筆記
- 密碼備忘錄: 儲存管理其他網站的帳號密碼
Mentor 事先幫同學準備好一些半成品,包含 HTML template、加解密服務、雜湊服務、Selenium 測試範例。
同學們將在這個課程作業裡,使用 Spring Boot 實作資料存儲,透過 Thymeleaf 完成 HTML 套版,並啟用 Spring Security 完成基本的用戶身分驗證,以及使用 Selenium 完成 e2e Testing。
可以在 這裡 下載 Starter Code。
- 必須限制未經授權的使用者存取登入和註冊頁面以外的頁面
- Spring Boot 內建支援處理對
/login
和/logout
endpoints 的呼叫。必須使用安全性配置,覆蓋預設登入頁面 - 需要實作一個自訂的 AuthenticationProvider,透過將使用者的憑證與資料庫中儲存的憑證進行比對來授權使用者登入
- 將應用程式資料和功能綁定到前端
- 負責確定應用程式向使用者顯示哪些錯誤訊息,以確保流暢的使用者體驗
- 可以設計 POJO 類別來匹配資料庫中的資料,其欄位應與需求和資料類型相匹配
- 將這些模型類別與資料庫的資料連接起來,為每個 POJO Model 實作 MyBatis Mapper Interface
- 這些 Mappers 具有功能所需的 SQL Statements,以支援 Model 的基本 CRUD 操作
- 允許每個人訪問此頁面,並且使用者可以使用此頁面登入自己的 Cloud Storage
- 在此頁面上顯示登入錯誤,例如無效的使用者名稱/密碼
- 允許每個人訪問此頁面,並且可以使用此頁面註冊自己的 Cloud Storage 帳戶
- 需要驗證使用者是否存在,並在出重複註冊時,在頁面上顯示這些錯誤
- 使用者密碼必須被安全保存! 必須將密碼 Hash 之後,再儲存到資料庫
- 有一個登出按鈕,允許使用者登出應用程式並保持其資料的隱私
- 應用程式的中心,包含三個必要功能: 檔案管理、筆記管理、密碼備忘錄
- 使用者應該能夠下載或刪除先前上傳的檔案
- 顯示與文件操作相關的任何錯誤,例如: 使用者不應該能夠上傳兩個同名的文件
調整和修改 Starter Code 裡面的測試程式碼,並確保能夠使用 Selenium 通過所有 e2e 測試。