◆潘世吉 王遠敏
基于民間體育運動的APP設(shè)計與實現(xiàn)
◆潘世吉 王遠敏
(興義民族師范學(xué)院信息技術(shù)學(xué)院 貴州 562400)
隨著我國經(jīng)濟不斷提升,國民素質(zhì)普遍提高,追求更健康、完美、綠色、簡約是當代乃至未來的一種生活方式。2020年的“新冠病毒”橫行霸道,不少民眾慘遭劫難,讓人們意識到健康是我們賴以生存的必要條件。如今使用運動類APP的民眾逐年增加,同時為了發(fā)揚體育精神和傳承民間體育運動,因此針對民間體育運動項目設(shè)計一款運動類的APP,既便于民間體育運動的發(fā)展,同時民眾對運動健身又有多種選擇。
運動類APP;運動健身;民間體育運動;軟件開發(fā)
2020年的“新冠病毒”橫空出世,“身體是革命的本錢”這句話再次被民眾推到熱聊的浪尖上。如今網(wǎng)民的數(shù)量在移動端上使用運動類APP逐日增加,同時市面上的運動類APP也不斷完善,在國內(nèi)掀起了一股新的“云健身”的運動浪潮。據(jù)了解,運動類APP因可移動、可共享、可學(xué)習(xí)深受民眾喜愛,每日進入運動類APP更是眾多年輕人的生活習(xí)性之一,不僅改變了人們的生活習(xí)慣,同時也是發(fā)揚體育精神的有效途徑之一。雖然市場上運動類APP已是不計其數(shù),但是鮮有專門發(fā)揚民間體育運動的APP,民間體育運動是我們中華民族的文化遺產(chǎn),不應(yīng)該讓它沉寂在我們這個時代中。為此,本文設(shè)計并現(xiàn)實一款基于民間體育運動的移動端運動類APP。
作為一個運動類的APP,使用者必然是熱衷于鍛煉或者是想要鍛煉的人群。如何從使用者的角度去設(shè)計和開發(fā)是主要的目的,使用者主要注重是否收費、功能是否合理、是否符合個人習(xí)慣這三個方面。通過了解和分析使用者的需求,才能設(shè)計出一個人性化的、便捷的、免費的APP。
軟件開發(fā)流程如圖1所示:
圖1 軟件開發(fā)流程圖
(1)首先從社會調(diào)研開始,調(diào)研國民對體育運動的了解以及需求。其主要形式是在網(wǎng)上發(fā)布問卷,并對問卷結(jié)果進行分析和統(tǒng)計。
(2)分別對頁面、功能以及數(shù)據(jù)庫進行設(shè)計,考慮頁面布局及排版,合理劃分功能模塊,數(shù)據(jù)庫表設(shè)計要符合第三范式。對代碼進行優(yōu)化,減少服務(wù)器負載。
(3)搭建系統(tǒng)運行環(huán)境,對已完成的設(shè)計進行編碼實現(xiàn),在過程中發(fā)現(xiàn)軟件缺陷則加以改正,減少后期錯誤疊加。
(4)對完成的系統(tǒng)進行性能和負載測試,模擬用戶的使用,從用戶的角度去思考問題,解決用戶發(fā)現(xiàn)和提出的問題。
APP的總體結(jié)構(gòu)如圖2所示
圖2 APP總體結(jié)構(gòu)圖
運動記錄模塊如圖3所示,主要是對用戶的日常鍛煉進行記錄,比如跑步、平板支撐、波比跳、開合跳、高抬腿。用戶可在APP內(nèi)查看記錄歷史記錄和統(tǒng)計,以便合理安排時間。
圖3 運動記錄結(jié)構(gòu)圖
體育課堂模塊如圖4所示,主要針對在校大學(xué)生和老師,普通用戶可申請為教師,需要管理員認定并確定修改用戶賬號類型,不同賬號類型的可用功能不同。趣味課堂增加同學(xué)們對體育的興趣,內(nèi)部包括趣味視頻和趣味游戲,皆是激發(fā)同學(xué)的鍛煉熱情。
比賽模塊如圖5所示,主要是線上比賽,系統(tǒng)根據(jù)比賽規(guī)則進行排序,選出比賽獲獎?wù)?。比賽模塊容易激發(fā)用戶內(nèi)心的好斗之心,也是引導(dǎo)用戶進行鍛煉的途徑之一。
商場模塊如圖6所示,主要是為了保護用戶在日常體育鍛煉中可能受傷的部位,用戶可根據(jù)自身需求進行相應(yīng)的商品購買,以減少用戶在鍛煉中受傷的程度。
民間體育模塊主要是以視頻的方式展示給用戶。用戶通過模仿民間體育項目,從而達到鍛煉健身的目的。
通過對整個系統(tǒng)的分析與用戶需求,為防止數(shù)據(jù)庫數(shù)據(jù)記錄冗余,表與表之間關(guān)聯(lián)關(guān)系耦合,符合數(shù)據(jù)庫設(shè)計第三范式,因此,對數(shù)據(jù)庫結(jié)構(gòu)設(shè)計要求相對較高,再通過對整個APP的功能性需求進行分析與總結(jié),整個APP一共包含以下20張表:用戶表(賬號、密碼、收貨地址等)、系統(tǒng)設(shè)置表(鍵、值、類型等)、活動表(標題、內(nèi)容、發(fā)布者等)、管理員表(賬號、密碼、姓名等)、賬號變更表(申請者id、申請時間、處理時間等)、班級表(班級名稱、班級介紹、創(chuàng)建時間等)、班級成員表(自增id、班級id、用戶id)、賽事表(賽事標題、賽事內(nèi)容、發(fā)布者等)、視頻表(視頻名稱、視頻介紹、視頻類型等)、商品表(商品名稱、商品介紹、商品價格等)、圖片表(上傳時間、上傳者、保存路徑等)、鍛煉統(tǒng)計表(用戶id、鍛煉類型、鍛煉時長等)、音樂表(音樂名稱、是否禁播、音樂路徑等)、公告表(公告標題、公告內(nèi)容、發(fā)布時間等)、訂單中間表(訂單id、商品id、商品數(shù)量等)、訂單表(訂單號、快遞單號、訂單總價等)、跑步記錄表(跑步時長、開始時間、結(jié)束時間等)、簽到表(簽到者、所屬班級、簽到時間等)、簽到發(fā)起表(發(fā)起者、所屬班級、開始時間等)、賽事報名表(參賽者、賽事id、報名時間等)。
圖4 體育課堂結(jié)構(gòu)圖
圖5 比賽結(jié)構(gòu)圖
圖6 商場結(jié)構(gòu)圖
完成整個APP使用了Uni-app、uView UI、Element-UI、Nuxt.js、ThinkPHP、MySQL六個主流框架或技術(shù)進行開發(fā),一套代碼可發(fā)布多個平臺,提升開發(fā)效率,減少開發(fā)成本。
為維護系統(tǒng)安全,防止用戶賬號泛濫,因此系統(tǒng)實行“一號一戶”,一個手機號只能綁定一個賬號,也就是一個手機號只能注冊一個賬號,若賬號注銷則可再次注冊。
在用戶登錄APP時,系統(tǒng)便將用戶的登錄信息保存到緩存中,以便用戶下次打開APP時便可直接進入到APP內(nèi)部,不用再次登錄。若用戶在APP內(nèi)點擊退出登錄,則再次進入APP才需要用戶輸入賬號和密碼進行登錄。
為考慮用戶信息安全,本系統(tǒng)實行單點登錄。用戶在 A手機上登錄,若是再次在B手機上登錄,則A手機的APP就會強制退出,反之亦然。實現(xiàn)原理是在用戶登錄時在數(shù)據(jù)庫保存系統(tǒng)生成的唯一標識token,每個用戶登錄時都會生成唯一的token,用戶請求數(shù)據(jù)必須帶上token。當用戶請求的token不存在時便會強行退出登錄,便可說明在其他手機上使用該用戶賬號進行登錄,如此可讓用戶知道自己的賬號可能泄漏,從而修改密碼保證賬號信息安全。
為滿足用戶需求,系統(tǒng)將用戶賬號分為普通用戶和認定用戶。認定用戶擁有普通用戶所有權(quán)限,普通用戶可申請將賬號變更為認定用戶,通過管理員認定即可將賬號變更為認定用戶,擁有認定用戶的權(quán)限。認定用戶目前擁有班級的創(chuàng)建、修改班級信息、解散班級、移除班級成員特權(quán),普通用戶不可操作。
APP后臺使用Element-UI 框架,該架遵循用戶的操作習(xí)慣,簡潔又豐富的界面樣式和流暢的交互動效讓用戶使用起來賞心悅目。Nuxt.js框架的使用讓后臺模塊化,將后臺基本結(jié)構(gòu)形成一個模塊,在每個頁面都引入該模塊,即可實現(xiàn)功能頁面。同時該框架自動優(yōu)化后臺程序,剔除所有后臺程序不要的比特。
后臺可對用戶上傳的廢棄圖片進行過濾并刪除。后臺設(shè)置了過濾廢棄圖片按鈕,在有需要時通過點擊按鈕實現(xiàn)對廢棄圖片的管理。實現(xiàn)原理是對系統(tǒng)中的每張圖片進行排查,若圖片沒有在系統(tǒng)中任何地方使用,則加入到廢棄圖片的名單中,系統(tǒng)排查完畢返回到后臺進行處理。過濾廢棄圖片減少服務(wù)器的內(nèi)存負擔(dān),提高系統(tǒng)運行性能,提高系統(tǒng)運行流暢度。
后臺主頁顯示APP總用戶量以及今日新增、本月新增、近期一周內(nèi)新增及已注銷的用戶統(tǒng)計,系統(tǒng)以圖表的方式展示,一目了然。實現(xiàn)原理是在用戶注冊時系統(tǒng)會將注冊時間記錄下來,在統(tǒng)計時,將所有用戶針對注冊時間進行排序,分成不同時間段返回。
為減少系統(tǒng)內(nèi)存負擔(dān),以及用戶體驗感。系統(tǒng)對上傳的視頻時間長度進行限制,所有上傳的視頻原則上不能超過3分鐘,視頻越長,用戶體驗感越差。實現(xiàn)原理是上傳視頻時,計算視頻的時長,當視頻時長超過3分鐘時,系統(tǒng)報錯,不能上傳。
整個后端使用ThinkPHP6框架進行搭建??蚣苁怯?種連接數(shù)據(jù)庫之一的模型進行數(shù)據(jù)庫連接,模型的定義以及對數(shù)據(jù)庫表的增刪改查都易于操作和理解。
為保證APP和后臺請求不受阻礙,須在框架的中間件配置中配置解決跨域請求: hinkmiddlewareAllowCrossDomain:class。
為了系統(tǒng)的請求安全,檢驗每個請求是否攜帶唯一標識token。因此編寫請求攔截并配置在中間件中,請求攔截除了用戶登錄和注冊、管理員的登錄之外,全部攔截進行檢測token。若token存在則執(zhí)行相應(yīng)方法,若token不存在,則直接返回指定錯誤。Token由系統(tǒng)自動生成,由0-9、a-z、A-Z隨機抽取47位構(gòu)成token,當用戶和管理員登錄時系統(tǒng)便會生成token并返回,以供APP和后臺管理請求數(shù)據(jù)使用。
為防止系統(tǒng)遭受遠程攻擊,框架開啟強制路由模式。開啟強制路由之后,請求路徑必須與定義路由一致,否則請求出錯。
本次APP的開發(fā)主要分為APP前端、后臺管理以及后端三個部分。后臺管理對APP進行布控,后端控制著APP前端和后臺管理的數(shù)據(jù)交換,和數(shù)據(jù)庫進行交互,使用MVC模式思想進行實現(xiàn)。
本項目的主旨是激發(fā)人們對鍛煉健身的熱愛,讓興趣引導(dǎo)人們自主鍛煉健身,達到“師不督”也能“自煉”的目的。本軟件收集各種民間的體育運動,讓人們在愉快的狀態(tài)下鍛煉,在不知不覺的情況下提升身體素質(zhì),在發(fā)揚民間體育運動的同時也讓人們在鍛煉健身時有更多的選擇,不僅僅局限于跑步、拉伸。
[1]王軍祥.基于移動終端的運動APP設(shè)計與實現(xiàn)[J].智能計算機與應(yīng)用,2019,9(06):332-333.
[2]張向陽.基于安卓的戶外運動APP設(shè)計與實現(xiàn)[J].軟件,2020,41(11):36-38.
[3]劉國信,王犖.運動APP引領(lǐng)健身潮[J].農(nóng)村電工,2019,27(11):61.
[4]傅怡璇.淺析運動健身APP在大學(xué)體育教學(xué)中的可行性[J].發(fā)明與創(chuàng)新(職業(yè)教育),2020(12):62+61.
[5]李恒朔.運動健身類APP對大學(xué)生運動動機運動效果的影響研究[J].當代體育科技,2020,10(14):38+40.
[6]陽忠誠.試析傳統(tǒng)民間體育游戲在高校體育教學(xué)中的應(yīng)用[J].文體用品與科技,2020(02):126-127.
2020年貴州省教育廳大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目“好動——一種特色且科學(xué)的鍛煉健身App”( S202010666024);興義民族師范學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目“好動——一種特色且科學(xué)的鍛煉健身App”(2020XJYB062)階段性研究成果