智能教務信息助手的開發(fā)與應用_第1頁
智能教務信息助手的開發(fā)與應用_第2頁
智能教務信息助手的開發(fā)與應用_第3頁
智能教務信息助手的開發(fā)與應用_第4頁
智能教務信息助手的開發(fā)與應用_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

智能教務信息助手的開發(fā)與應用摘要隨著信息技術的高速發(fā)展,使用傳統(tǒng)管理方法的教務系統(tǒng)面臨著全面的轉(zhuǎn)型與徹底的變革,全面智能化和移動化的教務信息管理方法正在逐步代傳統(tǒng)的教務信息管理技術。在轉(zhuǎn)型過程中最新的方法和技術并不一定適應時代與社會的發(fā)展,教務信息管理技術的發(fā)展也需要不斷地進行調(diào)整、優(yōu)化與加強。如何設計和實現(xiàn)人性化、智能化的教務信息管理系統(tǒng),成為了眾多高校關注的問題。日前發(fā)展較為成熟的教務信息平臺主要有網(wǎng)頁形式、客戶端應用形式等。但是網(wǎng)頁形式與APP形式的教務信息平臺存在一定的安全性問題,并且較為臃腫,這些形式還不夠輕便、精簡,移動互聯(lián)網(wǎng)時代的到來,所孕育出的產(chǎn)品則是向著精簡,輕便的方向發(fā)展。微信小程序是一種不需要下載安裝即可使用的應用,它實現(xiàn)了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。也體現(xiàn)了“用完即走”的理念,用戶不用關心是否安裝太多應用的問題。其中,通過公眾號關聯(lián),用戶可以實現(xiàn)公眾號與小程序之間相互跳轉(zhuǎn)。小程序具有無需下載加載即用的便利性,又具有app的流暢性以及app的功能。對于功能簡單、低頻剛需的應用場景,小程序幾乎可以完全替代APP。本文設計并開發(fā)基于微信小程序的智能教務信息助手,作為學校教務系統(tǒng)官方網(wǎng)站的第三方平臺,以微信小程序平臺為核心,引入Django框架,并結合數(shù)據(jù)庫系統(tǒng)和爬蟲技術,打造即搜即用型教務信息助手小程序,實現(xiàn)課程表獲取,成績查詢和個人事務的快速查詢,無需額外安裝軟件,提高教務服務的快捷性,對高校信息化建設進行一定程度的探索。關鍵詞:微信小程序,數(shù)據(jù)庫,網(wǎng)絡爬蟲,教務管理AbstractWiththerapiddevelopmentofinformationtechnology,theeducationalsystemusingtraditionalmanagementmethodsisfacingacomprehensivetransformationandthoroughchange.Thecomprehensiveintelligentandmobileeducationalinformationmanagementmethodsaregraduallybecomingthetraditionaleducationalinformationmanagementtechnology.Intheprocessoftransformation,thelatestmethodsandtechnologiesdonotnecessarilyadapttothedevelopmentofthetimesandsociety.Thedevelopmentofeducationalinformationmanagementtechnologyalsoneedstobeconstantlyadjusted,optimizedandstrengthened.Howtodesignandimplementahumanizedandintelligenteducationalinformationmanagementsystemhasbecomeaconcernofmanyuniversities.Recently,themorematureeducationalinformationplatformhasmainlywebpageformsandclientapplicationforms.However,therearecertainsecurityproblemsintheweb-formandAPP-styleeducationalinformationplatform,andtheyaremorebloated.Theseformsarenotlightenoughandstreamlined.WiththeadventofthemobileInternetera,theproductsthatarebredaredevelopinginastreamlinedandlightweightmanner.TheWeChatappletisanapplicationthatcanbeusedwithoutdownloadingandinstalling.Itrealizesthedreamoftheapplication“atyourfingertips”.Userscanopentheapplicationbyswipingorsearching.Italsoembodiestheconceptof“runoutandgo”,usersdon'thavetoworryaboutwhethertoinstalltoomanyapplications.Amongthem,throughthepublicnumberassociation,theusercanrealizethemutualjumpbetweenthepublicnumberandthesmallprogram.Theapplethastheconvenienceofnoneedtodownloadandload,andhasthefluencyoftheappandthefunctionoftheapp.Forapplicationswithsimplefunctionsandlowfrequency,theappletcanalmostcompletelyreplacetheAPP.ThispaperdesignsanddevelopstheintelligenteducationalinformationassistantbasedonWeChatapplet.Asthethird-partyplatformoftheofficialwebsiteoftheschooleducationalsystem,theWeChatappletplatformisthecore,theDjangoframeworkisintroduced,andthedatabasesystemandcrawlertechnologyarecombinedtocreateinstantsearch.Thetypeofeducationalinformationassistantisasmallprogramtorealizetheacquisitionofcourseschedules,quickinquiryofresultsandpersonalaffairs,noneedtoinstalladditionalsoftware,improvethespeedofeducationalservices,andexploretheinformatizationconstructionofcollegesanduniversitiestoacertainextent.Keywords:WeChatapplet,database,webcrawler,educationaladministration目錄1 緒論 71.1 研究背景 71.2 國內(nèi)外發(fā)展現(xiàn)狀 71.3 本文的主要研究內(nèi)容 91.4 論文結構 92 相關技術 112.1 微信小程序開發(fā)步驟 112.2 微信小程序文件結構 112.3 相關接口 132.4 本章小結 133 需求分析 143.1 可行性分析 143.1.1 經(jīng)濟可行性 143.1.2 技術可行性 143.1.3 操作可行性 153.2 用戶角色分析 153.2.1 小程序端使用者 153.2.2 后臺管理員 153.3 功能需求分析 153.3.1 系統(tǒng)內(nèi)核 153.3.2 數(shù)據(jù)同步 163.3.3 前端面板 163.3.4 后臺管理 163.4 性能需求分析 163.5 本章小結 174 總體設計 184.1 系統(tǒng)總體架構設計 184.1.1 微信小程序 194.1.2 Django框架 194.1.3 網(wǎng)絡爬蟲 204.2 系統(tǒng)數(shù)據(jù)庫設計 214.3 系統(tǒng)頁面層次設計 224.4 本章小結 235 系統(tǒng)詳細設計與實現(xiàn) 245.1 微信小程序端 245.2 爬蟲模擬登錄 245.3 后端接口設計 255.3.1 登錄接口 255.3.2 獲取課表接口 265.3.3 獲取成績接口 285.3.4 獲取當前日期接口 285.4 本章小結 296 系統(tǒng)測試 306.1 系統(tǒng)測試的目的 306.2 測試實驗分析 306.2.1 后端性能實驗 306.2.2 前端兼容性實驗 316.3 本章小結 327 結論 33參考文獻 34致謝 35緒論研究背景互聯(lián)網(wǎng)的蓬勃發(fā)展和近幾年微信小程序的興起,很多應用都在逐步實現(xiàn)APP到小程序的轉(zhuǎn)變。這種轉(zhuǎn)變,一方面提高了應用效率,另一方面也是產(chǎn)品體驗的革命,在一定程度上可以提高應用的使用率。隨著互聯(lián)網(wǎng)時代下的信息爆炸式增長,人們獲取信息的方式發(fā)生了極大地改變。高等院校的教務信息管理是學校管理中最復雜、最重要的部分,需要處理大量的學生信息和教師信息。教務部門作為學校的服務部門,提升服務意識,利用運用先進的技術手段實現(xiàn)教務信息的管理,為師生們提供更優(yōu)質(zhì)的服務顯然十分有必要。隨著技術發(fā)展日新月異,日前發(fā)展較為成熟的教務信息平臺主要有網(wǎng)頁形式、客戶端應用形式等。學生和教師通過這些形式可以在電腦端、手機端獲取基本教務信息,如成績查詢、課程安排、選課等。但是這些形式還不夠輕便、精簡,移動互聯(lián)網(wǎng)時代的到來,所孕育出的產(chǎn)品多數(shù)向著“小、精、輕”的方向發(fā)展。微信小程序的上線,給了教務信息平臺更多的發(fā)展空間。通過小程序進行課程查詢、成績查詢,一方面免去了用戶繁瑣的下載安裝過程,另一方面減輕了手機端運行的壓力,可以給用戶帶來良好的體驗。隨著教學模式的改革,教務信息相關軟件應用也需要與當代技術同步。本文開發(fā)基于微信小程序的智能教務信息助手,實現(xiàn)在小程序中查詢成績、課程安排、其他事務等,使用戶能夠在輕量級的應用中獲取信息,在進一步提高校園教務信息服務水平方面進行探索。國內(nèi)外發(fā)展現(xiàn)狀微信小程序是一種c2p形式的app,是一種用戶與服務相互對應的軟件模式。截止2018年3月,微信小程序用戶規(guī)模突破4億,滲透率達到43.9%。根據(jù)發(fā)布的《微信小程序洞察報告》,微信小程序月活用戶從2018年1月開始出現(xiàn)爆發(fā)式增長,到3月微信小程序月活用戶突破4億,滲透率達到43.9%,用戶數(shù)增長潛力巨大。微信已經(jīng)深入生活。作為騰訊內(nèi)部首批個被微信官方要求的項目之一,小程序的出現(xiàn)就被賦予了不一樣的意義。一直以來,騰訊、阿里等互聯(lián)網(wǎng)巨頭在O2O領域的布局從未停止,如何將線下資源更好整合到線上,真正實現(xiàn)線上下打通,各家都做出了不少嘗試。從支付作為突破口,微信與支付寶已經(jīng)攻占了一二線城市,成為大部分用戶線下購物的首選支付渠道。不可否認微信支付已經(jīng)漸漸融入了我們的生活,微信也就成為了我們生活之中不可或缺的軟件。然而,在其他線下應用場景,微信則有所欠缺。完成支付圈地之后,這些場景成為新的戰(zhàn)場。張小龍曾經(jīng)多次在公眾場合提到的二維碼將會成為未來交互方式的重要入口也將成為現(xiàn)實。如今小程序碼的形式成為了一種新的交互方式。小程序是一種不需要下載安裝即可使用的應用,它實現(xiàn)了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。也體現(xiàn)了“用完即走”的理念,用戶不用關心是否安裝太多應用的問題。其中,通過公眾號關聯(lián),用戶可以實現(xiàn)公眾號與小程序之間相互跳轉(zhuǎn)。小程序具有無需下載加載即用的便利性,又具有app的流暢性以及app的部分功能。TOP100小程序中,50%完全依托于微信而生,沒有自己獨立的APP。對于功能簡單、低頻剛需的應用場景,小程序幾乎可以完全替代APP。手機游戲、移動購物、生活服務等行業(yè)在微信小程序的加持下迅速發(fā)展。如今我們見到的APP已經(jīng)非常多,在手機中一旦安裝過多的APP,就會因為內(nèi)存不夠?qū)е驴C,嚴重影響了手機的正常使用。在學校,為了適應社會和科技的發(fā)展,學校相應建立了屬于自己的教務信息平臺,以方便教務信息的系統(tǒng)化管理,發(fā)展較為成熟的教務信息平臺主要有網(wǎng)頁形式、客戶端應用形式等。網(wǎng)頁形式的教務信息平臺簡單易用,但存在安全性低、受制于網(wǎng)絡環(huán)境而導致體驗性一般等缺點,APP形式的教務信息平臺體驗性好,但存在開發(fā)費用高、占用內(nèi)存大、易被反編譯等缺點。由此可見,網(wǎng)頁形式與APP形式的教務信息平臺存在一定的安全性問題,并且較為臃腫。因此設計與開發(fā)適用于教務信息查詢的微信小程序是具有實際意義的,通過微信小程序,可以實現(xiàn)課程信息的傳遞與成績的快速查詢,不需要額外安裝軟件,節(jié)省了使用者的時間和資源,能夠提高教務服務的快捷性,加快數(shù)字化校園的建設。針對以上內(nèi)容,本文設計與開發(fā)基于微信小程序的智能教務信息助手,作為學校教務系統(tǒng)官網(wǎng)的第三方平臺,以微信小程序平臺為核心,引入Python中的Web應用框架,結合數(shù)據(jù)庫系統(tǒng)與爬蟲技術打造一個即搜即用的教務信息助手小程序,實現(xiàn)課表獲取、成績查詢、個人事務信息查詢功能,對高校信息化建設作出一定程度上的探索。本文的主要研究內(nèi)容本文主要研究了基于微信小程序的智能教務信息助手的開發(fā)與應用。用戶在微信中,搜索小程序,或者通過掃小程序碼可進入智能教務信息助手微信小程序界面。用戶進入小程序后,就可以通過該平臺進行查看課表。成績查詢、個人事務管理等操作。智能教務信息助手的使用者是學生。本平臺按照軟件開發(fā)流程進行編寫。研究國內(nèi)外微信小程序在教務系統(tǒng)方面的發(fā)展現(xiàn)狀,分析現(xiàn)在成熟的教務信息平臺形式的不足,并確定開發(fā)基于微信小程序的智能教務信息助手。根據(jù)學生在教務信息平臺的實際需求,提出本系統(tǒng)的需求分析和功能需求,并為了教務信息管理助手的穩(wěn)定性,提出系統(tǒng)的性能需求。根據(jù)需求分析,提出系統(tǒng)的概要設計,其中包括總體架構設計、數(shù)據(jù)庫結構設計。完成總體設計后,就可以進入詳細設計。在系統(tǒng)完成部署后,可以對該系統(tǒng)進行詳細的測試與驗證,查看系統(tǒng)功能是否實現(xiàn)以及性能是否滿足需求。本系統(tǒng)的用戶端開發(fā)使用了微信官方提供的微信開發(fā)者工具,前端頁面的開發(fā)模塊主要利用WXML、WXSS和Javascript等前端語言完成對用戶端樣式、邏輯、結構、參數(shù)的編寫,設計良好的UI界面;小程序網(wǎng)頁后端的開發(fā)模塊主要引入Python中的Web應用框架,結合數(shù)據(jù)庫系統(tǒng)與爬蟲技術,打造一個即搜即用的智能教務信息助手小程序。本系統(tǒng)為第三方工具,系統(tǒng)的數(shù)據(jù)均來源于廣東工業(yè)大學教務系統(tǒng),系統(tǒng)需要處理整個年級的課程解析、考試成績等。論文結構本文主要研究了基于微信小程序的智能教務信息助手的開發(fā)與應用。用戶在微信中,搜索小程序,或者通過掃小程序碼可進入智能教務信息助手微信小程序界面。用戶進入小程序后,就可以通過該平臺進行查看課表。成績查詢、個人事務管理等操作。本文共分為七章,其中論文內(nèi)容和章節(jié)安排如下所述:第一章:緒論。本章通過介紹本課題研究背景以及國內(nèi)外發(fā)展現(xiàn)狀,引出本文的主要研究內(nèi)容。第二章:相關技術。本章介紹了利用微信web開發(fā)者工具開發(fā)小程序的步驟,微信小程序文件結構以及針對本系統(tǒng)的開發(fā)使用的接口,為文章后續(xù)內(nèi)容所需技術做鋪墊。第三章:需求分析。本章介紹了系統(tǒng)的可行性分析、用戶角色分析、需求分析。從系統(tǒng)的用戶角色分析不同用戶的需求,并提出了系統(tǒng)的功能需求。最后,介紹了系統(tǒng)的性能要求,為系統(tǒng)的總體設計做鋪墊。第四章:總體設計。本章對系統(tǒng)進行了總體設計,還包括系統(tǒng)的數(shù)據(jù)庫設計和頁面層次設計。第五章:系統(tǒng)詳細設計。本章對系統(tǒng)的詳細功能實現(xiàn)進行了介紹,并展示了部分系統(tǒng)界面,系統(tǒng)詳細功能的實現(xiàn)與系統(tǒng)的需求分析與總體設計相符。第六章:系統(tǒng)測試。本章通過介紹測試目的與測試方法,介紹測試的重要性。并進行測試實驗分析,展示系統(tǒng)的功能與性能是否滿足需求。經(jīng)過測試,系統(tǒng)符合微信小程序的要求。第七章:結論。本章對系統(tǒng)的設計與實現(xiàn)過程進行總結,并對系統(tǒng)的后續(xù)改進進行展望。相關技術微信小程序開發(fā)步驟由于微信小程序的代碼及規(guī)范相對封閉,因此按照微信官方的說法,為了幫助開發(fā)者簡單和高效地開發(fā)微信小程序,推出了全新的微信web開發(fā)者工具(/debug/wxadoc/dev/devtools/devtools.html),微信web開發(fā)者工具集成了開發(fā)調(diào)試、代碼編輯及程序發(fā)布等功能。首先需要進入小程序注冊頁,根據(jù)指引填寫信息和提交相應的資料,注冊微信小程序賬號。在小程序管理平臺,可以管理小程序的權限,查看數(shù)據(jù)報表,進行發(fā)布小程序等操作。登錄小程序后臺,我們可以在菜單“設置”-“開發(fā)設置”看到小程序的AppID。在開發(fā)者工具下載頁面,根據(jù)自己的操作系統(tǒng)下載對應的安裝包,下載完成后,選擇創(chuàng)建“項目”,填入上一步獲取到的AppID,設置本地項目的名稱(非小程序名稱),如:demo,并選擇一個本地的文件夾作為代碼存儲的目錄,點擊“新建項目”即可。項目創(chuàng)建成功后,我們就可以點擊該項目,進入并看到完整的開發(fā)者工具界面,點擊左側(cè)導航,在“編輯”里可以查看和編輯我們的代碼,在“調(diào)試”里可以測試代碼并模擬小程序在微信客戶端效果,在“項目”里可以發(fā)送到手機里預覽實際效果。點擊工具上的編譯按鈕,可以在工具的左側(cè)模擬器界面看到這個小程序的表現(xiàn),也可以點擊預覽按鈕,通過微信的掃一掃在手機上體驗該小程序。開發(fā)者工具左側(cè)菜單欄選擇"項目",點擊"上傳"即可將代碼上傳到微信小程序服務器。微信小程序文件結構小程序包含一個描述整體程序的app和多個描述各自頁面的page。一個小程序主體部分由三個文件組成,必須放在項目的根目錄,如下REF_Ref7116404\h表2–1所示:表STYLEREF1\s2–SEQ表\*ARABIC\s11小程序主體部分文件組成文件必需作用app.js是小程序邏輯app.json是小程序公共配置app.wxss否小程序公共樣式表App.js文件是微信小程序的腳本代碼文件。每個小程序都需要調(diào)用App方法在app.js中注冊小程序示例,綁定生命周期回調(diào)函數(shù)、錯誤監(jiān)聽,并且監(jiān)聽器函數(shù)中不存在該頁面。App.json文件用于全局配置微信小程序,確定頁面文件的路徑、窗口性能、設置網(wǎng)絡超時以及設置多個選項卡等。App.wxss用于定義全局樣式。WXSS(WeiXinStyleSheets)是一組樣式語言,用于確定如何顯示W(wǎng)XML組件。WXSS具有CSS的大部分功能。對于頁面內(nèi)部的文件,包含四個文件類型,如下REF_Ref7115876\h表2–2所示:表STYLEREF1\s2–SEQ表\*ARABIC\s12小程序頁面內(nèi)部的文件類型文件類型必需作用js是頁面邏輯wxml是頁面結構json否頁面配置wxss否頁面樣式表Js文件的主邏輯函數(shù)為Page()函數(shù),對于小程序中的每個頁面,都需要在頁面對應的js文件中調(diào)用Page方法注冊頁面示例,指定頁面的初始數(shù)據(jù)、生命周期回調(diào)、事件處理函數(shù)等。Wxml(WeiXinMarkupLanguage)是框架設計的一套標簽語言,結合基礎組件、事件系統(tǒng),可以構建出頁面的結構。使用方法和html文件類似。Json文件用于頁面屬性配置,每一個小程序頁面可以使用同名的.json文件來對本頁面的窗口表現(xiàn)進行配置,頁面中配置項會覆蓋app.json的window中相同的配置項。Wxss文件用于描述WXML的組件樣式。相關接口小程序開發(fā)框架為開發(fā)者提供了豐富的微信原生API,可以方便的調(diào)用微信提供的能力,如獲取用戶信息,本地存儲,支付功能等。對于本系統(tǒng)而言,需要調(diào)用的接口有:登錄綁定、獲取課表接口、獲取成績接口、獲取當前日期等。其中,為充分適應本小程序需求,登錄綁定接口采用微信小程序官方提供的API,獲取課表、獲取成績、獲取當前學期日期的接口由自己編寫。詳細實現(xiàn)過程將在后續(xù)章節(jié)介紹。本章小結本章介紹了利用微信web開發(fā)者工具開發(fā)小程序的步驟,微信小程序文件結構以及針對本系統(tǒng)的開發(fā)使用的接口,為文章后續(xù)內(nèi)容所需技術做鋪墊。需求分析可行性分析可行性分析是基于項目的主要內(nèi)容和支持條件,如市場需求、資源供應、建設規(guī)模、設備選擇、盈利能力等,從技術、經(jīng)濟、工程和其他方面進行調(diào)查研究分析和比較,預測項目完成后可能獲得的經(jīng)濟效益和社會影響,為項目決策提供依據(jù)的系統(tǒng)分析方法??尚行苑治鰬哂蓄A測性,公正性,可靠性和科學性。經(jīng)濟可行性對于經(jīng)濟可行性,目前發(fā)展較為成熟的教務信息助手是APP模式,開發(fā)費用高,需要考慮安卓+IOS兩端,另還需要各種機型適配。對于基于微信小程序的教務信息助手而言,開發(fā)費用低,基于微信API內(nèi)核,無需考慮機型適配,并且操作與體驗和APP差不多。學校開展教務服務過程中,需要借助電子應用來公布信息以及開展教務管理工作,借助微信小程序可以很快獲取到教務信息,提高了學校的教務管理服務的方便快捷性。小程序的推廣使用,能夠通過后臺的運行對大量的數(shù)據(jù)進行快速運算和分析,對學生信息進行收集整理,最后可以高效系統(tǒng)化的了解學生情況,讓教務信息統(tǒng)計更加便捷準確。根據(jù)以上意義可以得知,基于微信小程序的智能教務信息助手可以提高學校教務服務的便捷性的同時,還可以更系統(tǒng)科學地了解學生情況,節(jié)省人工成本。由此可見,本小程序的開發(fā)滿足經(jīng)濟可行性。技術可行性本系統(tǒng)引入微信web開發(fā)者工具、基于Python的Django應用框架以及SQL關系型數(shù)據(jù)庫。關于微信小程序開發(fā)、Django框架、SQL數(shù)據(jù)庫的技術均已發(fā)展較為成熟,許多相關資料與開發(fā)案例可以作為參考。故對于本系統(tǒng)而言,在技術方面擁有可行性。操作可行性微信小程序即搜即用,具有良好的人際交互性,統(tǒng)一運行在微信平臺上,無需考慮傳統(tǒng)網(wǎng)頁應用開發(fā)中的兼容性問題。通過小程序進行課程查詢、成績查詢,一方面免去了用戶繁瑣的下載安裝過程,另一方面減輕了手機端運行的壓力,可以給用戶帶來良好的體驗。由此可見本系統(tǒng)具有操作可行性。用戶角色分析小程序端使用者對于本系統(tǒng)的使用者,可以通過微信提供的小程序入口搜索到本小程序,也可以掃描小程序碼進入。使用本系統(tǒng)需要進行微信、教務系統(tǒng)賬號的綁定。成功綁定后,用戶即可利用該系統(tǒng)獲得課程安排信息、查詢成績、查詢個人事務等。后臺管理員后臺管理用戶主要是對數(shù)據(jù)進行管理,包括前端用戶數(shù)據(jù)以及前端用戶使用教務系統(tǒng)的記錄數(shù)據(jù)。功能需求分析一般而言,智能化和移動化的教務信息助手必須實現(xiàn)四個方面的功能,即系統(tǒng)內(nèi)核、數(shù)據(jù)同步、前端面板和后臺管理。系統(tǒng)內(nèi)核教務信息管理助手需要使用非常穩(wěn)定的系統(tǒng)內(nèi)核,完成系統(tǒng)中課表查詢、成績查詢、學生日常事務管理甚至學生選課等功能。在本系統(tǒng)中,教務信息助手的內(nèi)核需要實現(xiàn)學生課表解析、成績查詢與日常事務。本系統(tǒng)為第三方工具。系統(tǒng)的數(shù)據(jù)均來源于廣東工業(yè)大學教務系統(tǒng)。系統(tǒng)需要處理課程解析和考試成績,并為用戶推送新成績的更新。數(shù)據(jù)同步在系統(tǒng)的所有功能中,數(shù)據(jù)同步功能需要實現(xiàn)課程信息、用戶信息、考試成績和數(shù)據(jù)整理存儲等一系列功能。其中,考試成績與教務系統(tǒng)的數(shù)據(jù)庫保持一致,探測到有新成績就即刻更新考試成績。同時,對于調(diào)整上課時間地點的課程,也需要定時更新,同時需要添加用戶的信息,并將更新后的信息存入教務信息助手的關系型數(shù)據(jù)庫中。前端面板在系統(tǒng)的所有功能中,前端面板主要負責展示上課課表、考試成績和學生個人事務。其中,上課課表展示學生每周課程,以不同顏色標記不同的課程,方便學生進行查看??荚嚦煽儾捎脠D標結合的方式,學生既可以查看整體的幾點,也可以查看每門課的詳細成績。學生個人事務中包含學生一卡通余額,以及校園網(wǎng)狀態(tài)等。后臺管理在教務信息助手中,后臺管理的功能主要包括查看用戶數(shù)量,統(tǒng)計小程序使用者的性別、地區(qū)、使用的手機型號等等。考試成績、課程信息和用戶等項目的管理。其中,用戶信息只記錄了用戶的公開信息,不涉及用戶的教務系統(tǒng)密碼等,系統(tǒng)的整體設計從學生的角度出發(fā),系統(tǒng)不會訪問用戶在教務系統(tǒng)中的敏感數(shù)據(jù)。此外,后臺管理很重要的一個任務是收集錯誤日志,包括收集小程序端的錯誤日志、后端的錯誤日志。當系統(tǒng)出現(xiàn)問題時便于調(diào)試,這有利于系統(tǒng)的迭代更新。性能需求分析系統(tǒng)是否滿足用戶需求不僅取決于系統(tǒng)的設計功能是否實現(xiàn),還取決于系統(tǒng)的性能。如果系統(tǒng)的所有功能都已實現(xiàn),但系統(tǒng)經(jīng)??D,也會造成糟糕的用戶體驗。因此,系統(tǒng)開發(fā)不僅需要考慮系統(tǒng)的功能要求,還需要考慮系統(tǒng)的性能要求。對于微信小程序,系統(tǒng)的性能要求更嚴格。因為微信小程序開發(fā)文檔要求微信小程序的內(nèi)存不應該太高,它應該小于100M,并且小程序的頁面深度不應該太深,從而影響用戶體驗。由于需要從微信中獲取用戶的部分信息,有必要確保系統(tǒng)用戶信息的安全性。系統(tǒng)可能需要在以后添加許多新功能,因此系統(tǒng)需要具有良好的可擴展性。良好的系統(tǒng)架構是必不可少的,Django框架用于后臺設計,以確保系統(tǒng)具有良好的可伸縮性。mvc框架可以分離系統(tǒng)的視圖層,控制層和數(shù)據(jù)層,以便于后續(xù)更改系統(tǒng)。本章小結本章介紹了系統(tǒng)的可行性分析、用戶角色分析、需求分析。從系統(tǒng)的用戶角色分析不同用戶的需求,并提出了系統(tǒng)的功能需求。最后,介紹了系統(tǒng)的性能要求,為系統(tǒng)的總體設計做鋪墊。總體設計系統(tǒng)總體架構設計針對系統(tǒng)需要實現(xiàn)的所有功能,本文對教務信息助手系統(tǒng)進行總體設計。根據(jù)上面對系統(tǒng)的需求分析,將推薦系統(tǒng)劃分為系統(tǒng)內(nèi)核、數(shù)據(jù)同步、前端面板和后臺管理4個子模塊。系統(tǒng)架構圖如REF_Ref7126982\h圖4–1所示。圖STYLEREF1\s4–SEQ圖\*ARABIC\s11教務信息助手系統(tǒng)架構圖在此架構下,本設計中引入了微信小程序平臺、基于Python的Django應用框架以及SQL關系型數(shù)據(jù)庫。系統(tǒng)流程圖如REF_Ref7128875\h圖4–2所示。圖STYLEREF1\s4–SEQ圖\*ARABIC\s12教務信息助手系統(tǒng)流程圖本系統(tǒng)借助微信小程序平臺,使得小程序可以在微信內(nèi)被便捷地獲取和傳播,同時具有出色的使用體驗。同時,Django框架集合了消息傳遞、系統(tǒng)和用戶管理等多種復用站點組件,減小了系統(tǒng)所需編寫的代碼數(shù)量,并大幅簡化了網(wǎng)站的開發(fā)過程。另外,Django框架還將分離了系統(tǒng)的邏輯實現(xiàn)和前端展示,這進一步提高了系統(tǒng)開發(fā)的代碼編寫速度。此外,結構化查詢語言用于存取數(shù)據(jù)以及查詢、更新和管理關系數(shù)據(jù)庫系統(tǒng),能有效管理系統(tǒng)運行中產(chǎn)生的數(shù)據(jù)。微信小程序微信小程序是一種基于微信平臺上開發(fā)應用系統(tǒng)的新技術,它的優(yōu)勢在于:微信用戶數(shù)量龐大,直接搜索小程序名稱或者掃描二維碼就可以找到該程序,有利于教務信息助手的傳播;其次,作為輕應用的出色代表,微信小程序即搜即用,體積小巧無需占用大量手機存儲;另外,小程序統(tǒng)一運行在微信平臺上,無需考慮傳統(tǒng)網(wǎng)頁應用開發(fā)中由不同瀏覽器帶來的兼容性問題。微信封裝了大量的API,使得小程序利用前端技術即可調(diào)用系統(tǒng)的一些功能,如調(diào)節(jié)音量、屏幕亮度等。Django框架開源的Django框架使用了比較常見的模型-模板-視圖模式,也被稱為MTV模式。使用該模式的目的在于控制系統(tǒng)內(nèi)多個組件的耦合關系,保證各個組件的設計不影響其他組件的運行。其中,“M”、“T”和“V”分別是“Model”、“Templates”、“Views”的縮寫。在該模式的作用下,Django框架的結構如REF_Ref7256007\h圖4–3所示。圖STYLEREF1\s4–SEQ圖\*ARABIC\s13Django框架結構圖由于Django框架是基于Python語言平臺開發(fā)的,因此Django框架擁有功能多樣的數(shù)據(jù)接口,設計者可以使用ORM機制定義具體的數(shù)據(jù)模型,從而大幅減小了數(shù)據(jù)庫開發(fā)的編程壓力。Django框架使用分發(fā)的方法設計URL映射,避免了系統(tǒng)亂碼的出現(xiàn)。另外,該框架在系統(tǒng)內(nèi)置的模板中增加了擴展功能,開發(fā)者能夠自主設計頁面樣式、控制等系統(tǒng)的編碼方式。網(wǎng)絡爬蟲爬蟲的首要任務是獲取目標網(wǎng)頁內(nèi)容,以便后續(xù)分析和研究。傳統(tǒng)的HTTP請求方式獲取網(wǎng)頁HTML源碼,由于存在編碼格式和網(wǎng)站自身的訪問限制等問題,極易出現(xiàn)錯誤,如編碼格式差異導致的字符亂碼、爬取速度過快導致的網(wǎng)站封鎖訪問等等。本系統(tǒng)中通過構造RequestHeader,Cookies等,利用爬蟲模擬學生登錄教務系統(tǒng),進而使用BeautifulSoup庫提供的函數(shù)對HTML源碼進行解析,得到對應的課表和成績,再以API的形式返回給小程序端。此外,為了更真實地模擬網(wǎng)頁瀏覽過程,防止因頻繁訪問而被教務系統(tǒng)封鎖,本系統(tǒng)對爬蟲設置了隨機時間間隔。為了提高效率,可以采用了多線程技術,多個線程同時爬取新聞內(nèi)容可大幅提高效率。系統(tǒng)數(shù)據(jù)庫設計系統(tǒng)數(shù)據(jù)庫是系統(tǒng)最主要的部分,所有的功能操作都是基于數(shù)據(jù)進行的,良好的數(shù)據(jù)庫設計,可以讓系統(tǒng)的性能提高,讓系統(tǒng)不容易出錯。將系統(tǒng)中的實體抽象出來,作為數(shù)據(jù)庫中的表項,并分析系統(tǒng)中實體之間的關系,完成E-R圖的設計。教務信息助手系統(tǒng)的數(shù)據(jù)庫用來存儲用戶、課程等數(shù)據(jù),是構成系統(tǒng)的重要組成部分。系統(tǒng)數(shù)據(jù)庫主要由3張表組成,分別為用戶表、成績表和課程表。其E-R圖如圖7所示。接下來進一步說明表中的具體字段以及其類型,如表1、表2、表3所示。此外,還需要設置數(shù)據(jù)庫備份的操作,防止數(shù)據(jù)丟失。數(shù)據(jù)庫的備份是一個長期的過程,而恢復只在發(fā)生事故后進行,恢復可以看作是備份的逆過程,恢復的程度的好壞很大程度上依賴于備份的情況。本系統(tǒng)中采用的是事務日志備份。事務日志是一個單獨的文件,它記錄數(shù)據(jù)庫的改變,備份的時候只需要復制自上次備份以來對數(shù)據(jù)庫所做的改變,所以只需要很少的時間。系統(tǒng)頁面層次設計微信小程序因為是依托于微信平臺的小程序,所以對小程序的大小以及頁面深度有很高的要求,頁面的深度與小程序的大小成正比,頁面深度越深,小程序就會占據(jù)更多內(nèi)存,所以,小程序的深度最好小于6級。由于微信小程序是基于微信平臺的小程序,因此對小程序的大小和頁面的深度有很高的要求。頁面深度越深,程序占用的內(nèi)存更多,因此小程序的深度最好小于6級。關于本系統(tǒng)的頁面層次設計如圖4-8所示。本章小結本章對系統(tǒng)進行了總體設計,還包括系統(tǒng)的數(shù)據(jù)庫設計和頁面結構設計。系統(tǒng)詳細設計與實現(xiàn)微信小程序端微信小程序端是用戶直接操作的層面,需要設計具有良好用戶體驗的界面。開發(fā)者應當充分利用微信小程序提供的API。其次,微信小程序提供很多已經(jīng)包裝好的函數(shù),例如Loading,request請求等等。此外,小程序的頁面中,部分頁面中包含多個功能,因此打開頁面后前端需要對后臺進行多次的請求,應當考慮無阻塞請求。若同時使用串行函數(shù)請求則會導致阻塞的發(fā)生,為了避免這種情況,系統(tǒng)中引入了ES6中的Promise函數(shù),將每一個請求包裝成一個Promise對象,然后并行無阻塞請求,這樣就不會發(fā)生一個請求等待另一個請求這種影響性能的情況。整體設計采用前后端完全分離,后端只需要向前端提供接口。小程序主要界面如圖所示。爬蟲模擬登錄通常情況下,用戶通過瀏覽器登錄網(wǎng)站時,在特定的登錄界面,輸入個人登錄信息,提交之后便能返回一個包含數(shù)據(jù)的網(wǎng)頁。在瀏覽器層面的機制是,瀏覽器提交包含必要信息的HttpRequest,服務器返回HttpResponse。其中HttpRequest內(nèi)容包括URL、RequestHeader、Cookies、PostData等。其中URL是統(tǒng)一資源定位符的簡稱,是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,包括主機部分、文件路徑部分;RequestHeaders是向服務請求信息的頭信息,包含編碼格式、用戶代理、提交主機和路徑等信息;Postdata是指提交的用戶、內(nèi)容、格式參數(shù)等。Cookies是服務器發(fā)送給瀏覽器的、保存在本地的、服務器用來識別用戶的文件,以及用來判斷用戶是否合法以及一些登錄信息。如上所述,模擬登錄之后,網(wǎng)站服務器會返回html文件,html是帶有標簽的有較為嚴格語法和格式的文本文件,不同的標簽之間有不同的內(nèi)容,可根據(jù)相關標簽以及數(shù)據(jù)特征,利用正則表達式抓取需要的數(shù)據(jù)或者代表數(shù)據(jù)的可進一步挖掘的鏈接。后端接口設計后端接口是一些預先定義的函數(shù),目的是提供應用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機制的細節(jié)。在小程序中,利用了前后端分離的設計思想,前端與后端的交互只能通過API訪問的形式進行。而在前端與后端之間傳遞的是JSON數(shù)據(jù)格式。JSON(JavaScriptObjectNotation)是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫,同時也易于機器解析和生成。登錄接口小程序可以通過微信官方提供的登錄能力方便地獲取微信提供的用戶身份標識,快速建立小程序內(nèi)的用戶體系。登錄流程時序如REF_Ref7126982\h圖4–1所示。圖STYLEREF1\s5–SEQ圖\*ARABIC\s11登錄流程時序微信號將與教務系統(tǒng)賬號密碼實現(xiàn)賬號綁定,從而實現(xiàn)一鍵登錄。獲取課表接口api/getSchedule_v2獲取用戶的課程表,返回JSON格式數(shù)據(jù)如下REF_Ref7449084\h圖5–2所示。圖STYLEREF1\s5–SEQ圖\*ARABIC\s12api/getSchedule_v2返回JSON格式數(shù)據(jù)獲取得到成績之后返回到小程序前端,前端通過進一步解析,將不同時間的課程設置到不同的位置。使得頁面整體美觀。api/getSchedule_v2接口請求數(shù)據(jù)類型如REF_Ref7293727\h錯誤!未找到引用源。所示。表STYLEREF1\s5–SEQ表\*ARABIC\s11api/getSchedule_v2接口請求數(shù)據(jù)參數(shù)必選類型說明username是String學號password是String教務系統(tǒng)密碼xnxqdm否String學年學期代碼,如20181獲取成績接口api/getGrade獲取用戶的課程表,返回JSON格式數(shù)據(jù)如下REF_Ref7449236\h圖5–3所示。圖STYLEREF1\s5–SEQ圖\*ARABIC\s13api/getGrade返回JSON格式數(shù)據(jù)獲取成績接口的POST參數(shù)與獲取課表的一致,此處不重復闡述。獲取當前日期接口api/getDate獲取當前日期,返回JSON格式數(shù)據(jù)如下REF_Ref7449367\h圖5–4所示。圖STYLEREF1\s5–SEQ圖\*ARABIC\s14api/getDate返回JSON格式數(shù)據(jù)本章小結本章對系統(tǒng)的功能實現(xiàn)進行了介紹,并展示了部分系統(tǒng)界面,系統(tǒng)功能的實現(xiàn)與系統(tǒng)的需求分析與總體設計相符。系統(tǒng)測試系統(tǒng)測試的目的系統(tǒng)測試是系統(tǒng)部署之前的最后一步,也是必不可少的步驟。通過良好的測試可以進一步改善系統(tǒng)??梢詸z測該功能是否已在系統(tǒng)中實現(xiàn)??梢则炞C系統(tǒng)是否經(jīng)常出錯,閃退等等。當有大量用戶時系統(tǒng)是否會崩潰。在系統(tǒng)的詳細設計中,功能模塊以單元的形式存在。雖然每個單元都運行良好,但這種組合可能會引起問題,因此系統(tǒng)測試可以確保系統(tǒng)組合正確并且操作無障礙。測試實驗分析在本小節(jié)中,將對系統(tǒng)的穩(wěn)定性、訪問速度、并發(fā)性能,兼容性等進行測試。本節(jié)設計兩個實驗,分析服務器的性能以及小程序的兼容性。后端性能實驗后端服務器性能對用戶的使用體驗有密不可分的關系。強大的服務器有能提高使用的流暢度。系統(tǒng)優(yōu)化沒有一勞永逸的方法,需要通過檢測服務器的運行狀態(tài)來及時發(fā)現(xiàn)影響性能的瓶頸,以及可能存在的潛在問題,因為網(wǎng)站的性能,永遠取決于木桶中的短板[7]。為此,在本小節(jié)中,將設計后端性能實驗,檢驗系統(tǒng)后端的性能。在實驗中,采用腳本的形式在一秒內(nèi)對服務器發(fā)起若干個請求,記錄服務器的響應時間。最終求出平均響應時間。值得注意的是,本系統(tǒng)中采取的是爬蟲獲取數(shù)據(jù)的形式,在測試的過程中需要消耗大量的時間用于請求教務系統(tǒng),得出實驗結果。從圖中可以看到,系統(tǒng)的性能相對平穩(wěn),當并發(fā)量提高的時候,服務器響應的時間快速提高。但整體滿足研究生群體的使用。為了加快響應速度,可以采用緩存的機制。前端兼容性實驗微信小程序雖然是統(tǒng)一的平臺,但是在不同系統(tǒng)的設備上,兼容性問題尤為嚴重,特別是Android平臺兼容性問題特別嚴重。例如使用微信接口wx.request()返回的狀態(tài)碼res.statusCode的值在iOS下是int型數(shù)據(jù),而在Android6.0.1上卻是String型數(shù)據(jù)。而在界面上,由于屏幕大小等問題,會導致布局不一致。為此,在本實驗中選用10個主流的手機型號,對前端進行兼容性測試。每個測試包含邏輯測試,以及界面測試[8]。測試結果如表5所示。從實驗結果中可以看到,本系統(tǒng)的前端部分表現(xiàn)出色,在邏輯方面兼容性較強。在界面方面,對于屏幕分辨率較低的手機,界面會出現(xiàn)字體過大等問題。本章小結本章通過介紹測試目的與測試方法,介紹測試的重要性。并進行測試實驗分析,展示

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論