當然不是草臺班子 雲譯網 原型設計+概要設計

Meay發表於2024-11-01
作業所屬課程 軟體工程2024
作業要求 2024秋軟工實踐團隊作業-第二次
作業目標 設計出原型與後端架構
團隊名稱 當然不是草臺班子
團隊成員學號 姓名
102201427 侯麗珂
102201426 鄭嘉祺
102201241 戴康怡
102201218 肖晗涵
112200328 謝李東
292300304 陳鷺
102201242 魏儀陽
082100170 朱胤帆
112200629 趙弈茗
102202132 鄭冰智

原型設計

一、介面結構

1. 頂部導航欄

  • 網站logo:位於導航欄左部,顯示“雲譯網”字樣,作為品牌標識。
  • 搜尋框:位於導航欄顯眼位置,使用者可輸入關鍵詞進行站內搜尋,快速找到所需內容。
  • 使用者操作按鈕:包括登入、註冊和個人中心等,位於導航欄右上角,方便使用者進行賬號管理和個人設定。

2. 側邊欄

  • 主要功能模組:列出網站的主要功能模組,如首頁、個性化定製、翻譯校對等,方便使用者快速導航至所需功能。

3. 主內容區

  • 展示功能內容:根據使用者選擇的功能模組,展示相應的主要內容,佔據頁面的大部分空間。

二、頁面設計

1 前臺應用原型

連結:https://rp.mockplus.cn/run/kl8hNh9g6F/b503_uY-bs

1. 登入頁面

登入頁面
  • 具體功能
    • 使用者登入/註冊區域:方便新使用者快速註冊或登入,提升使用者轉化率。

2. 首頁

首頁
  • 意義:作為使用者訪問的起始頁面,提供使用者輸入文字或圖片、檔案進行實時翻譯的功能頁面,展示雲譯網的核心功能和推薦內容,展示使用者最近的翻譯記錄,方便使用者回顧和再次翻譯。
  • 具體功能
    • 線上翻譯入口:提供顯眼的按鈕,引導使用者快速進入線上翻譯功能。
    • 特色功能介紹:透過圖文結合的方式展示個性化定製和AI對話等特色功能。
    • 輸入區:包含文字輸入框及語言選擇選單,使用者可輸入待翻譯文字並選擇源語言和目標語言。
    • 操作區:包括翻譯按鈕、語音輸入和圖片上傳等功能,使用者可透過多種方式提交翻譯請求。
    • 結果展示區:顯示翻譯結果,並提供複製和儲存功能,方便使用者使用翻譯結果。
    • 記錄列表:按時間順序顯示使用者的歷史翻譯記錄和資料資訊,便於使用者查詢。

3. AI對話頁面

AI對話頁面
  • 意義:提供使用者與AI進行互動的平臺,獲取實時翻譯和建議。
  • 具體功能
    • 對話輸入區:使用者可在此輸入內容與AI進行對話,獲取翻譯或相關建議。
    • 響應展示區:顯示AI的回答和建議,提供實時互動體驗。

4. 個性化定製頁面

個性化定製頁面
  • 意義:允許使用者設定翻譯風格與專業領域,以獲得更符合個人需求的翻譯結果。
  • 具體功能
    • 風格選擇:提供多種翻譯風格供使用者選擇,如正式、口語化等。
    • 專業領域設定:使用者可選擇適用的專業領域和管理術語庫,以提高翻譯的專業性和準確性。
    • 儲存設定按鈕:儲存使用者的個性化設定,以便在未來的翻譯中自動應用。

5. 翻譯校對頁面

翻譯校對頁面
  • 意義:提供使用者校對和最佳化翻譯內容的功能頁面,方便使用者瞭解自己的翻譯水平和優勢劣勢。
  • 具體功能
    • 原文與譯文輸入區:使用者可分別輸入原文和譯文進行校對,確保翻譯質量。
    • 校對功能按鈕:提供語法檢查、術語校驗等功能,幫助使用者提高翻譯準確性。
    • 翻譯打分功能:顯示翻譯質量得分,為使用者提供翻譯質量的參考。

6. 使用者反饋頁面

使用者反饋頁面
  • 意義:提供使用者反饋和建議的渠道,幫助雲譯網收集使用者意見,不斷最佳化服務和功能。
  • 具體功能
    • 質量反饋:使用者可以報告翻譯結果中的錯誤,幫助提升翻譯質量。
    • 功能建議反饋:使用者可以提出對雲譯網功能增加或修改的建議,促進產品迭代。
    • 提交反饋:使用者填寫完反饋內容後,可以提交給雲譯網團隊,以便團隊進行後續處理。

