周明月,鹿玲,呂婉婷,盛茹茗,田樹煒,陶伊豪
(遼寧科技大學(xué)計(jì)算機(jī)與軟件工程學(xué)院,遼寧 鞍山 114051)
在大學(xué)校園里,學(xué)生所學(xué)的專業(yè)各有不同,相同專業(yè)相同年級(jí)的學(xué)生會(huì)有許多不同的班級(jí),在同一時(shí)間段時(shí),有的學(xué)生有課有的學(xué)生可能沒有課。需要有一種聯(lián)系媒介將認(rèn)識(shí)的、不認(rèn)識(shí)的、想要認(rèn)識(shí)的以及僅僅想要有償求助需要代領(lǐng)快遞的學(xué)生們聯(lián)系到一起。在當(dāng)今這個(gè)信息時(shí)代,每位大學(xué)生都有各自的微信號(hào),微信號(hào)的身份識(shí)別也都是唯一的,這就為開發(fā)這種讓學(xué)生之間廣為聯(lián)系的大學(xué)生互助微信小程序奠定了基礎(chǔ)。
服務(wù)端的開發(fā)框架可以采用SSM 框架、Spring Boot框架或者ASP.Net框架等框架均可[1],這個(gè)小程序系統(tǒng)采用的是SSM 框架。用于服務(wù)端開發(fā)的流行平臺(tái)也有多種,例如Eclipes、MyEclipse 和InteliJ IDEA等,該系統(tǒng)采用的工具是InteliJ IDEA。SSM 框架是指Spring、SpringMVC 和MyBatis 三個(gè)開源框架[2-4]。MySQL 數(shù)據(jù)庫(kù)是一種關(guān)系型數(shù)據(jù)庫(kù),適用于中小型Web網(wǎng)站開發(fā),完全滿足小程序的后端數(shù)據(jù)庫(kù)要求[5]。訪問操作數(shù)據(jù)庫(kù)的訪問接口可以通過騰訊提供的API即wx.request(object)來實(shí)現(xiàn),這需要在服務(wù)端創(chuàng)建能返回JSON格式數(shù)據(jù)的各種訪問接口。
大學(xué)生互助微信小程序的功能分幾個(gè)部分,如發(fā)布尋物啟事、查詢失物招領(lǐng)、二手物品交易、拼車出行、結(jié)識(shí)同學(xué)、互助信息發(fā)布以及快遞信息發(fā)布與接單等功能。
微信小程序是基于微信的可以使用微信提供的各種原生功能接口,如讀取手機(jī)當(dāng)前位置等一些功能接口。微信小程序的開發(fā)是前后端分離的,好處是一個(gè)后端可以對(duì)應(yīng)多個(gè)前端,前后端之間的交互是通過JSON格式數(shù)據(jù)完成的。必備開發(fā)工具是微信開發(fā)者工具,微信開發(fā)者工具的使用需要先進(jìn)入微信公眾平臺(tái)進(jìn)行注冊(cè)申請(qǐng)小程序賬號(hào),可以注冊(cè)的主體類型包括個(gè)人、企業(yè)、政府、媒體以及其他組織。
小程序前端開發(fā)框架采用的是MINA(Miniapp Is Not App)框架[5],微信的MINA框架將頁面和邏輯這兩部分組合成了一個(gè)響應(yīng)式的數(shù)據(jù)綁定系統(tǒng),當(dāng)數(shù)據(jù)有變化時(shí)頁面會(huì)自動(dòng)隨之變化,其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)是由MINA框架負(fù)責(zé)的。小程序前端開發(fā)框架分為視圖層(View)和邏輯層(App Service)兩部分,每一個(gè)小程序頁面都是由存在于pages目錄下面的一個(gè)文件夾里的四個(gè)文件構(gòu)成[6],該文件夾里面的這四個(gè)文件的主文件名相同但擴(kuò)展名不同。第一個(gè)文件是擴(kuò)展名為.wxml 后綴的WXML(WeiXin Markup Language)模板文件,模板文件內(nèi)容主要是標(biāo)簽,也就是框架設(shè)計(jì)的一套標(biāo)簽語言構(gòu)成的標(biāo)簽,.wxml 文件結(jié)合基礎(chǔ)組件和事件系統(tǒng)就可以構(gòu)建出頁面結(jié)構(gòu)[7]。第二個(gè)文件是.wxss 后綴的WXSS(WeiXin Style Sheet)樣式文件.wxss 樣式文件用于描述頁面的樣式,樣式文件的特性與CSS 大部分特性相同,只是WXSS 對(duì)CSS 進(jìn)行了擴(kuò)充以及部分修改。上述兩種類型文件WXXML和WXSS構(gòu)成了視圖層。第三個(gè)文件是以.js 為后綴的JS 腳本邏輯文件,即Java Script 文件,這個(gè)文件是屬于邏輯層的文件,實(shí)現(xiàn)的是邏輯控制功能。第四個(gè)文件是以.json 為后綴的JSON 格式的配置文件[8]。在微信小程序里面不能直接訪問外部鏈接,但是騰訊為開發(fā)者封裝好了一個(gè)名為wx.request(object)的API,微信小程序通過wx.request(object)API 來訪問接口文件,再由該接口文件來訪問數(shù)據(jù)庫(kù)以獲取數(shù)據(jù)。小程序的一個(gè)模塊實(shí)現(xiàn)的是拼車出行功能,該模塊用到了地理位置,通過調(diào)用騰訊地圖WebService API 提供的一系列服務(wù)接口可以實(shí)現(xiàn),使用getApiKey、coord2label、ipLocation 等方法實(shí)現(xiàn)騰訊地圖服務(wù)接入,調(diào)用wx.getLocation API接口獲取當(dāng)前的地理位置[9-10]。
微信開發(fā)者工具提供了對(duì)云開發(fā)的支持,可使用云數(shù)據(jù)庫(kù)、云存儲(chǔ)、云函數(shù)和云托管等全部云能力。具體的數(shù)據(jù)庫(kù)可以使用微信開發(fā)者工具提供的微信宿主的云資源MongoDB非關(guān)系數(shù)據(jù)庫(kù),也可以直接借助云函數(shù)來訪問互聯(lián)網(wǎng)上部署的其他各種數(shù)據(jù)庫(kù)資源。數(shù)據(jù)庫(kù)、服務(wù)端以及小程序要訪問的訪問接口都可以部署在任何通過互聯(lián)網(wǎng)能夠訪問到的服務(wù)器上。
本系統(tǒng)采用的開發(fā)工具是InteliJ IDEA,系統(tǒng)開發(fā)使用的框架是SSM框架,管理端Web系統(tǒng)和數(shù)據(jù)庫(kù)都是部署在阿里云服務(wù)器ECS 上。開發(fā)者可以自己搭建服務(wù)端之外,像阿里、百度、騰訊、華為等公司都可以提供相應(yīng)的后端云服務(wù)。微信小程序的系統(tǒng)架構(gòu)圖如圖1所示。
圖1 微信小程序的系統(tǒng)架構(gòu)圖
大學(xué)生互助平臺(tái)微信小程序是純粹的大學(xué)生之間的一個(gè)互動(dòng)與溝通的平臺(tái),是大學(xué)生之間的無任何約束、自愿使用及自愿?jìng)鞑サ囊豢钗⑿判〕绦?。該微信小程序平臺(tái)能幫助在校大學(xué)生更好地解決一些生活與學(xué)習(xí)中遇到的困難,能夠提高學(xué)生的生活學(xué)習(xí)質(zhì)量,能夠促進(jìn)學(xué)生間的交流與合作,有助于提升學(xué)生的相互幫助意識(shí)。
這款小程序主要應(yīng)該實(shí)現(xiàn)的功能有幾個(gè)方面。通過小程序,學(xué)生之間無論認(rèn)識(shí)與否,都可以有償代取快遞;相互間出售或者購(gòu)買學(xué)過的二手書籍、筆記、其他學(xué)習(xí)資料和其他物品等,學(xué)生之間能夠通過小程序?qū)崿F(xiàn)信息交流與共享,實(shí)現(xiàn)相互間的相關(guān)學(xué)術(shù)咨詢等。學(xué)生可以通過小程序下單想要的商品,由賣方學(xué)生把想要出售的二手商品放到指定的固定位置,在每個(gè)固定位置都約定了一些交易物品暫存的課余時(shí)間段,并在該時(shí)間段內(nèi)設(shè)置由學(xué)生擔(dān)任的管理員負(fù)責(zé)管理,該管理員的薪水由平臺(tái)收益獲得的利潤(rùn)中支出。取物品時(shí)需要向管理員出示單號(hào)才可以領(lǐng)取物品。
基于微信小程序的大學(xué)生互助平臺(tái)分為服務(wù)器端和客戶端兩部分。服務(wù)器端實(shí)現(xiàn)的功能包括網(wǎng)站的后臺(tái)管理以及小程序的數(shù)據(jù)提供接口等;客戶端實(shí)現(xiàn)的功能主要是用戶通過手機(jī)端自由登錄客戶端平臺(tái)進(jìn)行小程序提供的各種功能的使用。
服務(wù)器端也就是管理端,實(shí)現(xiàn)的管理員管理功能包括十一項(xiàng)。個(gè)人中心模塊:該模塊的功能是使得管理員可以修改自己的登錄密碼,修改自己的基本信息。用戶管理模塊:通過用戶管理模塊,管理員可以對(duì)其他用戶信息進(jìn)行增加、刪除、修改和查詢等相應(yīng)的管理操作。尋物啟事管理模塊:管理員可以對(duì)尋物啟事信息進(jìn)行管理,可以查看評(píng)論。物品分類管理模塊:管理員可以對(duì)物品分類信息進(jìn)行管理。失物招領(lǐng)管理模塊:管理員可以對(duì)失物招領(lǐng)信息進(jìn)行管理,可以查看評(píng)論。結(jié)識(shí)同學(xué)管理模塊:管理員可以對(duì)全部的結(jié)識(shí)同學(xué)信息進(jìn)行管理,可以查看評(píng)論?;ブ畔l(fā)布與接單管理模塊:管理員可以對(duì)全部互助信息與接單信息進(jìn)行管理,可以查看評(píng)論。二手交易管理模塊:管理員可以對(duì)全部的二手交易信息進(jìn)行管理,可以查看評(píng)論。交易類型管理模塊:管理員可以對(duì)交易類型信息進(jìn)行管理。拼車出行管理模塊:管理員可以對(duì)全部的拼車出行信息進(jìn)行管理,可以查看評(píng)論。系統(tǒng)管理模塊:管理員可以回復(fù)信息,可以對(duì)輪播圖信息進(jìn)行查看或修改。
客戶端也就是用戶可操作端,客戶端模塊主要功能包括九項(xiàng)。用戶注冊(cè)登錄:該模塊實(shí)現(xiàn)用戶的注冊(cè)和登錄功能。尋物啟事:該模塊實(shí)現(xiàn)了尋物信息的列表顯示功能,在該模塊中,可以添加尋物信息,可以查看尋物信息詳情,可以對(duì)某條尋物信息進(jìn)行收藏或評(píng)論。失物招領(lǐng):該模塊實(shí)現(xiàn)失物招領(lǐng)的列表顯示,點(diǎn)擊某一條可以查看失物招領(lǐng)詳情,可以收藏或評(píng)論。結(jié)識(shí)同學(xué):該模塊實(shí)現(xiàn)結(jié)識(shí)同學(xué)的列表顯示功能,在該模塊里,可以添加想要結(jié)識(shí)的新同學(xué)的相關(guān)信息,可以查看全部結(jié)識(shí)同學(xué)詳情,可以收藏、點(diǎn)贊或評(píng)論?;ブ畔l(fā)布與接單:該模塊實(shí)現(xiàn)互助信息發(fā)布與接單的列表顯示功能,可以查看互助信息發(fā)布與接單的詳情,可以發(fā)表評(píng)論,可以下載文件。二手交易:該模塊實(shí)現(xiàn)二手交易的列表顯示,點(diǎn)擊某一條可以查看二手交易詳情,可以發(fā)表評(píng)論,可以下載文件。拼車出行:該模塊實(shí)現(xiàn)拼車出行的列表顯示功能,在該模塊中,用戶可以查看拼車出行詳情,可以發(fā)表評(píng)論。吐槽模塊:該模塊實(shí)現(xiàn)了吐槽功能,用戶可以發(fā)表自己的意見,對(duì)一些欠文明、欠優(yōu)雅以及一些不吐不快的事情進(jìn)行文字描述,暢所欲言。我的信息管理模塊:用戶登錄后可以進(jìn)入個(gè)人后臺(tái),在個(gè)人后臺(tái)可以修改自己的信息,可以對(duì)尋物信息進(jìn)行收藏或評(píng)論,可以對(duì)招領(lǐng)信息進(jìn)行收藏或評(píng)論,可以對(duì)結(jié)識(shí)同學(xué)信息進(jìn)行收藏、點(diǎn)贊或評(píng)論,可以對(duì)互助信息發(fā)布與接單信息進(jìn)行評(píng)論并且可以下載文件,對(duì)二手交易信息進(jìn)行評(píng)論并且可以下載文件,可以對(duì)拼車出行信息進(jìn)行評(píng)論,可以查看或刪除自己的收藏,可以發(fā)送信息。通過需求分析,確定系統(tǒng)功能如圖2所示。
圖2 系統(tǒng)功能結(jié)構(gòu)圖
數(shù)據(jù)庫(kù)使用MySQL。系統(tǒng)使用Navicat 作為數(shù)據(jù)庫(kù)的管理軟件。在數(shù)據(jù)庫(kù)中設(shè)計(jì)了多張數(shù)據(jù)表,其中的主要數(shù)據(jù)表包括如下幾張:結(jié)識(shí)同學(xué)、輪播圖、二手交易、失物招領(lǐng)、互助信息發(fā)布、接單、物品分類、尋物啟事、用戶、拼車出行等。以拼車出行為例,它的主要字段有主鍵id、添加時(shí)間、主題、空位置數(shù)、出發(fā)時(shí)間、出發(fā)地點(diǎn)、人均價(jià)格、發(fā)起人、聯(lián)系方式、發(fā)布時(shí)間、備注、圖片、點(diǎn)擊時(shí)間、用戶id、經(jīng)度、緯度和地址全稱。它的數(shù)據(jù)表結(jié)構(gòu)如表1所示。由于字段較多,在表中只列出了部分字段。
表1 拼車出行數(shù)據(jù)表
訪問數(shù)據(jù)庫(kù)是通過一個(gè)持久層框架MyBatis來完成的,MyBatis 對(duì)jdbc 操作數(shù)據(jù)庫(kù)的技術(shù)進(jìn)行了封裝,使操作數(shù)據(jù)庫(kù)變得更加簡(jiǎn)單。服務(wù)管理端包含了個(gè)人中心、用戶管理、尋物啟事管理、物品分類管理、失物招領(lǐng)管理、結(jié)識(shí)同學(xué)管理、互助信息發(fā)布與接單管理、二手交易管理、交易類型管理、拼車出行管理以及系統(tǒng)管理等功能。
前臺(tái)的用戶端的功能模塊有登錄模塊、尋物啟事模塊、二手交易模塊、結(jié)識(shí)同學(xué)模塊以及用戶自己的信息管理模塊等。以二手交易模塊為例,在該模塊中,實(shí)現(xiàn)了二手交易的列表顯示功能,點(diǎn)擊某條則可以查看該二手交易詳情,可以針對(duì)該物品發(fā)表評(píng)論。手機(jī)端的物品分類、查詢以及服務(wù)端管理操作界面如圖3所示。
圖3 手機(jī)端的物品分類、查詢以及服務(wù)端的管理操作
該款大學(xué)生互助平臺(tái)小程序?qū)τ谠谛4髮W(xué)生具有一定的實(shí)際意義,可以幫助沒有時(shí)間取快遞的同學(xué)在當(dāng)天取到快遞,可以幫助想要結(jié)識(shí)的同學(xué)們相互認(rèn)識(shí),可以賣出自己的不再使用的物品,也可以買到本校學(xué)生的二手書籍等東西。還有許多其他功能也都是在校大學(xué)生們?cè)谏钆c學(xué)習(xí)過程中涉及的一些功能,符合大學(xué)生們之間有償或者無償幫助的倡議,是一款純粹的大學(xué)生們自己的小程序。