高義景,王永盛,喬雨(通訊作者)
(南京工業(yè)大學(xué)浦江學(xué)院,江蘇南京,211200)
隨著社會逐漸進(jìn)入信息化時代,網(wǎng)絡(luò)已成為人們生活中的重要組成部分,在享受互聯(lián)網(wǎng)為生活帶來便捷的同時,網(wǎng)絡(luò)也越來越多的擠占人們的業(yè)余時間。這種現(xiàn)象在當(dāng)代大學(xué)生中表現(xiàn)得尤為明顯,導(dǎo)致學(xué)生沒有時間也沒有動力走出室內(nèi),到戶外進(jìn)行足夠的體育鍛煉[1]。
為了激發(fā)人們的健康鍛煉和健康生活的意識,運動軟件便應(yīng)運而生。這類軟件通過實時地記錄用戶的運動數(shù)據(jù)和身體指標(biāo)來反映用戶當(dāng)前的運動表現(xiàn),并且在運動軟件中融入了社交的功能,進(jìn)一步地鼓勵人們?nèi)ブ鲃拥仃P(guān)注自我的身體狀態(tài)。本文基于這一角度,提出了大學(xué)校園范圍內(nèi)的個人健康管理平臺,通過將大學(xué)體育課和學(xué)生個人課外運動的數(shù)據(jù)記錄到數(shù)據(jù)庫,后臺進(jìn)行數(shù)據(jù)分析,為學(xué)生的體質(zhì)健康給出提示,并給出相關(guān)的運動和飲食建議,從而提升大學(xué)生對個人體質(zhì)健康的關(guān)注度[2]。本系統(tǒng)提供如身體質(zhì)量指數(shù)BMI的參考指標(biāo)等供用戶參考。
基于數(shù)據(jù)庫技術(shù)的大學(xué)生健康管理平臺是利用數(shù)據(jù)庫技術(shù)對學(xué)生的運動數(shù)據(jù)進(jìn)行結(jié)構(gòu)化管理,將處理過的數(shù)據(jù)進(jìn)行可視化,展現(xiàn)給學(xué)生用戶。本系統(tǒng)采用具有較好的獨立性和安全性的B/S 架構(gòu)于SSM 框架技術(shù),結(jié)合Web 開發(fā)及React 前端技術(shù)進(jìn)行設(shè)計與開發(fā)。用戶通過Web 段登錄,可以自主地錄入個人運動的情況,并查看系統(tǒng)分析后給出的運動狀態(tài)指標(biāo)和飲食建議。
基于數(shù)據(jù)庫技術(shù)的大學(xué)生健康管理平臺采用MySQL 作為數(shù)據(jù)庫管理系統(tǒng),MySQL 是目前最流行的關(guān)系型數(shù)據(jù)庫之一,具有體積小、速度快、開源等特點,在Web 開發(fā)方面得到了廣泛的應(yīng)用[3]。
根據(jù)需求分析階段的討論,本系統(tǒng)的數(shù)據(jù)庫共包含五張表,分別為user(用戶表)、food(食品表)、sport(運動表)、user_food_history(用戶飲食記錄表)和user_sport_history(用戶運動記錄表),分別如表1 至表5 所示。
表1 user(用戶表)
表2 sports(運動表)
表3 food(食品表)
表4 user_sport_history(用戶運動記錄表)
表5 user_food_history(用戶飲食記錄表)
首先,系統(tǒng)前端的實現(xiàn)利用了React 框架來構(gòu)建UI,通過在React 中傳遞多種類型的參數(shù),幫助渲染UI 界面、靜態(tài)HTML DOM 元素、傳遞動態(tài)變量等。其次,后端代碼使用Spring Boot 作為開發(fā)框架,該框架能夠提供控制反轉(zhuǎn)特性的容器,通過依賴注入實現(xiàn)控制反轉(zhuǎn)來將對象生命周期容器化,從而實現(xiàn)持久化的數(shù)據(jù)訪問。
系統(tǒng)的前后端數(shù)據(jù)交互是利用輕量級的Axios 來實現(xiàn)Ajax 異步通信,相較于傳統(tǒng)的Ajax 配置和操作的復(fù)雜程度[4],Axios 在降低復(fù)雜度的同時也能實現(xiàn)直接在node.js 中發(fā)送http 請求。數(shù)據(jù)管理的分頁功能則是采用MyBatis 的分頁插件PageHelper,首先在插件PageHelper 中分裝好SQL語句,再由MyBatis 讀取封裝好的SQL 語句,從而實現(xiàn)數(shù)據(jù)的分頁效果。
本系統(tǒng)在設(shè)計的過程中按照設(shè)計的簡便性、實用性以及準(zhǔn)確性要求,對系統(tǒng)的功能模塊及具體實現(xiàn)進(jìn)行了詳細(xì)的設(shè)計,主要功能包括(如圖1 所示):用戶及管理員的注冊和登錄模塊、用戶個人信息管理模塊、運動數(shù)據(jù)可視化展示模塊和健康飲食的建議管理。
圖1 系統(tǒng)功能模塊圖
本系統(tǒng)主要包括平臺用戶的登錄注冊功能,個人信息的管理以及對運動數(shù)據(jù)和飲食食品數(shù)據(jù)的管理和查看,具體說明如下:
(1)登錄和注冊功能:針對管理員和學(xué)生的不同的用戶角色,系統(tǒng)給與不同的功能權(quán)限,學(xué)生可以申報自己最新的運動數(shù)據(jù)并查看已有的信息,但是對于平臺提供的健康數(shù)據(jù)分析以及飲食的建議只有可查看的權(quán)限;管理員角色的賬號只能是由超級管理員進(jìn)行分配,不提供自行注冊的功能,只可登錄已分配的賬號,進(jìn)入系統(tǒng)后可以查看學(xué)生的運動相關(guān)的數(shù)據(jù),同時可以實時發(fā)布通知公告等。
(2)個人信息管理功能:在這部分功能里,用戶可以對自己的登錄信息進(jìn)行管理,比如用戶可以自行修改自己的登錄名、密碼、個人頭像等。同時,系統(tǒng)也能夠為用戶的信息提供可靠的信息服務(wù),確保在用戶名和密碼均輸入正確的情況下才能正常登錄系統(tǒng),進(jìn)而使用系統(tǒng)的功能,否則將給出登錄失敗的提示;當(dāng)連續(xù)三次輸入有誤時,系統(tǒng)將對該賬戶進(jìn)行限定時間后登錄,通過這樣的措施來保證系統(tǒng)的可靠性和可用性。
(3)運動數(shù)據(jù)管理功能:學(xué)生用戶在登錄系統(tǒng)后可以上傳自己的運動數(shù)據(jù),在確認(rèn)前可以修改已經(jīng)提交的數(shù)據(jù),確認(rèn)后系統(tǒng)將會對數(shù)據(jù)進(jìn)行處理分析,并將分析后的數(shù)據(jù)按類別進(jìn)行可視化展示。
(4)飲食建議模塊功能:本系統(tǒng)首先對用戶提交至系統(tǒng)的運動和飲食數(shù)據(jù)進(jìn)行統(tǒng)一管理,并利用Echarts 對數(shù)據(jù)進(jìn)行可視化展示。Echarts 是一個純JavaScript 圖標(biāo)庫,它能夠兼容絕大部分的瀏覽器,底層依賴canvas 類庫中的ZRender,能夠方便直觀地提供具有生動性、可交互的個性化圖表,在本項目中實現(xiàn)如圖2 所示。此外,此模塊的功能會結(jié)合運動項目和食物本身的特點與用戶運動數(shù)據(jù)之間的聯(lián)系,綜合給出飲食方面的建議,供學(xué)生日常生活參考。
圖2 數(shù)據(jù)處理后展示示例
本系統(tǒng)是基于“做陽光下的大學(xué)生”的活動背景下設(shè)計的一款針對大學(xué)生健康運動和飲食的平臺,針對目前大學(xué)生的體質(zhì)體能數(shù)據(jù),利用數(shù)據(jù)庫技術(shù)進(jìn)行數(shù)據(jù)的可視化管理,并對數(shù)據(jù)進(jìn)行分析,并進(jìn)一步地給出具有針對性的運動和飲食建議,從而達(dá)到鼓勵大學(xué)生“放下手機(jī),擁抱自然”的積極性,提升大學(xué)生增強(qiáng)自我體能鍛煉的意識。