滕毅,馬焯文
( 廣東第二師范學(xué)院 計(jì)算機(jī)學(xué)院, 廣東廣州, 510303)
在城市現(xiàn)代化建設(shè)的浪潮下,人們對(duì)“共享經(jīng)濟(jì)”消費(fèi)觀念逐漸發(fā)生轉(zhuǎn)變,在道路資源不足而引發(fā)的交通阻塞等問(wèn)題的大環(huán)境背景下,“拼車(chē)出行”逐漸轉(zhuǎn)變成移動(dòng)互聯(lián)網(wǎng)時(shí)代下引領(lǐng)的現(xiàn)代化出行新方式[1]。國(guó)外如美國(guó)、德國(guó)、日本、法國(guó)及歐洲等西歐國(guó)家大力推行私家車(chē)合乘制,以及交通政策的鼓勵(lì)支持,當(dāng)下國(guó)外拼車(chē)市場(chǎng)的發(fā)展已經(jīng)趨于成熟階段[2]。國(guó)內(nèi)的網(wǎng)約車(chē)市場(chǎng)也憑借著這個(gè)大趨勢(shì)風(fēng)口涌現(xiàn)出了一批優(yōu)質(zhì)的拼車(chē)平臺(tái)應(yīng)用。但對(duì)于校園師生用戶(hù)而言,仍然存在著不足之處。其主要體現(xiàn)在線(xiàn)上拼車(chē)平臺(tái)數(shù)量眾多,搭乘的群體多元化,無(wú)法實(shí)現(xiàn)合理高效地利用網(wǎng)約車(chē)資源,從而導(dǎo)致拼車(chē)成功率低。應(yīng)用市場(chǎng)中絕大多數(shù)的關(guān)于校園拼車(chē)平臺(tái)的設(shè)計(jì)僅僅是基于 APP 端 、Web 網(wǎng)頁(yè)端或單一的小程序端,雖然這些產(chǎn)品的出現(xiàn)從一定程度上滿(mǎn)足了校園用戶(hù)的拼車(chē)需求,但仍然無(wú)法解決用戶(hù)所處網(wǎng)絡(luò)環(huán)境不一致而導(dǎo)致拼車(chē)成功率低的痛點(diǎn)現(xiàn)狀。本文主要針對(duì)同校師生用戶(hù)群體,在現(xiàn)有的眾多拼車(chē)應(yīng)用提供優(yōu)質(zhì)拼車(chē)出行服務(wù)的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)一款實(shí)時(shí)撮合線(xiàn)下拼車(chē)活動(dòng)的跨用戶(hù)端小程序[3],尤其適合在校園不同校區(qū)之間的師生拼車(chē)平臺(tái),以滿(mǎn)足同校師生線(xiàn)上拼車(chē)的需求。
(1)發(fā)起順風(fēng)車(chē)活動(dòng)流程:在教師身份信息認(rèn)證成功條件下,教師用戶(hù)自駕車(chē)空載且主動(dòng)發(fā)起順風(fēng)車(chē)活動(dòng)。教師用戶(hù)選擇出發(fā)點(diǎn)和目的地具體地址,完善已有乘車(chē)人數(shù)、車(chē)牌號(hào)、出發(fā)時(shí)間等信息,選擇教師順風(fēng)車(chē)類(lèi)型進(jìn)行訂單發(fā)布,發(fā)布成功后,頁(yè)面跳轉(zhuǎn)至拼單廣場(chǎng)頁(yè)。
(2)發(fā)起拼車(chē)活動(dòng)流程:在個(gè)人實(shí)名認(rèn)證信息已完善的條件下,學(xué)生、教師用戶(hù)主動(dòng)發(fā)起拼車(chē)活動(dòng)學(xué)生、教師用戶(hù)選擇出發(fā)點(diǎn)和目的地具體地址,完善已有乘車(chē)人數(shù)、車(chē)牌號(hào)、出發(fā)時(shí)間等信息,選擇約拼類(lèi)型進(jìn)行訂單發(fā)布,發(fā)布成功后,頁(yè)面跳轉(zhuǎn)至拼單廣場(chǎng)頁(yè)。
(3)參與拼車(chē)活動(dòng)流程:在個(gè)人實(shí)名認(rèn)證信息已完善,拼單廣場(chǎng)已有待拼車(chē)訂單的條件下,學(xué)生、教師用戶(hù)制動(dòng)尋找拼車(chē)訂單。學(xué)生、教師用戶(hù)在拼單廣場(chǎng)頁(yè)檢索符合條件的待拼車(chē)訂單,選擇某一訂單,并完善參與拼車(chē)人數(shù)信息,參與拼車(chē)活動(dòng)成功,訂閱消息通知原訂單發(fā)起用戶(hù)。
目標(biāo)系統(tǒng)的功能層次劃分主要依據(jù)了 Model-View-Controller分層架構(gòu)的規(guī)范設(shè)計(jì)風(fēng)格,使用Vue.js 框架處理前端數(shù)據(jù)的前提下,對(duì)目標(biāo)系統(tǒng)進(jìn)行前后端分離開(kāi)發(fā),使得目標(biāo)系統(tǒng)功能模塊之間的耦合度大大降低[4]。
目標(biāo)系統(tǒng)依據(jù) MVC 分層架構(gòu)風(fēng)格進(jìn)行劃分,分為資源層、服務(wù)層、訪問(wèn)層和訪問(wèn)終端。資源層為系統(tǒng)業(yè)務(wù)數(shù)據(jù)管理操作提供基礎(chǔ)服務(wù);服務(wù)層負(fù)責(zé)根據(jù)業(yè)務(wù)場(chǎng)景進(jìn)行相應(yīng)的業(yè)務(wù)邏輯操作;訪問(wèn)層負(fù)責(zé)控制系統(tǒng)接口的請(qǐng)求調(diào)用或轉(zhuǎn)發(fā)等操作;訪問(wèn)終端負(fù)責(zé)與用戶(hù)進(jìn)行數(shù)據(jù)交互與展示。
圖1 校園拼車(chē)小程序客戶(hù)端流程圖
圖2 MVC架構(gòu)描述
本文目標(biāo)系統(tǒng)設(shè)計(jì)中,編程語(yǔ)言主要使用的是Java Script,數(shù)據(jù)庫(kù)采用MySQL8.09版本,CentOS7作為開(kāi)發(fā)系統(tǒng)服務(wù)器。前端框架采用Uniapp、ElementUi、Vue.js,后端框架采用 SpringBoot2.4.4版本,最后在IDEA中集成。
Uniapp是一款以Vue.js 為開(kāi)發(fā)基礎(chǔ)的多平臺(tái)適配前端框架,開(kāi)發(fā)者僅需遵循開(kāi)發(fā)規(guī)范,便可實(shí)現(xiàn)一套代碼、多平臺(tái)運(yùn)行的需求,極大簡(jiǎn)化了目標(biāo)系統(tǒng)多平臺(tái)適配的工作量[13]。在系統(tǒng)設(shè)計(jì)中主要運(yùn)用 Uniapp 框架作為UI界面開(kāi)發(fā)的基礎(chǔ)框架開(kāi)發(fā)一套兼容適配與 QQ 小程序 和微信小程序的目標(biāo)系統(tǒng)小程序。
圖3 系統(tǒng)架構(gòu)圖
系統(tǒng)分為兩個(gè)部分:小程序端和管理端。小程序端的目標(biāo)群體是校園師生用戶(hù),提供線(xiàn)上預(yù)約拼車(chē)活動(dòng)的撮合服務(wù);管理端的目標(biāo)群體是管理員,主要提供與系統(tǒng)業(yè)務(wù)相關(guān)的圖表與數(shù)據(jù)的管理服務(wù)。小程序端包含三個(gè)主頁(yè):首頁(yè)、拼單廣場(chǎng)頁(yè)和個(gè)人中心頁(yè)。管理端包含了五大主要頁(yè)面:首頁(yè)、權(quán)限管理、數(shù)據(jù)圖表、數(shù)據(jù)管理和登錄頁(yè)。
3.2.1 用戶(hù)首頁(yè)功能
用戶(hù)授權(quán)獲取地理信息后,實(shí)時(shí)顯示用戶(hù)所在地理位置坐標(biāo),填寫(xiě)完整相應(yīng)的乘車(chē)人數(shù)、車(chē)牌信息以及選取好行程的起始點(diǎn)即可點(diǎn)擊“發(fā)起約拼”或“教師順風(fēng)”按鈕進(jìn)行相應(yīng)拼車(chē)類(lèi)型的發(fā)布。首頁(yè)能夠分別跳轉(zhuǎn)至起始點(diǎn)和目的地地址選址頁(yè)面,用戶(hù)輸入地點(diǎn)關(guān)鍵字,系統(tǒng)將根據(jù)用戶(hù)輸入顯示相應(yīng)的推薦地址坐標(biāo)項(xiàng),點(diǎn)擊某一地址坐標(biāo)項(xiàng)即可完成地址選取,并返回首頁(yè)頁(yè)面。用戶(hù)選取拼車(chē)訂單的出發(fā)時(shí)間,點(diǎn)擊“確認(rèn)發(fā)布”按鈕后,將顯示訂單提交成功的提示反饋,并在用戶(hù)確認(rèn)后跳轉(zhuǎn)至 “拼單廣場(chǎng)頁(yè)”。
拼單廣場(chǎng)頁(yè)所顯示的信息項(xiàng)為處于等待拼車(chē)狀態(tài)且未超過(guò)預(yù)約出發(fā)時(shí)間的訂單列表,用戶(hù)能夠通過(guò)選擇某一訂單跳轉(zhuǎn)至相應(yīng)訂單詳情頁(yè)。在訂單詳情頁(yè)中會(huì)顯示對(duì)應(yīng)訂單的詳情信息,用戶(hù)通過(guò)僅需輸入?yún)⑴c該拼車(chē)訂單的乘客人數(shù),點(diǎn)擊“確認(rèn)”按鈕即可參與該拼車(chē)活動(dòng),界面顯示成功提示反饋,若該拼車(chē)訂單已經(jīng)滿(mǎn)座,則會(huì)從拼單廣場(chǎng)的訂單列表中刪除。
圖4 校園拼車(chē)小程序端、管理端界面結(jié)構(gòu)
圖5 小程序首頁(yè)
圖6 拼單廣場(chǎng)頁(yè)
3.2.2 個(gè)人中心頁(yè)功能
個(gè)人中心頁(yè)提供了全部訂單頁(yè)、個(gè)人信息頁(yè)、意見(jiàn)反饋?lái)?yè)和版本信息頁(yè)的入口選項(xiàng),通過(guò)點(diǎn)擊“授權(quán)登錄”按鈕,系統(tǒng)將詢(xún)問(wèn)用戶(hù)是否授權(quán)獲取用戶(hù)基本信息,確認(rèn)授權(quán)后將成功登錄,并展示相應(yīng)的用戶(hù)頭像的賬戶(hù)名。在個(gè)人中心頁(yè)登錄后,可查看全部訂單頁(yè)、個(gè)人信息頁(yè)、意見(jiàn)反饋?lái)?yè)、版本信息頁(yè)。在個(gè)人信息頁(yè)面中,頁(yè)面顯示為用戶(hù)個(gè)人實(shí)名認(rèn)證信息項(xiàng),有兩種身份類(lèi)別:學(xué)生和教師。用戶(hù)能夠完善相應(yīng)信息項(xiàng)進(jìn)行修改操作,信息完善后方可進(jìn)行拼車(chē)活動(dòng)。
圖7 個(gè)人中心頁(yè)、個(gè)人信息頁(yè)
管理端首頁(yè)主要提供了用戶(hù)端最近時(shí)段的實(shí)時(shí)數(shù)據(jù)展示以及平臺(tái)用戶(hù)量、歷史訂單量、年級(jí)分布、平臺(tái)端和用戶(hù)身份類(lèi)別等數(shù)據(jù)。
圖8 管理端首頁(yè)
(1)權(quán)限管理模塊:包括角色權(quán)限和用戶(hù)角色頁(yè),超級(jí)管理員能夠新增、編輯和刪除角色與權(quán)限的對(duì)應(yīng)關(guān)系,即哪種角色擁有哪些頁(yè)面權(quán)限以及用戶(hù)擁有哪種角色身份。
(2)數(shù)據(jù)圖表模塊:包括歷史訂單類(lèi)別統(tǒng)計(jì)頁(yè)和歷史訂單狀態(tài)統(tǒng)計(jì)頁(yè),所有管理員均可以查看。
(3)數(shù)據(jù)圖表模塊:包括訂單管理頁(yè)和用戶(hù)管理頁(yè),僅超級(jí)管理員能夠操作,當(dāng)出現(xiàn)錯(cuò)誤訂單數(shù)據(jù)的時(shí)候,能夠?qū)⒂唵蝿h除,能夠執(zhí)行修改和刪除用戶(hù)信息的操作。
圖9 角色權(quán)限頁(yè)
圖10 用戶(hù)角色頁(yè)
圖11 數(shù)據(jù)圖表模塊頁(yè)
本文所設(shè)計(jì)的小程序,使用Uniapp響應(yīng)式前端框架所研發(fā),成功實(shí)現(xiàn)了一套代碼兼容適配QQ 小程序和微信小程序的拼車(chē)小程序。小程序擁有的教師順風(fēng)車(chē)和拼車(chē)約單功能,貼切解決跨校區(qū)校園用戶(hù)拼車(chē)平臺(tái)不一致、安全性保證等痛點(diǎn)需求,滿(mǎn)足同校校園師生的拼車(chē)出行需求,但在一些問(wèn)題上尚有欠缺,例如對(duì)于個(gè)人信息的保密性風(fēng)險(xiǎn)問(wèn)題尚未得到針對(duì)性的解決方案,以及目標(biāo)系統(tǒng)中關(guān)于地理位置獲取的精度尚未達(dá)到精準(zhǔn)定位的水平,使得用戶(hù)的實(shí)際使用體驗(yàn)會(huì)與開(kāi)發(fā)預(yù)期達(dá)到效果有一定的落差。因此接下來(lái)將針對(duì)用戶(hù)信息進(jìn)行有效的加密存儲(chǔ),同時(shí)將從用戶(hù)體驗(yàn)的角度出發(fā),進(jìn)一步提升系統(tǒng)的性能,完善業(yè)務(wù)功能邏輯。