Hebook項目設計說明書

Hebook 軟件設計說明書

1 Hebook內容描述

Hebook定位於人脈信息管理平臺,幫助用戶存儲、查詢複雜的人脈信息,並基於對人脈信息的分析和推斷,給用戶提供人脈管理方案推薦。

主要功能模塊

  • 存儲查詢人脈信息
  • 人脈信息統計與分析
  • 人脈管理推薦

2 需求分析

2.1 角色分類

序號 名稱 描述 權限
1 遊客(Tourist) 脫機使用Hebook的羣體 1 增刪查改聯繫人信息 (信息本地存儲)
2 用戶(User) 使用Hebook的註冊用戶 1、查改看個人資料 2 增刪查改聯繫人信息 3 查看人脈統計分析信息
3 VIP用戶 使用Hebook的VIP用戶 1、查改看個人資料 2 增刪查改聯繫人信息 3查看人脈統計分析信息 4 查看人脈管理方案推薦

備註:對沒有的權限項,在不必要的情況下,系統可以不生成

2.2 功能需求

2.2.1 功能需求總表

編號 功能需求名稱 優先級別
fun01 註冊用戶 ,填寫用戶信息
fun02 用戶管理個人信息
fun03 添加聯繫人 ,填寫聯繫人信息
fun04 修改聯繫人信息
fun05 刪除聯繫人
fun06 查看聯繫人信息,提供篩選、排序、搜索功能
fun07 人脈信息統計與分析
fun08 人脈管理推薦

2.2.2 功能需求描述

fun01:註冊用戶,填寫用戶信息
【功能概述】註冊用戶,填寫註冊信息,如登錄手機號和密碼設置等。 用戶信息包括 姓名、性別、出生日期等,皆爲非必填項目
【操作者】遊客

fun02:用戶管理個人信息
【功能概述】用戶可對姓名、性別等個人信息進行修改管理。
【操作者】用戶

fun03:添加聯繫人 ,填寫聯繫人信息
【功能概述】遊客或用戶可以添加聯繫人,填寫姓名、性別等信息。其中,與中間人關係、姓名,性別爲必填項。
【操作者】遊客、用戶

fun04:修改聯繫人信息
【功能概述】遊客或用戶可以修改聯繫人信息,如姓名、性別等信息。
【操作者】遊客、用戶

fun05:刪除聯繫人
【功能概述】遊客或用戶可以修改聯繫人。
【操作者】遊客、用戶

fun06:查看聯繫人信息,提供篩選、排序、搜索功能
【功能概述】遊客和用戶可以查看已添加的聯繫人信息,並可以按照聯繫人的相關信息信息篩選、排序以及搜索。
【操作者】遊客、用戶

fun07:人脈信息統計與分析
【功能概述】系統根據用戶存儲的人脈信息,對數據進行統計和分析,給出用戶的相關人脈狀況,如年齡分佈,性別比列,職業領域,地域分佈等。
【操作者】 系統

fun08:人脈管理推薦
【功能概述】系統根據用戶存儲的人脈信息,對用戶的人脈管理進行推薦,如節日祝福提醒,好友生日提醒,久未聯繫提醒等。
【操作者】系統

2.3 用例圖設計建模

在這裏插入圖片描述

2.4 實體屬性分析

在這裏插入圖片描述

2.4 類圖設計建模

在這裏插入圖片描述

2.4 組件圖設計建模

在這裏插入圖片描述

3 數據庫設計

3.1 設計規則

類名 全大寫
表名 首字母大寫
其他 全部小寫 。 多詞用下劃線_連接
每個表都有create_time,update_time,is_delete字段

3.2 User

