王蘇皖 徐偉業(yè) 馬湘蓉
(信息與通信工程學(xué)院南京工程學(xué)院 江蘇省南京市 211167)
近年來,互聯(lián)網(wǎng)的飛速發(fā)展,再加上國家倡導(dǎo)節(jié)儉型社會這樣的背景和校園學(xué)生本身沒有收入來源的前提下,學(xué)生的二手物品回收與利用具有比較重要的實(shí)際意義。因此,不妨利用校園公網(wǎng)覆蓋的優(yōu)勢,借助校園網(wǎng)服務(wù)器開發(fā)一個(gè)二手物品的置換與交易網(wǎng)站。這樣的網(wǎng)站不僅解決了學(xué)生處理二手物品的問題,還可以有效利用閑置物,促進(jìn)大學(xué)生節(jié)約環(huán)保的意識。從長遠(yuǎn)角度來看,校園二手網(wǎng)站需求穩(wěn)定,受眾密集而且數(shù)量龐大,同時(shí)也具備極好的市場前景。此外,這種模式也很容易在高校推廣,具有比較強(qiáng)的實(shí)踐意義。與傳統(tǒng)的校園二手交易方式相比,用戶可以不受時(shí)間和地點(diǎn)的限制,隨時(shí)隨地進(jìn)行網(wǎng)上瀏覽和交易,大大提高了處理效率。
C/S(客戶端/服務(wù)器)和B/S(瀏覽器/服務(wù)器),是再普通不過的兩種軟件架構(gòu)方式,都可以進(jìn)行同樣的業(yè)務(wù)處理,甚至也可以用相同的方式實(shí)現(xiàn)共同的邏輯。但是因?yàn)锽/S架構(gòu)系統(tǒng)統(tǒng)一了客戶端,無需特殊安裝,擁有Web瀏覽器即可。它將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,可以在服務(wù)器上安裝數(shù)據(jù)庫,然后瀏覽器通過SQL或者其它數(shù)據(jù)庫來進(jìn)行數(shù)據(jù)交互[1]。因此,本網(wǎng)站選擇B/S架構(gòu)。
JAVA是由SUN公司推出的高級程序設(shè)計(jì)語言,其集成開發(fā)工具有很多,著名的有Eclipse、IntelliJ IDEA。Eclipse是由IBM開發(fā)的,譯為日食,寓意吞并SUN公司,最終沒有成功。IDEA是由JetBrains公司推出的,支持多種技術(shù)。與Eclipse相比,IDEA中的一個(gè)項(xiàng)目相當(dāng)于Eclipse中的一個(gè)workspace。IDEA中的一個(gè)項(xiàng)目可以包括多個(gè)Module,一個(gè)Module相當(dāng)于Eclipse中的一個(gè)項(xiàng)目。由于IDEA工具的出現(xiàn),使Eclipse的用戶大大減少,目前IDEA約占有60%的市場份額。
考慮到IntelliJ IDEA開發(fā)環(huán)境的友好,這里選擇IDEA進(jìn)行平臺設(shè)計(jì)。在該環(huán)境下創(chuàng)建SpringBoot項(xiàng)目。這是因?yàn)镾pringBoot可以省去很多配置,步驟簡單。另外,雖然IDEA內(nèi)部已經(jīng)很好的集成了maven和tomcat,但是在項(xiàng)目的Type信息配置時(shí),最好選擇Maven,這樣所有的相關(guān)框架的jar包就不需要手工下載和添加[2]。最后,當(dāng)環(huán)境按照要求配置好,就可以著手網(wǎng)站開發(fā)了。
校園二手物品交易平臺包含前后臺兩部分。其中前臺設(shè)計(jì)主要是注冊登錄、物品信息管理、購物車、物品支付等模塊;后臺管理系統(tǒng)由管理員登錄、用戶管理、物品管理等模塊組成的。系統(tǒng)總體框設(shè)計(jì)框圖如圖1所示。
表1:注冊登錄功能測試表
圖1:系統(tǒng)總體框設(shè)計(jì)框圖
圖2:主頁面板塊圖
圖3:模擬支付頁面
注冊登錄模塊:以游客身份進(jìn)入系統(tǒng)平臺可以瀏覽物品信息,倘若要進(jìn)行物品購買、評價(jià)等操作時(shí),需進(jìn)入注冊頁面進(jìn)行賬號申請。注冊時(shí),注冊信息不得填寫有誤或?yàn)榭?,不符則系統(tǒng)會報(bào)紅提示;成功后,用戶即可進(jìn)入登錄頁面,輸入已注冊成功的賬號信息,點(diǎn)擊登錄即可。同時(shí),該用戶的相關(guān)權(quán)限也會對其開放使用。
物品信息管理模塊:對物品的搜索、評價(jià)以及物品發(fā)布功能的設(shè)計(jì)。物品搜索模塊設(shè)計(jì)了搜索框模式、熱詞搜索模式以及導(dǎo)航條模式三種,極大程度上滿足了用戶各個(gè)方面的需求,降低了時(shí)間成本,帶來了良好的購物體驗(yàn);物品評價(jià)模塊是用戶在瀏覽物品信息時(shí),可對該物品進(jìn)行評價(jià)或提出疑問,也可查看他人的評價(jià)信息;物品發(fā)布模塊則需要用戶進(jìn)入發(fā)布窗口,填寫詳細(xì)的物品信息后,發(fā)布即可。
購物車管理模塊:登錄狀態(tài)下,用戶在瀏覽物品時(shí),可以點(diǎn)擊加入購物車按鈕,將其加入進(jìn)購物車內(nèi),系統(tǒng)提示成功;也可以直接點(diǎn)擊我的購物車,進(jìn)行查看其中的物品。
物品支付管理模塊:使用了支付寶提供的沙箱版進(jìn)行模擬實(shí)際操作,點(diǎn)擊物品后面的購買按鈕,即刻跳轉(zhuǎn)到支付頁面,支持掃碼或登錄支付。
個(gè)人信息管理模塊:用戶可以自行修改、重置個(gè)人資料,也可以查看自己發(fā)布物品的情況。
管理員登錄模塊:點(diǎn)擊后臺登錄跳轉(zhuǎn)到后臺管理系統(tǒng)登錄頁,輸入管理員登錄信息及驗(yàn)證碼,賬號驗(yàn)證通過即可進(jìn)入后臺管理系統(tǒng)。
用戶管理模塊:主要是對用戶信息的管理與維護(hù),管理員有權(quán)限對用戶賬號進(jìn)行凍結(jié)與激活操作。
物品管理模塊:對物品進(jìn)行更為具體的整理,主要包含物品圖片、物品名稱、發(fā)布者學(xué)號、分類、售價(jià)、瀏覽量、銷售狀態(tài)等有關(guān)信息,便于后期的查詢與統(tǒng)計(jì)。
評論管理模塊:列舉出了所有用戶對物品的評語,主要是由商品名稱、商品圖片、商品評論、評論者、評論時(shí)間組成。當(dāng)然,管理人員有操作權(quán)限,有權(quán)限去刪除一些不好的評價(jià)。
公告管理模塊:系統(tǒng)首頁可以看到公告板塊,目的是讓用戶了解并學(xué)會如何使用該系統(tǒng)。管理員可以對公告進(jìn)行編輯、修改,發(fā)布出注意事項(xiàng)等相關(guān)信息,以供用戶學(xué)習(xí)。
數(shù)據(jù)庫是信息系統(tǒng)的一個(gè)核心,一般來說需要根據(jù)實(shí)際實(shí)現(xiàn)高效的數(shù)據(jù)處理。數(shù)據(jù)庫設(shè)計(jì)的合理與否,對于系統(tǒng)的功能的實(shí)現(xiàn)及系統(tǒng)的安全性起到了決定性的作用。因此,數(shù)據(jù)庫需要盡量減少數(shù)據(jù)的冗余,并且數(shù)據(jù)庫的體積也要盡量減小,最后還要盡量提高數(shù)據(jù)的存儲速度。基于自己的數(shù)據(jù)庫的實(shí)際情況,這里選擇MySQL作為系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)??紤]到數(shù)據(jù)庫的范式與約束[3],在數(shù)據(jù)庫設(shè)計(jì)鏈表時(shí),一個(gè)實(shí)體類對應(yīng)一張表,最大限度避免大量數(shù)據(jù)堆積的問題。因?yàn)槿绻械臄?shù)據(jù)都在一張表,無疑會增加工作難度,日后也不方便維護(hù)。另外在命名時(shí)也做到“見名知意”,保證名字和實(shí)體類方法名稱的一致性。
按照實(shí)體的邏輯和聯(lián)系進(jìn)行信息表轉(zhuǎn)換,系統(tǒng)一共設(shè)計(jì)了10張基礎(chǔ)信息表,并且把學(xué)號或物品編號作為主鍵。分別是注冊信息表、管理員信息表、學(xué)生信息表、商品信息表、評價(jià)信息表、日志信息表、商品類型表、網(wǎng)站信息表、菜單信息表、公告欄信息表。
按照之前需求分析與系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)了系統(tǒng)目標(biāo),現(xiàn)對以下3個(gè)內(nèi)容做個(gè)說明。
(1)主頁面實(shí)現(xiàn)。當(dāng)用戶進(jìn)入系統(tǒng)Index主頁面時(shí),映入眼簾的是系統(tǒng)名稱以及LOGO,下方會有公告供其學(xué)習(xí)。登錄后,可以通過搜索框進(jìn)行模糊查找,篩選物品,當(dāng)然也可以使用熱詞檢索或?qū)Ш綑?。主頁面的右?cè)設(shè)置購物車以及發(fā)布物品的按鈕,用戶可以根據(jù)需求自行選擇。主頁面板塊圖如圖2所示。
(2)登錄注冊頁面實(shí)現(xiàn)。用戶在注冊過程中,使用了Ajax方法來驗(yàn)證賬號是否已經(jīng)存在,它能夠?qū)崿F(xiàn)局部刷新,異步與服務(wù)器進(jìn)行數(shù)據(jù)交換,進(jìn)行驗(yàn)證賬號是否已經(jīng)存在在數(shù)據(jù)庫中。用戶登錄,只需要正確輸入已注冊過的賬號信息,驗(yàn)證通過即可順利進(jìn)入系統(tǒng)。
(3)支付頁面實(shí)現(xiàn)。支付寶是第三方支付平臺[4],采用SSL協(xié)議來保障支付過程的安全,其域名為http://www.alipay.com。在支付寶官網(wǎng)平臺,找到研發(fā)服務(wù)進(jìn)而來到沙箱環(huán)境,通過下載、解壓、打開、生成等操作,完成對網(wǎng)關(guān)、秘鑰等信息的查看與處理。公鑰是支付寶官方進(jìn)行驗(yàn)簽的,當(dāng)我們使用私鑰加密好數(shù)據(jù)時(shí),已發(fā)出請求的數(shù)據(jù)可以被監(jiān)測到是否受到損害。如果想到知道該條數(shù)據(jù)是不是支付寶此時(shí)此刻需要使用的,我們有權(quán)通過查看支付公鑰來核實(shí)它。
環(huán)境配置完成后,我們需要下載一個(gè)支付寶沙箱版來模擬支付,在支付過程中,通過SDK驗(yàn)證簽名來獲取商品訂單號、支付寶交易號、付款金額等信息,當(dāng)一切正常時(shí),可以成功顯示出支付窗口,用戶進(jìn)行支付操作,進(jìn)而跳轉(zhuǎn)進(jìn)入付款成功或者失敗界面。如圖3模擬支付頁面所示。
無論開發(fā)人員如何嚴(yán)謹(jǐn)對待每個(gè)步驟,未知的不可預(yù)料的問題或多或少還會發(fā)生。測試的目的不是為了證明軟件的正確性,而是為了盡可能多的發(fā)現(xiàn)錯(cuò)誤,給用戶帶來更好的體驗(yàn)。
黑盒測試,也就是功能測試。它主要是進(jìn)行外部測試,從系統(tǒng)需求著手,根據(jù)測試用例來進(jìn)行相關(guān)測試,驗(yàn)證是否實(shí)現(xiàn)了設(shè)計(jì)功能[5]。白盒測試是對系統(tǒng)內(nèi)部邏輯進(jìn)行測試,通過系統(tǒng)內(nèi)部的邏輯結(jié)構(gòu)進(jìn)行用例的選擇,最終完成測試目的。系統(tǒng)對所設(shè)計(jì)的數(shù)據(jù)表進(jìn)行測試,以第一張數(shù)據(jù)表,用戶注冊信息表為例,測試結(jié)果如表1所示。
本系統(tǒng)根據(jù)校園二手物品交易的需求,經(jīng)需求分析、總體設(shè)計(jì)、功能設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)、編程設(shè)計(jì)以及功能實(shí)現(xiàn)等,最終實(shí)現(xiàn)了一個(gè)基于B/S架構(gòu)的二手物品交易系統(tǒng)。主要結(jié)合SpringBoot、Bootraps等框架技術(shù),并運(yùn)用了bootstrap Validator表單驗(yàn)證及ajax方法解決各類信息的驗(yàn)證,同時(shí),在功能實(shí)現(xiàn)中通過多表鏈接來進(jìn)行數(shù)據(jù)共享。
本設(shè)計(jì)緊緊圍繞校園實(shí)際狀況,適用性高、網(wǎng)站功能模塊清晰、總體功能基本上滿足了校園二手網(wǎng)站的要求。此外,界面人性化,操作簡單,也讓使用者覺得很方便。