宋龍生 倪勝巧



摘要: 針對校園內學生物品易丟失但不易找回的問題,設計一款失物招領微信小程序。校園失物招領微信小程序方便快捷、無需安裝、安全穩定、快速引流,基于Spring Boot技術實現,充分利用微信小程序的優點,互補Web與App的優劣,實現了高效率的失物招領。
關鍵詞: 失物招領; 微信小程序; 校園; Spring Boot
中圖分類號:G434;TP311.52? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)10-86-04
Design and implementation of WeChat Mini Program for campus lost and found
Song Longsheng1, Ni Shengqiao1,2
(1. School of Information Science and Technology, Tibet University, Lhasa, Tibet 850000, China; 2. School of Computer Science, Sichuan University)
Abstract: Aiming at the problem that students' belongings are easy to lose but not easy to find in campus, a WeChat Mini Program for lost and found is designed. The campus lost and found WeChat Mini Program has the characteristics of convenience, fast, without installation, safe and stable, and fast drainage. Based on Spring Boot technology, it makes full use of the advantages of WeChat Mini Program, complements the advantages and disadvantages of web and App, solves the problem of inconvenient manual search, and improves the efficiency of campus lost and found.
Key words: lost and found; WeChat Mini Program; campus; Spring Boot
0 引言
校園內學生丟失物品的現象極其常見,失物招領的形式也不盡相同。線下可以通過張貼尋物啟事或到學校固定的失物招領處掛失與尋找,線上可以通過微信朋友圈、QQ空間等網絡平臺的轉發來達到失物招領的目的。但這些失物招領方式常常面臨各種問題,如尋找過于分散、人工查找不便、執行效率低、數據無法集中統一管理等問題,失物招領的效果不佳。線上校園失物招領的平臺如失物招領Lost & Found[1]、校園失物招領APP等,設計與開發[2]存在開發周期長、上線晚、推廣慢的問題;基于微信小程序的校園失物招領平臺構建[3]、基于微信小程序的校園失物招領平臺的設計與實現[4]存在功能單一且與用戶交互性低的問題;利用微信小程序開發的大學失物招領平臺[5]、基于微信小程序的失物招領系統開發[6]存在開發邏輯混亂、可用性低的問題。
我們設計的校園失物招領微信小程序除了實現基本的失物招領功能外,還對代碼進行了優化處理,利用AOP提高代碼的封裝及復用程度,針對在校學生增加了課程提醒功能,學生添加備忘錄和課程表便可使用該功能。在用戶體驗方面,對UI進行了美化且加入適當的提示提高與用戶的交互性。
1 相關技術
1.1 開發與測試環境
為了便于該校園失物招領微信小程序的升級及更新,項目采用前后端分離的開發方式。
前端開發工具使用騰訊推出的微信開發者工具,后端采用JetBrains軟件公司的IntelliJ IDEA進行開發。開發完成后為了測試該平臺在移動端的可用性與兼容性,分別對Android和iOS兩種不同的移動端系統進行項目測試。開發與測試環境見表1。
1.2 Spring Boot框架
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。它簡化了基于Spring的應用開發,通過少量的代碼就能創建一個獨立的、產品級別的Spring應用。Spring Boot的核心思想就是約定大于配置,多數Spring Boot應用只需要很少的 Spring 配置[7]。
1.3 MyBatis框架
MyBatis是一個Java持久化框架,它通過XML描述符或注解把對象與存儲過程或SQL語句關聯起來,映射成數據庫內對應的記錄。MyBatis將Java方法與SQL語句關聯,與JDBC相比,MyBatis簡化了相關代碼:SQL語句在一行代碼中就能執行。Mybatis官方給我們提供的逆向工程,也減少了我們的開發時間,使開發者可以針對數據庫單表生成所需要的代碼。
1.4 微信小程序
微信小程序,小程序的一種,英文名WeChat Mini Program,是一種不需要下載安裝即可使用的應用。相較于App和Web,微信小程序不僅開發成本和推廣成本較低,而且能夠依據用戶需求進行個性化制作。小程序包含一個描述整體程序的App和多個描述各自頁面的page[8]。
2 項目設計與實現
2.1 功能模塊設計
校園失物招領微信小程序主要分為失物招領與課程提醒兩大模塊,失物招領模塊包括發布失物招領模塊、發布尋物啟事模塊、展示發布詳情模塊及用戶評論模塊,課程提醒模塊包括生成課表模塊、上課提示模塊和備忘錄模塊。項目功能模塊設計詳見圖1。
2.2 數據庫設計
本項目采用MySQL數據庫,為了保證數據庫設計的合理性和減少數據不必要的冗余,數據庫表結構嚴格遵循MySQL三大范式[9],保證屬性的原子性、記錄的唯一性、字段的冗余性。根據圖1所示的項目功能模塊設計,在數據庫中建立4張表,各表詳細信息見表2。
2.3 接口設計
本項目后端需要設計接口為小程序前端提供數據。Swagger是全球最大的API開發框架,我們只需要按照它的規范去定義接口及接口相關信息,再通過Swagger的Swagger-ui組件就可以將controller層的方法進行可視化的展示。這樣,項目在開發新版本或者迭代更新的時候我們就只需要更新Swagger描述文件。因此,本項目后端使用Restful風格設計接口,結合Swagger用來定義接口和測試接口。
3 項目重要模塊實現
3.1 OSS
阿里云對象存儲服務(Object Storage Service,簡稱 OSS)是由阿里巴巴提供的一項高性價比、高性能以及高可靠性的云存儲服務。本項目的所有文件都放在阿里云OSS中已創建的Bucket中,具體操作步驟為:創建一個OSS實例ossClient、獲取想要上傳的文件并修改文件名稱、把文件按照日期進行分類、調用OSS方法進行上傳、關閉ossClient。注意:要使用阿里云OSS需要在pom.xml引入依賴com.aliyun.oss.aliyun-sdk-oss。
3.2 信息加密
為了提高用戶信息的安全性,有必要針對整個數據庫中所有需要保密的信息都進行加密,這樣,即使他人已經得到了整個數據庫,如果他們沒有解密的算法,也無法得到原來的密碼信息。本次項目加密采用 MD5信息摘要算法對其進行加密, MD5加密的操作都是以512比特位為計算單位的[10],與Base64相比,MD5加密完全不可逆,所以它的安全性比較高。
3.3 讀取Excel課程表
在課程提醒模塊,為了實現生成課程表的功能,需要導入課程表并且讀取出特定班級的課程。Apache POI是Apache軟件基金會提供的開放源碼函式庫,POI提供了API讓我們可以通過Java程序來實現對Microsoft Office格式檔案讀和寫的功能。本項目使用POI讀取解析Excel文件,pom.xml導入org.apache.poi.poi和org.apache.poi.poi-ooxml依賴之后,接口使用二維list集合來接收執行ExcelReader類的ExcelUtil.getReader()方法后得到的結果,并返回給前端。
3.4 小程序界面展示
用戶進入小程序并且小程序獲得微信授權之后,跳轉至首頁,如圖2。用戶可以瀏覽尋物啟事,如圖3。用戶可以發表自己的評論,如圖4。用戶收到的評論消息如圖5。用戶可以添加尋物啟事,如圖6。添加課程表如圖7。用戶可以選擇相應的功能。
4 結束語
本文主要論述了基于Spring Boot的校園失物招領微信小程序的設計與實現,介紹了各功能模塊設計、數據庫設計、接口設計等內容。通過使用阿里云OSS對象存儲、MD5加密、POI讀取解析Excel文件等方式來提升軟件性能,達到了預期目標。但是由于能力和精力等原因,在小程序的功能設計上,還存在可以擴展的功能,需進一步完善,如:發布失物加入定位功能,結合VR技術實現活動現場導航指引功能。
參考文獻(References):
[1] 張園.失物招領Lost & Found[D].大連工業大學,2017.
[2] 康耀龍,張景安,馮麗露.校園失物招領APP的設計與開發[J].電子技術與軟件工程,2020.17:73-74
[3] 張浩田,戚玫云,呂瑞雪.基于微信小程序的校園失物招領平臺建構[J].內蒙古科技與經濟,2019.4:80-81
[4] 鞏小芳,李敏,高萬福.基于微信小程序的校園失物招領平臺的設計與實現——以甘肅農業大學失物招領平臺為例[J].農家參謀,2020.4:285
[5] 鄭智方,黃政,張清瑞,趙磊.利用微信小程序開發的大學失物招領平臺[J].計算機產品與流通,2020.2:137
[6] 王慶月,吳宇,張天寶.基于微信小程序的失物招領系統開發[J].電子質量,2020.10:66-70
[7] 桂晨暉.基于SpringBoot框架對P2P借貸平臺的設計與實現[D].電子科技大學,2019.
[8] 微信小程序官方文檔https://developers.weixin.qq.com/miniprogram/dev/framework/structure.html
[9] 肖文娟,王加勝.基于Vue和Spring Boot的校園記錄管理Web App的設計與實現[J].計算機應用與軟件,2020.37(4):25-30,88
[10] 張昊,宋杰,羅名君.基于MD5算法的分布式無線傳感器網絡數據安全傳輸方法研究[J].蘇州科技大學學報(自然科學版),2019.36(1):68-74