名稱 CODE 類型 描述 可否爲空 初始化
用戶ID user_id char U000001(U開頭) 表長度
登錄賬號 account int 11位手機號
登錄密碼 password char 密文格式存儲
是否VIP is_vip bool 0 不是vip 1 是vip 0
聯繫人總數 contact_count int 所有聯繫人的總數 0
姓名 name char 這個項目註冊的時候不會填寫,所以需要默認值 user_id
性別 gender bool 0 女 1 男
出生日期 birthdate time
聯繫電話1 phone_number1 int
聯繫電話2 phone_number2 int
社會狀態 status int 0 在讀 1 在職 2 退休 3 無業
現居地 residence char
籍貫 birthplace char
婚姻狀態 marital_status int 0 單身 1 戀愛 2 已婚

3.3 Contact

名稱 CODE 類型 描述 可否爲空 初始化
聯繫人ID contact_id char C000001(C開頭) 表長度
用戶ID user_id char user_id 外碼 來源
總分 score int 評分計算規則? 60
未聯繫天數 untouch_day int 自建立好友關係以來 0
主動聯繫次數 contact_count_a int 1
被動聯繫次數 contact_count_b int 0
聯繫總次數 contact_count int 主動+被動 1
聯繫碼 contact_code int 180位記錄半年來的聯繫情況 0 未聯繫 1 主動 2 被動 3 互動 0
聯繫頻率 contact_frequency float 聯繫總次數 / (當前時間-創建時間+1) 1
關係等級 class int 1 摯友 2 好友 3 朋友 4 相識 5 存在 3
關係人 associated char user_id/contact_id 頁面來源
關係 relationship int 0 家人 1 親戚 2 朋友 3 同學 4 同事 5 老師 6 領導 7 特別關注 8 其他 2
姓名 name char
性別 gender bool 0 女 1 男
出生日期 birthdate time
聯繫電話1 phone_number1 int
聯繫電話2 phone_number2 int
社會狀態 status int 0 在讀 1 在職 2 退休 3 無業
現居地 residence char
籍貫 birthplace char
婚姻狀態 marital_status int 0 單身 1 戀愛 2 已婚

3.4 Education

名稱 CODE 類型 描述 可否爲空 初始化
教育ID education_id int 表長度
人物ID person_id char user_id/contact_id 外碼 來源
開始時間 start_time time
結束時間 end_time time
學歷 academic int 0 高中 1 專科 2 本科 3 碩士 4 博士 5 博後 6 碩博
學校名稱 school char
專業 major char
領域 field char 學習或研究領域

3.5 Job

名稱 CODE 類型 描述 可否爲空 初始化
工作ID job_id int 表長度
人物ID person_id char user_id/contact_id 外碼 來源
開始時間 start_time time
結束時間 end_time time
公司名稱 company char
薪資 salary float
薪資單位 salary_unit int 0 月薪 1 年薪 0
工作地點 work_place char
職位 position char

3.6 Mark (* - * )

名稱 CODE 類型 描述 可否爲空 初始化
標籤ID mark_id int 表長度
用戶ID user_id char user_id (user擁有一個mark 列表)外碼 來源
標籤名稱 mark_name char
標籤佔有數 mark_holder int 擁有這個標籤的聯繫人的總數 0

3.7 Prefer(* - * )

名稱 CODE 類型 描述 可否爲空 初始化
偏好ID prefer_id int 表長度
用戶ID user_id char user_id (user擁有一個prefer 列表) 來源
偏好名稱 prefer_name char
偏好類型 prefer_type int 0 喜好 1 討厭 0
偏好佔有數 prefer_holder int 擁有這個偏好的聯繫人的總數 0

3.8 Authorization

名稱 CODE 類型 描述 可否爲空 初始化
授權ID authorization_id int 表長度
用戶ID user_id char 來源
應用名稱 app_name int 0 微信 1 QQ 2 微博 (目前只考慮這三個平臺)
賬號 app_account char 第三方平臺的賬號
授權碼 authorzation_code char 能有效登錄第三方平臺

3.9 Social_app(根據 命名自行匹配)

