呂沛強 薛曉冉 任艷
(蘇州大學(xué)應(yīng)用技術(shù)學(xué)院 江蘇省蘇州市 215325)
隨著生活節(jié)奏加快,高強度的工作與學(xué)習(xí)使得越來越多的人陷入情緒壓力和心理障礙而無法及時排解情緒和表達真實內(nèi)心世界。在當(dāng)今科學(xué)技術(shù)高速發(fā)展的今天,針對于人們心理需求的一系列平臺也在不斷的開發(fā)應(yīng)用,koala樹洞應(yīng)運而生。
koala樹洞運用微信平臺小程序的便捷及無需安裝的優(yōu)勢,讓用戶通過掃描二維碼或搜索微信小程序應(yīng)用名的方式,來使用koala樹洞的所有功能,為用戶提供一個安全和健康的分享平臺。
本文所設(shè)計樹洞小程序目的是為用戶提供通過文字或者圖片的方式將生活點滴以及個人心情進行發(fā)布的平臺,以傳遞真實情感。由此本系統(tǒng)設(shè)計了三個模塊,分別是廣場模塊,發(fā)布模塊,個人模塊,系統(tǒng)的功能結(jié)構(gòu),如圖1所示。
圖1:系統(tǒng)功能結(jié)構(gòu)圖
2.1.1 廣場模塊
廣場模塊顯示用戶發(fā)布的文字或者圖片,并且提供了點贊、刪除等功能。用戶可點擊感興趣的文字或圖片內(nèi)容以查看詳情,并進入二級界面對其他用戶發(fā)布的內(nèi)容進行回復(fù),該模塊是系統(tǒng)的核心模塊。
2.1.2 發(fā)布模塊
發(fā)布模塊包含生活板塊與娛樂板塊兩個部分。生活板塊包括學(xué)習(xí)生活、心情吐槽、戀愛子模塊;娛樂板塊包括音樂、圖書、影視子模塊;用戶可以根據(jù)自己的需求進入相應(yīng)模塊。
2.1.3 個人模塊
個人模塊提供更改頭像和姓名的功能,也可以顯示點贊、評論消息,加入樹洞一共多少天,以及提供反饋建議等。
2.2.1 系統(tǒng)業(yè)務(wù)流程設(shè)計
本系統(tǒng)的業(yè)務(wù)流程,首先用戶進入小程序,系統(tǒng)會判斷是否第一次進入,如果是第一次進入則會進入授權(quán)界面,如果不是則進入廣場界面,在該界面中,用戶可以根據(jù)感興趣的內(nèi)容進行點贊或者進入詳情頁進行回復(fù)。用戶也可以進入發(fā)布界面,自行選擇感興趣的板塊進行內(nèi)容發(fā)布。如果用戶需要修改個人資料則進入個人界面,同時,在個人界面里提供了查看點贊和評論用戶個人發(fā)表內(nèi)容的功能。其中發(fā)布功能的業(yè)務(wù)流程圖,如圖2所示。
圖2:發(fā)布功能流程圖
2.2.2 數(shù)據(jù)庫設(shè)計
本系統(tǒng)的數(shù)據(jù)庫是基于云開發(fā)所提供的JSON文檔數(shù)據(jù)庫進行設(shè)計完善,數(shù)據(jù)庫中的每條記錄都是一個 JSON 格式的對象。一個數(shù)據(jù)庫可以有多個集合(相當(dāng)于關(guān)系型數(shù)據(jù)中的表),集合可看成一個 JSON 數(shù)組,數(shù)組中的每個對象就是一條記錄,記錄的格式是JSON 對象。
本系統(tǒng)數(shù)據(jù)庫包括4張表,分別為用戶資料表、點贊表、用戶回復(fù)表以及用戶發(fā)布表。其中,用戶資料表來存儲用戶個人信息,點贊表來判斷用戶是否點贊,用戶回復(fù)表來存儲每個用戶的評論內(nèi)容,用戶發(fā)布表來存儲用戶發(fā)布的內(nèi)容。本系統(tǒng)數(shù)據(jù)庫模型,如圖3所示。
圖3:數(shù)據(jù)庫模型
本系統(tǒng)采用三層架構(gòu)設(shè)計思想,分別是視圖層、邏輯層以及數(shù)據(jù)訪問層。其中:
(1)視圖層是所有.wxml文件與.wxss文件的集合。wxml用于描述頁面的結(jié)構(gòu),wxss用于描述頁面的樣式。
(2)邏輯層,由JavaScript完成,將數(shù)據(jù)進行處理后發(fā)送視圖層,同時接受視圖層的事件反饋。在程序中用戶可以發(fā)布信息,評論等。
(3)數(shù)據(jù)訪問層,包括用戶的數(shù)據(jù)信息、圖片以及發(fā)布內(nèi)容的功能。本系統(tǒng)的照片上傳功能就是基于數(shù)據(jù)訪問層的云存儲,進行照片上傳及預(yù)覽。
當(dāng)用戶進入小程序時,系統(tǒng)通過判斷緩存中是否存在storage_info。如果存在storage_info,用戶將直接進入廣場界面。如果不存在,程序?qū)⒄{(diào)用微信小程序提供的getUserProfile接口來獲取用戶的Openid,姓名,頭像。并將其存入用戶資料表中。其中Openid是用戶的標(biāo)志。每個用戶都有一個OpenID(加密后的微信號,每個用戶對每個微信號的OpenID是唯一的)。調(diào)用接口的同時將storage_info設(shè)置為1。
(1)當(dāng)用戶進入廣場頁面時,系統(tǒng)會獲取數(shù)據(jù)庫中用戶發(fā)布表的的_openid以及其余的發(fā)布信息,將得到的_openid字段結(jié)合用戶資料表聯(lián)合查詢返回用戶具體資料存儲到數(shù)組DataPostArr中。當(dāng)用戶下拉觸底時,系統(tǒng)則更新查詢語句中的limit與skip跳過已獲得的信息,將得到的新數(shù)組使用concat拼接到DataPostArr中。最后前端通過得到DataPostArr渲染到頁面中。
(2)發(fā)布界面支持發(fā)布文字和圖片。當(dāng)發(fā)布文字時,通過調(diào)用cloud.openapi.security.msgSecCheck接口來檢測文字是否違規(guī);當(dāng)發(fā)布圖片時,通過調(diào)用wx.chooseImage()方法,從本地或者相冊獲得照片,并將本地臨時路徑通過云函數(shù)存儲到數(shù)據(jù)庫中。
廣場界面與發(fā)布界面的實現(xiàn),如圖4所示。
圖4:廣場界面與發(fā)布界面
基于微信小程序開發(fā)的樹洞,實現(xiàn)了用戶的生活記錄和情緒表達功能。通過個性化選擇發(fā)表模塊類型,用戶可以在廣場頁面中自由發(fā)表觀點,系統(tǒng)會及時給予用戶一定的反饋內(nèi)容,高效、準(zhǔn)確傳遞用戶的信息。未來將會對廣場界面構(gòu)架、功能的細化和界面美化等方面進行更加深入研究,給予用戶最大選擇化的改善和優(yōu)化樹洞應(yīng)用,從而進一步增加用戶良好的體驗感。