1.1. 概念術語描述 1.2. 基本設計描述 1.3. 主要界面流程描述
2.1. 開發人員 2.2. 開發環境與工具
陳兆庭、黃志鵬、吳雪晴:負責數據庫部分編碼,服務器部分編碼,服務器與安卓端通訊部分編碼git
胡宇晨、康鑫、林靜雯、塗涵越:負責用戶界面部分編碼,及數據處理邏輯的編碼github
工具 | 做用 |
---|---|
Android Studio | 安卓開發IDE |
Ubuntu | 服務器端系統 |
服務器端環境 | 提供web服務器功能 |
github | 團隊項目管理 |
標籤web
描述日記、小紙條的屬性。包括情緒類標籤、生活類標籤等。sql
日記數據庫
常規的日記。屬於一個日記本,幷包含一系列標籤。服務器
日記本網絡
日記的容器,用於分門別類。數據結構
小紙條框架
碎片化的日記,能夠用來寫碎片化的心情和感悟,方便查看與分享。屬於一個瓶子,幷包含一系列標籤。工具
瓶子
小紙條的容器,用於分門別類。
情緒統計
根據情緒類標籤對一段時間的情緒進行統計。
1.可以書寫與查看日記和瓶子,支持富文本編輯。
2.可以在日記與瓶子中加入音樂、圖片等多媒體信息。
3.可以對數據進行加密。
4.可以註冊新用戶並登陸,根據用戶將數據與服務器端同步。
5.UI清新怡人。
功能1:展現、查看日記。
以時間軸的方式展現最近的日記。
點擊日記跳轉到日記的查看界面。
功能2:編輯、刪除日記。
長按日記:可選擇編輯、刪除日記。
功能3:新寫一篇日記
點擊寫日記的按鈕,跳轉到編寫日記界面,新寫一篇日記。
功能4:進入瓶子界面。
點擊瓶子按鈕進入瓶子界面。
功能5:展現我的信息。
在標題欄左側的滑動目錄,展現我的信息如頭像、郵箱等。
功能6:進入統計界面
在標題欄左側的滑動目錄中可進入統計界面。
功能7:設置。
標題欄右側目錄點擊設置進入設計界面。
功能8:搜索。
標題欄右側點擊搜索進入搜索界面。
功能9:日曆。
標題欄右側點擊搜索進入日曆界面。
功能10:標籤管理
標題欄左側進入標籤管理
功能11:數據同步
功能1:按標籤搜索
功能2:按時間搜索
功能3:可選範圍(日記/紙條/所有)
功能4:顯示搜索歷史
功能1:添加、刪除一個瓶子。
添加過程當中給瓶子取一個名字,長按刪除瓶子
功能2:查看瓶子具體內容。
進入瓶子,查看瓶子的描述,瓶子裏的紙條。
功能1:刪除該瓶子
功能2:編輯該瓶子的相關信息(瓶子名字和描述)
功能3:添加、刪除、編輯瓶子中的紙條,編輯紙條進入紙條編輯界面。
功能4:查看紙條、進入查看界面。
功能1:進入日記編輯界面
功能2:查看前一篇日記,後一篇日記
功能1:進入紙條編輯界面。
功能2:查看前一張紙條,後一張紙條。
功能1:添加標籤、刪除標籤
功能2:創建標籤組
功能3:進入標籤組設置統計功能界面
功能1:選擇統計方式
功能2:進入統計模塊
功能3:查看該標籤組過去統計數據。
功能1:經過點擊日曆某一天來選中改日期
功能2:經過點擊日曆圖標彈出上拉框實現快速選擇日期
功能3:根據選中日期,在界面下方顯示當天的日記內容(縮略)
功能4:上滑日記記錄列表,顯示更多列表信息,日曆由月模式顯示改成周模式顯示
功能5:點擊某一條日記記錄跳轉到詳情展現界面
功能6:點擊圖片返回當前日期
功能7:左右滑動日曆時根據不一樣的月份顯示不一樣的圖片
功能1:輸入文本
功能2:點擊圖片圖標,插入本地圖片
功能3:根據展現的背景樣例,點擊相應背景圖片設置背景
功能4:滑動seekbar設置字體大小
功能5:根據展現的字體樣例,點擊相應按鈕設置文本字體
功能6:點擊確認圖標,儲存日記文件並跳轉到詳情界面
功能1:點擊編輯圖標,跳轉到寫紙條界面(和寫日記界面基本相同,只支持文本輸入)
功能2:點擊圖片圖標,選擇本地圖片並插入
功能3:點擊肯定圖標,保存瓶子內容,並跳轉到瓶子的展現界面
功能1:選擇日期範圍
功能2:根據選擇的日期範圍,獲取情緒值,將其在圖表上顯示出來
功能1:點擊登錄彈出登陸對話框,用戶需輸入帳號和密碼,若是帳號不存在,自動彈出註冊界面
功能2:點擊註冊彈出註冊界面
註冊界面描述:輸入基本信息,包括暱稱、性別、手機號/郵箱,點擊確認完成註冊,並跳轉到主界面
功能1: 設置暱稱、頭像
功能2: 跳轉修改用戶信息界面。
功能3: 退出登陸
功能1: 修改郵箱
功能2: 修改綁定手機
功能3: 修改密碼
表名 | 做用 |
---|---|
Diary | 存儲日記信息 |
Diarybook | 存儲日記本信息 |
Sentence | 存儲小紙條信息 |
Sentencebook | 存儲瓶子信息 |
Label | 標籤 |
DiaryLabel | 存儲日記與標籤的對應關係 |
SentenceLabel | 存儲小紙條與標籤的對應關係 |
SearchHistory | 存儲搜索歷史記錄 |
SearchResults | 存儲歷史搜索結果 |
表名 | 做用 |
---|---|
Users | 存儲用戶信息 |
各個用戶數據存儲的表結構還沒有肯定。
Diary類
接口名稱 | 參數 | 返回值 | 功能 |
---|---|---|---|
Diary | null | null | 空構造方法 |
Diary | String(內容) | null | 之內容構造日記 |
getText | null | String(內容) | 獲取日記內容 |
setText | String(新的內容) | null | 設置/修改日記內容 |
getDate | null | Date(日期) | 獲取日記日期 |
setDate | null | null | 新建並初始化日記日期 |
setDate | Data(新的日期) | null | 設置/修改日記日期 |
getDiarybook | null | Diarybook(日記所在日記本) | 獲取日記所在日記本 |
setDiarybook | Diarybook(指定的日記本) | null | 一個普通的setter方法,設置diary book屬性 |
insert | DatabaseHelper(數據庫助手) | null | 添加日記 |
update | DatabaseHelper(數據庫助手) | null | 修改日記 |
delete | DatabaseHelper(數據庫助手) | null | 刪除日記 |
insertLabel | DatabaseHelper(數據庫助手),Label(添加的標籤) | null | 給日記添加新標籤 |
deleteLabel | DatabaseHelper(數據庫助手),Label(指定的標籤) | null | 刪除指定標籤 |
getByDate |
DatabaseHelper(數據庫助手),Date(指定的日期) | List<Diary>(日記列表) | 獲取指定日期的全部日記 |
getAll |
DatabaseHelper(數據庫助手),Boolean(表示順序,true爲按建立日期升序排列,即最先的在最前面;false爲按建立日期降序排列,即最晚的在最前面) | List<Diary>(日記列表) | 獲取全部日記 |
getAllLabel | DatabaseHelper(數據庫助手) | List<Label>(標籤列表) | 獲取日記的全部標籤 |
getByRestrict |
DatabaseHelper(數據庫助手),String(特定字段),Date(起始日期),Date(終止日期),List<Label>(標籤列表),Boolean(表示順序,相似前述) | List<Diary>(日記列表) | 獲取全部符合條件的日記 |
countByDateLabel |
DatabaseHelper(數據庫助手),Date(起始日期),Date(終止日期),List<Label>(標籤列表) | long(日記數量) | 統計符合條件的日記數量 |
Label類
接口名稱 | 參數類型 | 返回值類型 | 功能 |
---|---|---|---|
Label | null | null | 空構造方法 |
Label | String(標籤名) | null | 以名稱構造標籤 |
getLabelname | null | String(標籤名) | 獲取標籤名稱 |
setLabelname | String(新的標籤名) | null | 設置/修改標籤名稱 |
insert | DatabaseHelper(數據庫助手) | boolean(是否成功) | 添加標籤 |
delete | DatabaseHelper(數據庫助手) | null | 刪除標籤 |
getAllLabel |
DatabaseHelper(數據庫助手) | List<Label>(標籤列表) | 獲取全部標籤 |
Sentence類
接口名稱 | 參數類型 | 返回值類型 | 功能 |
---|---|---|---|
Sentence | null | null | 空構造方法 |
Sentence | String(內容) | null | 之內容構造紙條 |
getText | null | String(內容) | 獲取紙條內容 |
setText | String(新的內容) | null | 設置/修改紙條內容 |
getDate | null | Date(日期) | 獲取紙條日期 |
setDate | null | null | 新建並初始化紙條日期 |
setDate | Date(新的日期) | null | 設置/修改紙條日期 |
getSentencebook | null | Sentencebook(紙條所在瓶子) | 獲取紙條所在瓶子 |
setSentencebook | Sentencebook(指定的瓶子) | 一個普通的setter方法,設置diary book屬性 | |
insert | DatabaseHelper(數據庫助手) | null | 添加紙條 |
update | DatabaseHelper(數據庫助手) | null | 修改紙條 |
delete | DatabaseHelper(數據庫助手) | null | 刪除紙條 |
insertLabel | DatabaseHelper(數據庫助手),Label(添加的標籤) | null | 給紙條添加新標籤 |
deleteLabel | DatabaseHelper(數據庫助手),Label(指定的標籤) | null | 刪除指定標籤 |
getByDate |
DatabaseHelper(數據庫助手),Date(指定日期) | List<Sentence>(紙條列表) | 獲取指定日期的全部紙條 |
getAll |
DatabaseHelper(數據庫助手),Boolean(表示順序,相似前述) | List<Sentence>(紙條列表) | 獲取全部紙條 |
getAllLabel | DatabaseHelper(數據庫助手) | List<Label>(標籤列表) | 獲取紙條的全部標籤 |
getByRestrict |
DatabaseHelper(數據庫助手),String(特定字段),Date(開始日期),Date(終止日期),List<Label>(標籤列表),Boolean(表示順序,相似前述) | List<Sentence>(紙條列表) | 獲取全部符合條件的紙條 |
countByDateLabel |
DatabaseHelper(數據庫助手),Date(開始日期),Date(終止日期),List<Label>(標籤列表) | long(紙條數量) | 統計符合條件的紙條數量 |
Diarybook類
接口名稱 | 參數類型 | 返回值類型 | 功能 |
---|---|---|---|
Diarybook | null | null | 空構造方法 |
Diarybook | String(日記本名) | null | 以名稱構造日記本 |
getDiarybookName | null | String(日記本名) | 獲取日記本名稱 |
setDiarybookName | String(新的日記本名) | null | 設置/修改日記本名稱 |
getAllSubDiary | DatabaseHelper(數據庫助手) | List<Diary>(日記列表) | 獲取日記本中全部日記 |
deleteSubDiary | DatabaseHelper(數據庫助手) | null | 刪除日記本中全部日記 |
insert | DatabaseHelper(數據庫助手) | null | 添加日記本 |
update | DatabaseHelper(數據庫助手) | null | 修改日記本 |
delete | DatabaseHelper(數據庫助手) | null | 刪除日記本 |
getAll |
DatabaseHelper,Boolean | List
|
獲取全部diary book;Boolean參數無心義 |
`getByName(DatabaseHelper, String(名字) | Diarybook | 經過名字獲取一個diary book,如無該名字的則返回null |
Sentencebook類
接口名稱 | 參數類型 | 返回值類型 | 功能 |
---|---|---|---|
Sentencebook | null | null | 空構造方法 |
Sentencebook | String(瓶子名) | null | 以名稱構造瓶子 |
getSentencebookName | null | String(瓶子名) | 獲取瓶子名稱 |
setSentencebookName | String(新的瓶子名) | null | 設置/修改瓶子名稱 |
getAllSubSentence | DatabaseHelper(數據庫助手) | List<Sentence>(紙條列表) | 獲取瓶子中全部紙條 |
deleteSubSentence | DatabaseHelper(數據庫助手) | null | 刪除瓶子中全部紙條 |
insert | DatabaseHelper(數據庫助手) | null | 添加瓶子 |
update | DatabaseHelper(數據庫助手) | null | 修改瓶子 |
delete | DatabaseHelper()數據庫助手 | null | 刪除瓶子 |
getAll |
DatabaseHelper,Boolean | List
|
獲取全部sentence book;Boolean參數無心義 |
`getByName(DatabaseHelper, String(名字) | Sentencebook | 經過名字獲取一個sentence book,如無該名字的則返回null |
DiaryLabel類
接口名稱 | 參數類型 | 返回值類型 | 功能 |
---|---|---|---|
DiaryLabel | null | null | 空構造方法 |
DiaryLabel | Diary(日記),Label(日記關聯的一個標籤) | null | 以日記<標籤構造關係 |
getDiary | null | Diary(在一組日記<標籤關係中的日記) | 獲取關係中的日記 |
getLabel | null | Label(在一組日記<標籤關係中的標籤) | 獲取關係中的標籤 |
setDiary | Diary(在一組日記<標籤關係中的日記) | null | 設置關係中的日記 |
setLabel | Label(在一組日記<標籤關係中的標籤) | null | 設置關係中的標籤 |
insert | DatabaseHelper(數據庫助手) | null | 添加關係 |
delete | DatabaseHelper(數據庫助手) | null | 刪除關係 |
SearchHistory類
接口名稱 | 參數類型 | 返回值類型 | 功能 |
---|---|---|---|
SearchHistory | null | null | 空構造方法 |
SearchHistory | String(條目的內容) | null | 以條目構造歷史記錄 |
getEntry | null | String(條目的內容) | 獲取條目 |
getAll |
DatabaseHelper(數據庫助手) | List<SearchHistory>(歷史記錄列表) | 獲取全部歷史記錄 |
deleteEntry | DatabaseHelper(數據庫助手) | null | 刪除條目 |
deleteAllEntry |
DatabaseHelper(數據庫助手) | null | 刪除全部條目 |
注:以上帶加粗的爲構造方法,帶底紋
的爲靜態方法。
使用安卓自帶的sqlite數據庫,完成各類信息的存儲。爲了方便編碼,使用了ormlite框架。爲了給數據加密,使用sqlcipher開源包。
基本表結構:
使用數據庫,管理一張用戶名、密碼、用戶信息的表,並存儲每一個用戶同步的數據庫數據。對於用戶須要同步的文件,存在每一個用戶各自的文件夾下。
使用服務器與安卓各自的網絡功能,完成通訊。
詳見2.3