7. 使用者個人中心頁面

使用者個人中心頁面
  • 意義:使用者檢視和修改個人資訊的頁面。
  • 具體功能
    • 使用者資訊展示:顯示使用者名稱、頭像、繫結手機號和郵箱等資訊,方便使用者管理個人資訊。
    • 個性化設定快捷入口:提供快捷入口,方便使用者調整個性化設定。
    • 相關設定選項:包括語音設定、發音方式和隱私管理等,讓使用者全面控制個人賬戶。

2 後臺管理系統原型

連結:https://rp.mockplus.cn/run/GN5wyZx9NE/y7vEr9Pml

1. 儀表盤頁面

儀表盤頁面1
儀表盤頁面2
  • 意義:提供網站整體執行情況的概覽,包括關鍵資料指標和統計資訊。
  • 具體功能
    • 網站資料:展示網站點選數、新增使用者數、使用者活躍度等關鍵資料。
    • API使用統計:顯示API的請求次數、成功率等統計資訊。
    • 使用者管理:提供使用者賬戶管理和請求次數的概覽。
    • 日誌與分析:展示日誌記錄和資料分析的結果。

2. 使用者管理頁面

使用者管理頁面1
使用者管理頁面2
  • 意義:管理員管理使用者資訊的頁面,用於維護使用者資料和許可權。
  • 具體功能
    • 使用者列表展示:以表格形式列出使用者資訊,包括使用者ID、使用者名稱、手機號、郵箱、上次活動時間等,方便管理員檢視和管理。
    • 操作按鈕:提供檢視、修改和封禁使用者的功能,增強使用者管理的靈活性。

3. API管理頁面

API管理頁面1
API管理頁面2
API管理頁面3
  • 意義:管理API金鑰和監控API使用情況的頁面。
  • 具體功能
    • 管理API金鑰:允許管理員檢視和修改API金鑰,確保API的安全性。
    • API使用統計:展示API的請求次數、成功率等統計資訊,幫助管理員監控API的使用情況。
    • API效能監控:提供API響應時間和效能的監控,確保API的穩定性。

4. 日誌與分析頁面

日誌與分析頁面1
日誌與分析頁面2
日誌與分析頁面3
  • 意義:記錄和分析系統日誌,幫助管理員瞭解系統執行情況和使用者行為。
  • 具體功能
    • 日誌記錄:展示系統執行日誌,包括使用者操作日誌和API請求日誌。
    • 資料分析:提供資料分析工具,幫助管理員從日誌中提取有價值的資訊。

5. 設定頁面

設定頁面
  • 意義:提供系統設定和個性化選項的頁面。
  • 具體功能
    • 使用者設定:允許管理員配置使用者相關的設定,如認證方式、通知方式等。
    • 系統設定:提供系統級別的設定選項,如語言偏好、字型大小等。

6. 幫助與支援頁面

幫助與支援頁面1
幫助與支援頁面2
幫助與支援頁面3
  • 意義:提供使用者幫助文件和聯絡方式,幫助使用者解決問題。
  • 具體功能
    • 使用者幫助文件:提供詳細的使用指南和常見問題解答。
    • 聯絡方式:展示客服的聯絡方式,方便使用者在遇到問題時能夠及時聯絡到支援團隊。

三、使用者互動

1 互動邏輯

  • 導航互動:使用者可透過頂部導航欄和側邊欄進行頁面切換,實現快速導航。
  • 操作互動:使用者透過點選按鈕、輸入文字、選擇選單等方式與系統進行互動,實現功能操作。

2 導航設計

  • 前臺導航:設計簡潔明瞭,主要功能入口透過頂部導航欄展示,方便使用者快速找到所需功能。
  • 後臺導航:側邊欄列出頁面主要管理功能,方便管理員快速切換至不同管理模組。

3 反饋機制

  • 操作反饋:系統在使用者完成操作後提供實時反饋,如翻譯完成提示,增強使用者體驗和操作的直觀性。

後端設計

本次資料庫設計主要使用 MongoDB,相比於傳統的 Mysql 資料庫,MongoDB 有著更強大的靈活性,其JSON 文件結構能更自然地表示巢狀物件和陣列,適合儲存個性化翻譯內容和使用者反饋等複雜資料。使用者模型、翻譯記錄等資料結構可能隨業務變化而調整,MongoDB 的靈活性也使資料結構的改變更便捷

一、資料庫設計

1 資料結構設計

使用者(userInfo + termLibrary + feedback + loginRecords)