名稱 CODE 類型 描述 可否爲空 初始化
社交ID socia_id int 表長度
聯繫人ID contact_id char 外碼
社交平臺 social_platform int 0 微信 1 QQ 2 微博 (目前只考慮這三個平臺)
社交賬號 social_account char 每個平臺的用戶ID不一樣

3.10 Contact_description

名稱 CODE 類型 描述 可否爲空 初始化
描述ID descript_id int 表長度
聯繫人ID contact_id char 用於描述聯繫人 外碼 來源
描述內容 descript_content char

3.11 Contact_mark (關係表)

名稱 CODE 類型 描述 可否爲空 初始化
聯繫人ID contact_id char C000001(C開頭) 表長度
標籤ID mark_id int 表長度

3. 12 Contact_prefer (關係表)

名稱 CODE 類型 描述 可否爲空 初始化
聯繫人ID contact_id char C000001(C開頭) 表長度
偏好ID prefer_id int 表長度

4 UI設計

4.1 顏色說明

編號 名稱 色號 顯示 描述
01 主題色 00C88C 在這裏插入圖片描述
02 字體色1 4A4A4A 在這裏插入圖片描述 聯繫人名稱、 主要信息
03 字體色2 9B9B9B 在這裏插入圖片描述 附加信息、提示信息
04 模塊背景色1 FCFCFC 在這裏插入圖片描述 下拉欄模塊背景色
05 模塊背景色2 F1F1F2 在這裏插入圖片描述 列表間隔色
06 輸入框邊框色 D8D8D8 在這裏插入圖片描述 也用作 holdplace 字體色
07 統計色-紅 EB5F53 在這裏插入圖片描述
08 統計色-橙 F6B949 在這裏插入圖片描述 也用作提示信息
09 統計色-藍 4CB6E9 在這裏插入圖片描述
10 統計色-綠 7DB19C
11 統計色-紫 9268C7 在這裏插入圖片描述
12 統計色-深藍 6586A0 在這裏插入圖片描述

4.2 字體說明

編號 名稱 字體 字號 描述
01 主題 -Hebook 微軟雅黑 24px B B即爲加粗的意思
02 一級字體 微軟雅黑 18px 用於標題等醒目內容
03 button 字體 微軟雅黑 18px B
04 二級字體 微軟雅黑 14px
05 三級字體 微乳雅黑 12px 用爲提示信息

4.3 UI設計說明

底部導航欄:

  • 聯繫人
  • 統計
  • 我的

在這裏插入圖片描述

使用方式:

  • 登錄
    可使用 聯繫人、統計、我的 三個模塊
  • 遊客
    只能使用聯繫人 一個模塊
    在這裏插入圖片描述

第三方登錄支持方式:

  • 微信
  • QQ
  • 微博
    在這裏插入圖片描述

註冊方式:

  • 賬號爲手機號,獲得驗證碼。 密碼只輸入一遍,可以通過點擊 👁 按鈕確定密碼。
    在這裏插入圖片描述

聯繫人查找方式:

  • 搜索🔍 :文字模糊查詢,後期可提供語音輸入
  • 篩選 : 下拉按鈕展開。採用【即時相應】的方式,也就是說不需要在設定好篩選項之後點確定。篩選項列表如下:
