朱心洲,胡 譽,蔣靖妍
(華東交通大學(xué) 軟件學(xué)院,南昌 330013)
由于大學(xué)校園內(nèi)閑置物品交易方便、大學(xué)生的閑置物品有較高二次利用價值(如書籍、文體工具)等原因,高校閑置物品交易市場一向深受大學(xué)生的青睞,是大學(xué)校園內(nèi)的一大主要活動.目前大學(xué)校園內(nèi)發(fā)布閑置物品信息主要通過建立校園“跳蚤市場”QQ 群,群員在群內(nèi)以聊天的形式發(fā)布信息這樣的方式去實現(xiàn).這種方式受限于QQ 群的一些缺點,存在商品信息的覆蓋人數(shù)有限,很難對群內(nèi)人員的身份進行安全認證、無法對閑置物品信息做一個有效的分類整合等問題[1,2].
QQ 小程序是一種無需下載安裝、即點即用、用完即走的應(yīng)用程序.它依附于國民級社交軟件QQ,對大學(xué)校園內(nèi)的用戶而言,QQ 更適用于校園生活的一些特定場景,因此大多高校學(xué)生使用QQ 頻率大于微信.同時,QQ 小程序可通過QQ 下拉窗口、首頁+、動態(tài)玩一玩、空間小游戲、小程序中心、搜索、掃一掃及社交通道(聊天及空間分享)這些入口輕松打開[3],使用起來十分方便.利用QQ 小程序可以一鍵將閑置物品信息分享至QQ 群、QQ 空間、QQ 好友以及微信.在提高自己閑置物品曝光度的同時,可以對小程序有一個裂變式的推廣,以此可實現(xiàn)快速覆蓋在校學(xué)生.利用QQ 小程序,可以有效解決現(xiàn)有在QQ 群內(nèi)發(fā)布閑置物品信息方式下信息容易被刷掉、人員的覆蓋面有限、無法對閑置物品信息做一個有效分類整合的問題.同時,借助校園統(tǒng)一身份認證接口對用戶做身份的認證,可解決現(xiàn)有方式下QQ 群內(nèi)人員魚龍混雜無安全保障的問題,以幫助高校學(xué)生獲得更好的閑置物品交易體驗,打造高校特色閑置物品信息平臺.
作為國內(nèi)社交屆二把手,QQ 有著超過8 億的月活用戶,除去和微信重合的用戶,QQ 最活躍的用戶群體以95 及00 后為主,可彌補微信在人群覆蓋上的短板[4].QQ 的主要活躍用戶年齡段就證明使用QQ 的用戶大多都是在校學(xué)生.同時,QQ 小程序具備方便便捷的優(yōu)點,可以直接將小程序中的內(nèi)容分享至QQ 群、QQ 空間、QQ 好友進行曝光.用戶可以輕松地從QQ 群、QQ空間中點擊分享的內(nèi)容進入小程序,比微信小程序更加適合于應(yīng)用在校園場景,具有出色的用戶體驗.
從現(xiàn)有相關(guān)研究中可以看出,已上線的具有閑置物品交易功能的應(yīng)用程序多以微信小程序或網(wǎng)站為主.這類小程序功能過于繁雜,且無法與現(xiàn)有的校園“跳蚤市場”QQ 群緊密結(jié)合.在大學(xué)校園內(nèi)的閑置物品交易多以校內(nèi)面交、當(dāng)面付款這樣的背景下顯得過于功能冗余,亦無法實現(xiàn)閑置物品發(fā)布者和購買者的便捷聯(lián)系,以及高效的對商品信息進行曝光[5-11].
結(jié)合校園活動的特性及高校學(xué)生對校園閑置物品信息平臺的需求,高校閑置物品信息平臺的功能在包括完整的用戶功能、商品發(fā)布功能以及管理員管理功能的同時,結(jié)合現(xiàn)有的校園閑置物品交易方式與特色以及高校學(xué)生的使用習(xí)慣,設(shè)計完善平臺功能,滿足以下功能需求:
(1)商品信息詳情可以一鍵分享曝光,借助QQ 小程序便于分享的優(yōu)勢,為用戶提供可以一鍵將商品信息分享到現(xiàn)有校園“跳蚤市場”QQ 群、QQ 空間以及QQ 好友的入口,提高商品的曝光率從而提高商品的成交率.
(2)提供模糊的商品搜索功能和專屬校園的多維商品分類展示,幫助尋找需求商品的用戶可以迅速的定位到自己所需的商品.同時利用舊書、電子產(chǎn)品、求購商品、生活用品等這一類基于校園環(huán)境下的商品分類標簽,幫助用戶可以根據(jù)類別便捷的找到自己所需的商品.
(3)閑置物品信息平臺需要有較高的安全性,利用校園統(tǒng)一身份認證接口對用戶做身份認證,有效解決現(xiàn)有方式下QQ 群內(nèi)人員魚龍混雜,發(fā)布信息的真實性無法考量的問題.同時,采用前后端分離方式部署開發(fā),前后端之間的通信采用HTTPS 協(xié)議,遵循RESTful API 設(shè)計規(guī)范,可以有效保障用戶隱私和通信之間數(shù)據(jù)傳輸安全[12,13].
(4) 為用戶提供可靠的服務(wù),部署云服務(wù)器時采用Nginx 部署Web 服務(wù),Nginx 支持反向代理、支持熱部署、可以高并發(fā)連接、有較高的穩(wěn)定性.能夠為用戶提供7×24 小時的連續(xù)、穩(wěn)定的服務(wù)[14,15].
QQ 小程序框架與微信小程序框架相同,在技術(shù)架構(gòu)上可分為視圖層、邏輯層、組件、API 幾個部分.視圖層負責(zé)頁面結(jié)構(gòu)、樣式和數(shù)據(jù)展示,用QML,QSS 語言編寫.邏輯層負責(zé)業(yè)務(wù)邏輯,調(diào)用API 等,基于JavaScript進行編寫.小程序開發(fā)采用MVVM 軟件架構(gòu)模式(如圖1所示),極大地提高了開發(fā)效率和代碼抽象度[16].同時,QQ 小程序?qū)ΤR姷囊恍┮晥D層組件及邏輯層方法進行了封裝,極大的降低了開發(fā)者的開發(fā)難度,使UI風(fēng)格統(tǒng)一美觀、提升了用戶的使用體驗[7].
圖1 QQ 小程序MVVM 架構(gòu)圖
Flask 是一個使用Python 編寫的輕量級Web 應(yīng)用框架,以Werkzeug 和Jinja2 為核心,具有輕巧、簡潔、擴展性強、開發(fā)成本低等優(yōu)點[17].因其輕便性,Flask 框架特別適合用在小程序的開發(fā)上,可利用Flask框架生成RESTful 風(fēng)格的API,如圖2所示.一套接口即可和Web 端、小程序端進行交互.同時,亦可充分保障數(shù)據(jù)的安全性[18].
圖2 Flask+MySQL 生成RESTful API 架構(gòu)圖
小程序中的數(shù)據(jù)主要包括商品數(shù)據(jù)、首頁通知數(shù)據(jù)和用戶個人數(shù)據(jù).用戶在小程序端的交互與管理人員在后臺系統(tǒng)中的交互是系統(tǒng)數(shù)據(jù)的來源.用戶通過小程序請求商品信息并向服務(wù)端發(fā)送個人信息,進行發(fā)布商品、留言、收藏、在校身份認證等操作.服務(wù)器端收到用戶的請求后,在控制層進行數(shù)據(jù)的合法性校驗及處理.并將處理結(jié)果返回至視圖層,由視圖層渲染展現(xiàn)給用戶.當(dāng)買家用戶在相應(yīng)商品底下進行留言后,服務(wù)器端會將留言的內(nèi)容以小程序服務(wù)通知的形式反饋給賣家,使賣家得以及時回復(fù).當(dāng)賣家需要對商品信息進行修改時,可以對已發(fā)布的商品進行編輯、刪除操作.系統(tǒng)管理員可實時監(jiān)控用戶行為,記錄相關(guān)操作并進行管理.
閑置物品信息平臺分為QQ 小程序用戶端和Web管理員后端,以RESTful API 為通信橋梁.通過需求調(diào)研,針對華東交通大學(xué)在校大學(xué)生對商品展示、商品發(fā)布、與商品主人的聯(lián)系方式等方面的需求制定以下功能,如圖3所示.
其中基礎(chǔ)功能包括:閑置物品、閑置書籍、求購信息的發(fā)布、刪除以及編輯功能、商品的收藏與取消收藏、商品的搜索與推薦商品的展示、用戶授權(quán)登錄、用戶修改個人頭像及用戶名、用戶分享小程序、聯(lián)系客服、意見反饋、商品信息的監(jiān)控和統(tǒng)計、發(fā)布輪播圖信息、用戶使用狀態(tài)的管理等功能.
特色功能包括:用戶在校身份認證、以及通過認證狀態(tài)判斷使用權(quán)限、多維度類別展示商品信息、一鍵分享商品信息、相似商品推薦、留言及留言回復(fù)、新留言提醒、一鍵添加商品發(fā)布者或留言者為QQ 好友、給收藏商品用戶發(fā)送商品降價提醒等功能.
(1) 校園身份認證:校園身份認證功能通過使用Python 的requests 模塊模擬登錄校園教務(wù)處驗證學(xué)生的賬號密碼是否正確以實現(xiàn).通過該功能可以確保使用用戶為高校師生,充分保證用戶在平臺上查看的商品信息的真實性,保障用戶不受騙.未進行校園身份認證的用戶在發(fā)布商品信息和查看商品發(fā)布人的聯(lián)系方式或進行留言時,將跳轉(zhuǎn)至校園身份認證頁,如圖4所示.在校園身份認證頁輸入教務(wù)處賬號與密碼點擊確認即可進行認證,如圖5所示.隨后賬號密碼將被傳送至教務(wù)處登錄接口,登錄成功,即可完成認證.該模塊關(guān)鍵代碼如下(Python):
s=requests.Session()
post_url='教務(wù)處登錄態(tài)驗證接口'
m=hashlib.md5()//對密碼進行md5 加密
b=password.encode(encoding='utf-8')
m.update(b)
password=m.hexdigest()
form_data={'UserName':username,'Password':password}
r=s.post(url=post_url,headers=headers,data=form_data)
if(r.text==“succcess”) return 1
else return 0
圖3 閑置物品信息平臺功能示意圖
圖4 提示認證
(2)商品推薦:基于校園閑置物品信息平臺的特性,該系統(tǒng)通過相似性推薦算法為用戶推薦商品.相似性推薦定義:對于新用戶A,沒有他的歷史行為數(shù)據(jù),在他點擊了某一商品item-X 的場景下,可以將與item-X同一類別下的相似商品推薦給新用戶A[8].根據(jù)校園需求,該系統(tǒng)以一級標簽+二級標簽的形式制定商品類別標簽.同時,在進入小程序的首頁即顯示推薦信息,如圖6所示.該模塊核心代碼如下(Python):
rank=dict() #記錄給user 的推薦物品(沒有歷史行為的物品)
action_item=userviewdata #獲取用戶user 最近瀏覽的商品信息的類別
for item,score in action_item.type:
for j,wj in sorted(self.W[item].items(),key=lambda x:x[1],reverse=True)[0:K]:#取出與item 類別相同的物品
if j in action_item.keys():#如果該物品已被瀏覽,則不推薦
continue
rank.setdefault(j,0)
rank[j] +=score * wj #累計物品j 與item 的相似度*興趣評分,作為user 對物品j 的興趣程度
(3)商品降價提醒:當(dāng)商品發(fā)布者修改商品的價格時,系統(tǒng)會對商品價格的變化做一個判斷,若商品降價,系統(tǒng)通過訂閱消息給收藏了該商品的用戶發(fā)送商品降價提醒,如圖7所示.這樣能有效的幫助用戶以便宜的價格買到商品,提高閑置物品交易平臺的成交率.
(4)一鍵添加好友:該功能利用了QQ 小程序的特性API 實現(xiàn),可直接從小程序中添加對方為好友:當(dāng)用戶在閑置物品信息平臺中看到自己心儀的商品時,可以點擊商品詳情頁的“添加好友”按鈕,如圖8所示.小程序會自動拉起添加賣家好友的申請頁面,如圖9所示.方便買家與賣家聯(lián)系.為小程序用戶提供出色便捷的用戶體驗.該模塊的關(guān)鍵代碼如下(JavaScript):
//拉起添加好友授權(quán)申請
qq.getSetting({
success(res) {
if (!res.authSetting['setting.addFriend']) {
qq.authorize({
scope:'setting.addFriend',
success() {
}})}}})
//添加好友按鈕
<button open-type="addFriend" open-id="{{content.openid}}">添加好友</button>
圖5 校園身份認證界面
圖6 推薦信息展示界面
(5)留言相關(guān)功能:留言相關(guān)功能包括用戶留言、新留言提醒及留言回復(fù)功能.買家用戶可以對商品進行留言,之后賣家會收到新留言提醒,并對買家用戶的留言進行回復(fù),如圖10所示.系統(tǒng)借助小程序服務(wù)通知消息實現(xiàn)新留言及時的告知提醒.該功能適用于校園生態(tài),使買家和賣家可以便捷的進行聯(lián)系.
圖7 關(guān)注商品降價提醒
圖8 添加好友按鈕
圖9 點擊“添加好友”按鈕后拉起的好友申請
圖10 留言功能
QQ 小程序端以商品展示模塊、商品發(fā)布模塊、用戶模塊3 個主要模塊組成,各大主要模塊又包含著其他小模塊,各模塊與云服務(wù)器通過HTTPS RESTful API 進行通信,各模塊之間具有高內(nèi)聚性和低耦合性.
商品展示模塊可獲得有效的所有商品信息,并根據(jù)條件篩選后呈現(xiàn)給用戶,如圖11所示.
圖11 商品展示模塊
當(dāng)用戶點擊某一商品時,即可查看商品的詳細信息、進行收藏、留言、添加好友等操作;發(fā)布模塊用于用戶發(fā)布閑置物品,用戶可按照舊物、舊書、求購物品進行商品的信息的發(fā)布,如圖12所示.用戶模塊可用于QQ 一鍵登錄、進行校園身份認證綁定校園信息、顯示用戶已發(fā)布及已收藏的信息,并對這些信息進行編輯(已發(fā)布信息)或刪除的操作,如圖13所示.
小程序用戶端可結(jié)合原有校園“跳蚤市場”QQ 群一同使用,當(dāng)用戶在小程序內(nèi)發(fā)布信息后,可一鍵分享至QQ 群中曝光,如圖14所示.同時借助了QQ 小程序的添加好友、模板消息、訂閱消息的特性,為用戶帶來了良好的閑置物品交易體驗.
圖12 商品發(fā)布模塊
圖13 用戶模塊
平臺使用騰訊云標準型S5 (4 GB 系統(tǒng)內(nèi)存、2 核處理器、2 Mbps 帶寬)云服務(wù)器提供云服務(wù),使用CentOS 7.6 系統(tǒng)部署開發(fā)環(huán)境.將圖片等靜態(tài)資源文件存入騰訊云對象存儲服務(wù)中.并備案域名申請SSL 證書部署HTTPS 服務(wù),用于保障信息數(shù)據(jù)的安全.
截止2020年1月12日,小程序共有5182 名用戶注冊,如圖15所示.已發(fā)布物品579 件、商品總瀏覽量37766次,如圖16所示.
圖14 商品信息分享
圖15 累計用戶(數(shù)據(jù)來源:小程序助手)
圖16 商品數(shù)據(jù)統(tǒng)計(數(shù)據(jù)來源:后臺統(tǒng)計)
基于Flask 框架與QQ 小程序的校園閑置物品信息平臺可供各個高校推廣使用.該平臺可有效規(guī)范校園內(nèi)的閑置物品交易,協(xié)助校學(xué)生會監(jiān)管校園內(nèi)的閑置物品交易市場.同時,該平臺的推廣使用可幫助在校大學(xué)生將自己的閑置物品方便的轉(zhuǎn)賣于他人或幫助在校大學(xué)生以合適的價格買到大學(xué)生活中需要的物品或書籍,有效的避免了舊物或舊書的浪費,大力提倡了在校園內(nèi)落實舊物利用、環(huán)保節(jié)約的生活理念.在校園內(nèi)提升學(xué)生的環(huán)保理念,使其可以從個人做起建設(shè)節(jié)約環(huán)保型社會.從而推動我國的生態(tài)文明建設(shè),實現(xiàn)美麗中國.