{
  "_id": "ObjectId",                      // 使用者在 MongoDB 中的唯一識別符號
  "username": "String",                   // 使用者名稱,新增唯一索引
  "password_hash": "String",              // 密碼雜湊值
  "email": "String",                      // 使用者郵箱,新增唯一索引
  "created_at": "Date",                   // 註冊時間
  "updated_at": "Date",                   // 最後登入時間
  "term_library": [                       // 使用者的個性翻譯記錄,巢狀陣列
    {
      "original_content": "String",       // 原文內容
      "translation": "String"             // 個性翻譯內容
    }
  ],
  "feedbacks": [                          // 使用者反饋巢狀陣列
    {
      "feedback_text": "String",          // 反饋內容
      "created_at": "Date"                // 反饋時間
    }
  ],
  "login_records": [                      // 登入記錄巢狀陣列
    {
      "login_time": "Date",               // 登入時間
      "login_location": "location"        // 登入地點
      "logout_time": "Date"               // 登出時間
    }
  ]
}
  • 透過將userInfo + termLibrary + feedback + loginRecords巢狀起來,避免跨集合(collection)查詢

  • 考慮為 email 或者 username 新增唯一索引,以防止重複註冊

示例圖片

翻譯和對話記錄(Translation_Conversation_Records)

{
  "_id": "ObjectId",                      // 翻譯記錄的唯一識別符號
  "user_id": "ObjectId",                  // 關聯使用者ID,引用 Users 集合
  "original_content": "String",           // 原文內容
  "translated_content": "String",         // 譯文內容
  "dialogs": [                            // 多輪對話巢狀陣列
    {
      "text": "String",                   // 對話內容
      "timestamp": "Date"                 // 時間戳
    }
  ],
  "original_language": "String",          // 原語言
  "target_language": "String",            // 翻譯目標語言
  "created_at": "Date"                    // 建立時間
}
  • 將翻譯內容和對話內容進行結合,有利於大模型根據上下文來提供體驗更好的翻譯結果

  • 將多輪對話 dialog 設計為巢狀陣列,方便儲存多輪對話資訊

  • 為 user_id 和 created_at 建立複合索引,最佳化查詢效率

翻譯校對記錄集合(Translation_Proofread_Records)

{
  "_id": "ObjectId",                      // 校對記錄的唯一識別符號
  "user_id": "ObjectId",                  // 關聯使用者ID,引用 Users 集合
  "original_content": "String",           // 原文內容
  "translated_content": "String",         // 譯文內容
  "proofread_time": "Date",               // 校對時間
  "checks": [                             // 校對內容的巢狀陣列
    {
      "type": "String",                   // 檢查型別,如 "grammar" 或 "content"
      "result": "String"                  // 檢查結果,得分
    }
  ]
}

2 完整資料庫設計

1.關係資料模型

Ⅰ 使用者表(Users)
Ⅱ 個性翻譯表(Term_Library)
Ⅲ 使用者反饋表(User_Feedback)
Ⅳ 翻譯和對話記錄表(Translation_Conversation_Records)
Ⅴ 經典翻譯快取表(Cache)
Ⅵ 登入記錄表(Login_Records)
Ⅶ 翻譯校對記錄表

  • Ⅰ 使用者表(Users)
欄位名 資料型別 描述
user_id VARCHAR(20) 使用者id (主鍵)
username VARCHAR(255) 使用者名稱
password_hash VARCHAR(255) 密碼雜湊值
email VARCHAR(255) 使用者郵箱
created_time DATETIME 註冊時間
updated_time DATETIME 最後登入時間
  • Ⅱ 個性翻譯表(Term_Library)
欄位名 資料型別 描述
term_id INT 個性翻譯表唯一標識 (主鍵)
user_id VARCHAR(20) 使用者ID(外碼)
original_content VARCHAR(255) 原文內容
translation VARCHAR(255) 對應個性翻譯
  • Ⅲ 使用者反饋表(User_Feedback)
欄位名 資料型別 描述
feedback_id INT 反饋唯一標識 (主鍵)
user_id VARCHAR(20) 使用者ID(外碼)
feedback_text TEXT 反饋內容
created_time DATETIME 反饋時間
  • Ⅳ 翻譯和對話記錄表(Translation_Conversation_Records)
欄位名 資料型別 描述
record_id INT 記錄唯一標識 (主鍵)
user_id VARCHAR(20) 使用者ID(外碼)
translation_type INT 翻譯型別(0表示文字,1表示圖片)
original_content TEXT 原文內容
original_image_path VARCHAR(255) 原圖路徑
translated_content TEXT 譯文
diaglog TEXT 對話內容
original_language VARCHAR(10) 源語言
target_language VARCHAR(10) 目標語言
created_time DATETIME 建立時間
  • Ⅴ 經典翻譯快取表(Cache)