編號 篩選項 內容 描述
01 性別 0 女 1 男
02 年齡 0 0-18 1 18-26 2 26-40 3 40-100
03 社會狀態 0 在讀 1 在職 2 退休 3 無業
04 現居地 列出所有聯繫人中出現過的現居地(需要及時計算) 按數量從多到少排序,頁面寬度不夠時,左右滑動
05 籍貫 列出所有聯繫人中出現過的籍貫(需要及時計算) 按數量從多到少排序,頁面寬度不夠時,左右滑動
06 婚姻狀態 0 單身 1 戀愛 2 已婚
07 標籤 User維護的標籤列表 且標籤佔有數不爲0的標籤 按數量從多到少排序,頁面寬度不夠時,左右滑動
08 偏好 User維護的偏好列表 且偏好佔有數不爲0的標籤 按數量從多到少排序,頁面寬度不夠時,左右滑動
09 學校 列出所有聯繫人中出現過的學校(需要及時計算) 按數量從多到少排序,頁面寬度不夠時,左右滑動
10 公司 列出所有聯繫人中出現過的公司(需要及時計算) 按數量從多到少排序,頁面寬度不夠時,左右滑動
  • 排序 : 默認按照 聯繫人的【總分】排序,提供 【未聯繫天數】、【關係等級】、【聯繫頻率】排序。
    在這裏插入圖片描述

列表中顯示的聯繫人信息:

  • 頭像
  • 關係及等級
  • 未聯繫天數
  • 聯繫頻率
  • 總分
    在這裏插入圖片描述

新建聯繫人

  • 紅色區域內爲必填信息 ,點擊修改。圖像使用默認圖像
  • 若首先關聯應用,則可從應用中自動匹配 聯繫人信息 ,自動填入。
  • 其餘內容均爲非必填項。
    在這裏插入圖片描述

聯繫人詳情頁面

  • 紅色區域的信息由 【聯繫碼】 提供,樣式參照 GitHub。顏色設定如下:
適用情況 顏色 色號 描述
無聯繫 灰色 F1F1F2
主動聯繫 橙色 F6B949
被動聯繫 藍色 4CB6E9
互動聯繫 綠色 7DB19C 既不能說主動,也不能算被動的情況
  • 藍色區域是聯繫人的基本信息顯示區域,只顯示非空項。
  • 黃色區域均爲下拉展開。

在這裏插入圖片描述

個人中心(我的)

  • Module 1 賬戶信息: 用戶頭像 、用戶名稱、登錄賬號(手機號)
  • Module 2 用戶信息:只顯式非空項
  • Module 3【 點擊跳轉選項卡】
    在這裏插入圖片描述

標籤管理

  • 顯示現有標籤,點擊表示【刪除標籤】,button會變成灰色,點擊【完成】之後纔會消失。 (後續可以將【標籤】恢復變爲【vip-支持】)
  • 在輸入空內輸入標籤名稱,點擊【添加】後,出現在【現有標籤】中,添加時【檢查重複】,點擊【完成】後才生效。

在這裏插入圖片描述

偏好管理

  • 偏好管理中,將【喜歡】和【討厭】分開管理
  • 其他同上【標籤管理】

在這裏插入圖片描述

統計報表

  • 直接顯示項: 聯繫人總數即各級人脈比例(人數)、男女比例、年齡分佈
  • 下拉展開項: 社會狀態、婚姻狀態、地域分佈、領域分佈
  • 高級統計項(vip-支持):關係等級分佈、聯繫頻率分段(0.25,0.5.0,75)、總分分段(40,50,60,70,80,90)、標籤統計(各個標籤有多少人-可查看列表)、偏好統計(各個偏好有多少人-可查看列表)
    在這裏插入圖片描述

5 接口設計說明

5.1 綜述

5.1.1統一的輸入輸出參數

response

參數名 類型 是否必須 描述
success int Y 0 失敗; 1 成功
error_code int N 錯誤碼
error_desc String N 錯誤消息

5.1.2 錯誤返回碼列表

error_code error_desc
1 授權過期
500 服務器內部錯誤
600 賬號被鎖定(是否需要新增 鎖定的標誌位)
10005 手機驗證碼不正確
10006 手機驗證碼已失效
10011 原密碼不正確(可能會用到)

5.2 用戶接口

5.2.1 用戶註冊(user/signup)

item content
接口 user/signup
描述 用戶註冊
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
account int Y 註冊手機號
password char Y 密碼
verify_code int Y 驗證碼

驗證碼的正確與否,由後臺檢驗。
前端傳輸密碼的明文給後臺。

Response

參數名 類型 是否必須 描述
s_id char Y
user_id char Y 用戶ID

Example
Request

{
	"account":158**************,
	"password": " 123456 " ,
	"verify_code”:11111
}

Response

#1錯誤情況
{
	"succeed":0,
	"error_code":10005,
	"error_desc":"手機驗證碼錯誤"
}

5.2.2 發送驗證碼(user/verify_code)

item content
接口 user/verify_code
描述 發送驗證碼
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
account int Y 註冊手機號

Response
【統一返回】

5.2.3 修改密碼(user/change_password)

item content
接口 user/change_password
描述 修改密碼
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
account int Y 註冊手機號
password int Y 初始密碼
password_new int Y 新密碼

Response
【統一返回】

5.2.4 用戶登錄 (user/signin)

item content
接口 user/signin
描述 用戶登錄
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
account int Y 註冊手機號
password char Y 密碼

Response

參數名 類型 是否必須 描述
user_id char Y 用戶ID
s_id char Y

5.2.5 設置用戶信息 (user/set_info)

item content
接口 user/set_info
描述 設置用戶信息
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
s_id char Y 用戶ID
user_id char Y
name char N
gender bool N 0 女,1男(若沒有信息,則爲NULL)
birthdate time N
phone_number1 int N
phone_number2 int N
state int N 0 在讀 1在職 2退休 3無業
residence char N
birthplace char N
marital_status int N 0單身 1戀愛 2 已婚

用戶根據需要修改信息,只提交有變更的信息。

Response
【統一返回】 設置成功或失敗

5.2.6 授權第三方平臺 (user/auth_app)*

item content
接口 user/ass_app
描述 授權第三方平臺,用於登錄等
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
app_name int Y
app_account char Y
authorzation_code char Y

Response

參數名 類型 是否必須 描述
authorization_id int Y

5.2.7 添加標籤 (user/add_mark)

item content
接口 user/add_mark
描述 添加標籤, 檢測是否存在同名的標籤,若有則直接修改其is_delete標誌位
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y
mark_name char Y

Response

參數名 類型 是否必須 描述
mark_id int Y

5.2.8 刪除標籤 (user/delete_mark)

item content
接口 user/delete_mark
描述 刪除標籤, 只修改is_delete標記位
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y
mark_id int Y
mark_name char Y

Response
【統一返回】是否刪除成功

5.2.9 獲取標籤列表 (user/get_mark)

item content
接口 user/get_mark
描述 獲取標籤列表
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y

Response

參數名 類型 是否必須 描述
marks Array Y
mark_id int Y
mark_name char Y
mark_holder int Y

5.2.10 獲取用戶信息 (user/get_info)

item content
接口 user/signin
描述 獲取用戶信息
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y

Response

參數名 類型 是否必須 描述
user Array Y 用戶信息列表
user_id char Y 用戶ID
is_vip bool Y
contact_count int Y
name char Y
gender bool Y 0 女,1男(若沒有信息,則爲NULL)
birthdate time Y
phone_number1 int Y
phone_number2 int Y
state int Y 0 在讀 1在職 2退休 3無業
residence char Y
birthplace char Y
marital_status int Y 0單身 1戀愛 2 已婚

Example
Response

# 正常情況
{
	"succeed":1,
	"user":{
			"user_id":"U23422342",
			"is_vip":0,
			……

	}
}

5.2.11 添加偏好 (user/add_prefer)

item content
接口 user/add_prefer
描述 添加偏好, 檢測是否存在同名的偏好,若有則直接修改其is_delete標誌位
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y
prefer_name char Y
prefer_type int

Response

參數名 類型 是否必須 描述
prefer_id int Y

5.2.12 刪除偏好 (user/delete_prefer)

item content
接口 user/delete_prefer
描述 刪除偏好, 只修改is_delete標記位
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y
prefer_id int Y
prefer_name char Y