欄位名 資料型別 描述
cache_id INT 快取唯一標識 (主鍵)
source_content TEXT 快取的原文
translated_content TEXT 快取的翻譯文字
cache_time DATETIME 快取時間
  • Ⅵ 登入記錄表(Login_Records)
欄位名 資料型別 描述
login_id INT 登入記錄唯一標識 (主鍵)
user_id VARCHAR(20) 使用者ID(外碼)
login_time DATETIME 登入時間
logout_time DATETIME 登出時間
  • Ⅶ 翻譯校對記錄表
欄位名 資料型別 描述
check_id INT 翻譯校對記錄唯一標識(主鍵)
user_id VARCHAR(20) 使用者id(外碼)
original_content TEXT 原文內容
translated_ontent TEXT 譯文
grammer_check TEXT 語法檢查
content_check TEXT 內容及風格一致性檢查

2.ER圖

  • 使用者表、登入記錄表和使用者反饋表的關係
使用者表、登入記錄表和使用者反饋表的關係
  • 使用者表、翻譯對話記錄、翻譯校對、個性翻譯表的關係
使用者表、翻譯對話記錄、翻譯校對、個性翻譯表的關係
  • 經典翻譯快取表的關係
經典翻譯快取表的關係

3.物件關係對映

  1. 使用者表、登入記錄表與 User 類:

    • user_id -> User類中的屬性: userId
    • username -> User類中的屬性: username
    • email -> User類中的屬性: email
  2. 翻譯和對話記錄表與 TranslationRecord 類、TranslationService類:

    • record_id -> TranslationRecord類中的屬性: recordId
    • user_id -> user類中的屬性: userId
    • original_content -> TranslationRecord類中的屬性: sourceText
    • translated_content -> TranslationRecord類中的屬性: translatedText
    • translation_type -> TranslationRecord類中的屬性:TranslationType
    • original_language -> TranslationService類中的屬性: selectSourceLanguage
    • target_language -> TranslationService類中的屬性: selectedTargetLanguage
    • original_image_path -> TranslationService類中的方法:translateImage
    • created_time -> TranslationRecord類中的屬性:DateTime
  3. 使用者反饋表與 Feedback 類:

    • feedback_id -> Feedback類中的屬性:feedbackId
    • user_id -> user類中的屬性:userId
    • feedback_text -> Feedback類中的屬性: content
    • created_time-> Feedback類中的屬性: DateTime
  4. 個性翻譯表:對應使用者個性化翻譯功能

  5. 經典翻譯快取表:對應快速響應的實時翻譯功能(使用快取機制提高常見句子的響應速度)

  6. 翻譯校對記錄表:對應翻譯校對功能

二、後端架構

1 架構圖

架構圖

API層:

  • 接受並轉發前端的請求,從微服務層獲取結果並做整理返回給前端

ETCD

  • 儲存管理 RPC 的 server 端和 client 端

微服務層:

  • translationService:負責翻譯相關的請求
  • ProofreadingService:負責文字的校對和修正工作
  • 該微服務透過RPC進行通訊,實現服務之間的解耦和獨立部署,提高系統的靈活性和可擴充套件性
  • 使用MongoDB作為資料儲存,確保資料的持久化和高效訪問

部署層:

  • 採用Docker容器化技術,將各個微伺服器打包成容器進行部署
  • 容器化技術使系統更加靈活,便於系統的擴充和維護

2 架構概述

雲譯網的後端架構需要支援高質量翻譯服務、個性化翻譯、使用者介面最佳化、實時翻譯與最佳化以及未來功能擴充等核心和輔助功能。因此,在設計後端架構時,我們需要考慮系統的可擴充套件性、高效能、高可用性和安全性。

3 核心元件

翻譯引擎

基於LLM的翻譯模型:這是雲譯網的核心元件,負責處理使用者輸入的文字、語音或圖片,並生成高質量的翻譯結果。

自定義術語庫:儲存使用者自定義的專業術語翻譯,以便在翻譯過程中使用。

使用者管理

使用者資訊儲存:儲存使用者的個人資訊,包括註冊資訊、偏好設定等。

許可權管理:管理使用者的訪問許可權,確保只有授權使用者才能訪問特定功能。

實時翻譯系統

快取機制:用於儲存常見的句子和翻譯結果,以提高響應速度。

實時翻譯處理:處理使用者的實時翻譯請求,並返回翻譯結果。

後端服務

API介面:提供RESTful介面,供前端或其他應用程式呼叫。