Response
【統一返回】是否刪除成功

5.2.13 獲取偏好列表 (user/get_prefer)

item content
接口 user/get_prefer
描述 獲取偏好列表
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y

Response

參數名 類型 是否必須 描述
prefers Array Y
prefer_id int Y
prefer_name char Y
prefer_holder int Y
prefer_type int Y

5.3 聯繫人模塊

5.3.1 獲取聯繫人列表(contact/get_list)

item content
接口 contact/get_list
描述 獲取聯繫人列表
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y
gender int N 0 女 1 男
age int N 0 0-18 1 18-26 2 26-40 3 40-100
status int N 0 在讀 1 在職 2 退休 3 無業
prefer int N User維護的偏好列表 且偏好佔有數不爲0的標籤
mark int N User維護的標籤列表 且標籤佔有數不爲0的標籤
school char N 所有聯繫人中出現過的學校(需要及時計算)
company char N 所有聯繫人中出現過的公司(需要及時計算)
residence char N 所有聯繫人中出現過的現居地(需要及時計算)
birthplace char N 所有聯繫人中出現過的籍貫(需要及時計算)
marital_status int N 0 單身 1 戀愛 2 已婚
sort_way int N 0 總分 1 未聯繫天數 2 關係等級 3 聯繫頻率

學校、公司等信息按照數量從大到小返回

Response

參數名 類型 是否必須 描述
contact Array Y
contact_id int Y
score int Y
untouch_day int Y
contact_frequency float Y
name char Y
relationship int Y 0 家人 1 親戚 2 朋友 3 同學 4 同事 5 老師 6 領導 7 特別關注 8 其他
class int Y 1 摯友 2 好友 3 朋友 4 相識 5 存在

5.3.2 獲取篩選項目(contact/get_select)

item content
接口 contact/get_select
描述 獲取篩選項目
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y

Response

參數名 類型 是否必須 描述
residence Array Y [重慶,廣州,山東……]
brithplace Array Y [重慶,廣東,山東……]
mark Array Y [唱歌,宣傳,演講……] (在思考是否傳id)
prefer Array Y [……]
school Array Y [……]
company Array Y [……]

5.3.3 搜索聯繫人(contact/search)

item content
接口 contact/search
描述 搜索聯繫人
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y
key_word char Y 搜索信息

Response

參數名 類型 是否必須 描述
contact Array Y
contact_id int Y
score int Y
untouch_day int Y
contact_frequency float Y
name char Y
relationship int Y 0 家人 1 親戚 2 朋友 3 同學 4 同事 5 老師 6 領導 7 特別關注 8 其他
class int Y 1 摯友 2 好友 3 朋友 4 相識 5 存在

5.3.4 新建聯繫人(contact/new)

item content
接口 contact/new
描述 新建聯繫人
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y
name char Y
associated char Y user_id/contact_id
class int Y 1 摯友 2 好友 3 朋友 4 相識 5 存在
relationship int Y 0 家人 1 親戚 2 朋友 3 同學 4 同事 5 老師 6 領導 7 特別關注 8 其他
gender int N 0 女 1 男
status int N 0 在讀 1 在職 2 退休 3 無業
marital_status int N 0 單身 1 戀愛 2 已婚
birthdate time N
phone_number1 int N
phone_number2 int N
residence char N
birthplace char N

Response

參數名 類型 是否必須 描述
contact_id char Y

5.3.5 綁定社交應用(contact/social_app)*

item content
接口 contact/social_app
描述 綁定社交應用
驗證 Session
方法 GET/POST

Request

參數名 類型 是否必須 描述
user_id char Y
s_id char Y
contact_id char Y
social_platform int Y 0 微信 1 QQ 2 微博 (目前只考慮這三個平臺)
social_account char Y

Response

參數名 類型 是否必須 描述
social_id int Y
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章