資料庫:儲存使用者資料、翻譯記錄等。

4 架構設計

微服務架構

  • 將翻譯引擎、使用者管理、實時翻譯系統等核心元件拆分為獨立的微服務,每個微服務都有自己的資料庫和API介面。

  • 微服務之間透過輕量級通訊協議(如HTTP/REST、gRPC)進行通訊。

負載均衡與容錯

  • 使用負載均衡器(如Nginx、HAProxy)將請求分發到多個微服務例項上,以實現高可用性和負載均衡。

  • 採用熔斷器(如Hystrix)和重試機制來處理微服務之間的呼叫失敗,提高系統的容錯能力。

資料持久化

  • 使用MongoDB儲存使用者資料和翻譯記錄,確保資料的一致性和完整性。

安全性

  • 使用HTTPS協議來加密使用者資料在傳輸過程中的內容,確保資料的安全性。

  • 實施身份驗證和授權機制,確保只有授權使用者才能訪問特定功能。

5 功能擴充

API服務

  • 提供完善的API文件和SDK,方便其他應用程式或平臺整合雲譯網的翻譯功能。

  • 支援多種程式語言和開發框架的接入。

語音翻譯和圖片文字翻譯

  • 引入語音識別和影像識別技術,實現語音翻譯和圖片文字翻譯功能。

  • 最佳化後端系統以支援這些新功能的實時處理和高效儲存。

智慧推薦與個性化服務(*)

  • 利用使用者資料和翻譯記錄進行智慧推薦,提高使用者的滿意度和忠誠度。

  • 引入機器學習演算法來最佳化個性化翻譯服務,提高翻譯質量。

三、概要設計

1 用例圖

用例圖

2 活動圖

活動圖

3 類圖

類圖

4 時序圖

登入模組:

登入模組時序圖

翻譯模組:

翻譯模組時序圖

5 協作圖

使用者註冊:

使用者註冊協作圖

使用者管理:

使用者管理協作圖

團隊協作

一、預計計劃安排表

周次 時間 產出
第1周 11月2日 - 11月8日 前端頁面設計、後端基礎功能實現進度達到60%以上
第2周 11月9日 - 11月15日 完成前後端設計,撰寫相關文件
第3周 11月16日 - 11月22日 前後端整合,系統功能初步演示,完成測試報告
第4周 11月23日 - 11月29日 審查程式碼,修復bug並最佳化效能,交予使用者使用,收集反饋再度最佳化

二、預計開發計劃分工

姓名 角色 負責的開發部分
侯麗珂 組長 專案整體規劃與管理,協作溝通,進度跟蹤
肖晗涵、陳鷺 前端開發人員 前端介面設計,使用者互動功能實現
戴康怡 前端總負責人 輔助前端開發,瞭解各部分功能編寫相關文件
趙弈茗 後端總負責人 後端功能實現,編寫相關文件
魏儀陽、謝李東 後端開發人員 API設計與實現,資料庫管理
鄭嘉祺 前端開發員兼測試助理 前端頁面設計,兼輔助測試的實現
鄭冰智 測試負責人 負責測試計劃的制訂與實現,後續執行的反饋與改進,編寫測試相關文件
朱胤帆 運維及對接員 負責執行維護及前後端對接

三、團隊協作記錄

1 任務初分工

任務初分工1
任務初分工2

2 分任務跟進與實現

分任務跟進與實現1
分任務跟進與實現2

3 專案管理平臺協作

  • 使用摹客RP多人實時協作進行原型設計
摹客RP
  • 使用飛書線上表格實時記錄/檢視任務進度
飛書線上表格
  • 使用飛書線上文件協作編寫架構文件
飛書線上文件

4 GitHub貢獻記錄

GitHub貢獻記錄

1.GitHub團隊倉庫連結:https://github.com/Miyer003/YunYiWang
2.當然不是草臺班子_系統設計說明書:https://1drv.ms/b/c/1378ce4530586b37/EbHrFIU7jZhPp6OCbOOw9kUBXIV0YAiSge6rhV_rTsofQQ?e=YxcxxL
3.當然不是草臺班子_資料庫設計說明書:https://1drv.ms/b/c/1378ce4530586b37/EWMRUXszWcVKnL1paqNgcToBRwa8yX2ZVFbm4UJ-W2E2jg?e=i3DynT
4.當然不是草臺班子_原型設計+概要設計答辯PPT:https://1drv.ms/b/c/1378ce4530586b37/EfzoHKIpcglPm2FSiaKxneIBTnJfEMeoX5UW5grQLLxK1A?e=91VR7Y

相關文章