學生參會打卡系統(tǒng)需求分析和實現(xiàn)工具_第1頁
學生參會打卡系統(tǒng)需求分析和實現(xiàn)工具_第2頁
學生參會打卡系統(tǒng)需求分析和實現(xiàn)工具_第3頁
學生參會打卡系統(tǒng)需求分析和實現(xiàn)工具_第4頁
學生參會打卡系統(tǒng)需求分析和實現(xiàn)工具_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

緒論1.1研究背景據(jù)調(diào)查,目前我國的大多數(shù)高校,仍采用傳統(tǒng)的手工作業(yè)或者半手工作業(yè)方式來進行學生參會打卡的管理。在移動互聯(lián)網(wǎng)快速發(fā)展的今天。信息化建設已成為必然,高校建設已將數(shù)字化校園建設放在建設的首要位置。如何對學生學習活動全過程的動態(tài)監(jiān)控,成為校園管理中需要解決的重要問題,而打卡系統(tǒng)也成為了必不可缺少的一部分[1]。參會打卡系統(tǒng)設計目的主要是用來解決當前人工打卡管理過程中有效信息混亂、效率較低、數(shù)據(jù)不利于統(tǒng)計的現(xiàn)狀問題不利于高校對學生管理,基于當前智能手機普遍應用的現(xiàn)狀,將Android作為開發(fā)平臺,具有較高的適用性、使用方便,具有很高的研究價值[2]。1.2發(fā)展現(xiàn)狀分析近年來,越來越多的高校注重提高學生綜合素質(zhì),在學校開展各項各類座談會。但是因為學生個人的原因以及開會學生基數(shù)龐大且傳統(tǒng)打卡方式效率低或者設備缺少的情況造成打卡秩序的混亂以及打卡信息不具有一定程度的真實性。而其中有相當一部分會議安排在教學時段,學生不進行打卡參會又具有極大的安全隱患。教師在學生考勤打卡時仍然采取點名、手工記載等方式,費時費力且容易代答代簽。而對于指紋識別、人臉頭像識別等新型技術(shù),由于設備比較昂貴、實施成本高,不適合大規(guī)模推廣。并且現(xiàn)有的手工方式和圖像識別系統(tǒng)都有明顯的不足,那就是信息滯后,這幾類都無法在第一時間獲取實時信息[3]。鑒于當前的高校參會打卡系統(tǒng)比較低效,以及移動終端的普及和Android技術(shù)的成熟,想開發(fā)一款基于移動終端的低成本學生參會打卡系統(tǒng)。以提高高校學生參會打卡的效率和準確率,降低打卡過程中對人的依賴性,提高打卡信息實時性,在智慧校園建設中,本系統(tǒng)探索了一種新方式和新的技術(shù)路線,為高校教學和學生日常管理提供了有力的幫助[4]。在另一方面Android平臺也有較為良好的系統(tǒng)肉眼,移動平臺設計者發(fā)布了旨在優(yōu)化應用程序的具體指南和工具[5]所以基于Android系統(tǒng)無疑是提高用戶使用體驗的最好辦法。云服務器又稱云主機,它的出現(xiàn)主要面向各個企業(yè)用戶與對網(wǎng)絡數(shù)據(jù)管理有需求的用戶提供基于互聯(lián)網(wǎng)的設施服務。隨著云計算科技的發(fā)展網(wǎng)絡各家大型企業(yè)都推出了自己的云計算服務。當然云服務器就屬于其中之一。因為云服務器用戶群體龐大并且對用戶對云主機應用的需求日益增加,云服務器的大量租用使得越來越多高品質(zhì)的網(wǎng)頁和產(chǎn)品呈現(xiàn)的我們眼前,當然用云服務器做后臺的軟件也是數(shù)不勝數(shù)。1.3選題的意義學生在參會時會打卡簽到,效率低下的打卡方式造成打卡時人流擁擠。并且大多數(shù)同學因為自覺性不強和學校會議打卡考勤監(jiān)管不力的原因造成許多代簽或者渾水摸魚等情況。使得打卡秩序混亂至極。因此提高打卡效率;檢測和數(shù)據(jù)匯總成為了難點設計有效的參會打卡系統(tǒng)。對學生打卡信息進行統(tǒng)一化管理,此處列出幾點明顯的不足:1. 打卡工作量大,需要值守。2. 數(shù)據(jù)混亂難以管理。3. 監(jiān)督不力渾水摸魚情況多。4. 打卡費時費力且效率低。實現(xiàn)學生參會打卡的便利性,成為了迫切之需。本文主要是以提高學生參會打卡效率;簽到打卡數(shù)據(jù)的真實性和時效性,減少或者淘汰傳統(tǒng)的會議考勤人員。減少管理人員整理或者發(fā)布會議信息的工作壓力。方便領導和輔導員能更好的對學生綜合素質(zhì)進行考察為目的。并且應用當下比較成熟的移動Android系統(tǒng)和云服務器技術(shù),設計出一款基于Android的學生參會打卡系統(tǒng)。使學生參會打卡變得更加高效化智能化。1.4本論文的結(jié)構(gòu)安排第一章緒論,介紹了學生參會打卡系統(tǒng)發(fā)展歷程和本課題研究意義。第二章需求分析,詳細解析了學生參會打卡系統(tǒng)需求,并簡紹本系統(tǒng)關(guān)鍵技術(shù)。第三章系統(tǒng)總體設計,簡單描述了本系統(tǒng)的基本架構(gòu)和各個模塊的功能。第四章系統(tǒng)的實現(xiàn),展現(xiàn)了整個系統(tǒng)前端Android和后臺云服務器的主要功能實現(xiàn)以及對應的功能代碼的圖文解析。第五章系統(tǒng)的測試,介紹了測試的主要功能節(jié)點以及具體的測試方法。第六章總結(jié)與展望,對基于Android的學生參會打卡系統(tǒng)的設計、實現(xiàn)和完成概況進行總結(jié),分析當前系統(tǒng)有哪些不完善需要改進或者進一步研究的地方。并對未來技術(shù)的展望。2學生參會打卡系統(tǒng)需求分析和實現(xiàn)工具PAGE142學生參會打卡系統(tǒng)需求和實現(xiàn)工具2.1功能需求分析方案設計是對傳統(tǒng)半手工和全手工參會打卡系統(tǒng)的不足進行優(yōu)化改良的結(jié)果。在本設計設計之初對傳統(tǒng)參會打卡方式進行了研究。發(fā)現(xiàn)了存在硬件設備少考勤人員但參會人員多等諸多問題。本文是針對高校參會打卡系統(tǒng)的智能化方便化的改良設計,同時對高校于基于Android的參會打卡系統(tǒng)進行了需求分析,得出一個較為完善的設計方案。2.1.1學生參會打卡流程分析傳統(tǒng)參會打卡系統(tǒng)分為全手工和半手工兩種詳見圖2.1,這是對傳統(tǒng)參會打卡系統(tǒng)的一個簡單的總結(jié)。全手工的方式采用部署考勤人員紙質(zhì)簽到打卡。這是最原始也是對資源浪費最大的方式。而半手工方式是基于校園卡-打卡機的方式最終數(shù)據(jù)匯總用Web進行查看管理,通過網(wǎng)絡極大提高了簽到效率,但因為打卡機數(shù)量有限參會學生多所以依然會存在打卡時排長隊的現(xiàn)象。所以本文提出更加方便的基于Android的參會打卡系統(tǒng)。以下分為打卡過程和數(shù)據(jù)處理過程分析。圖2.1參會打卡系統(tǒng)流程圖1.打卡過程打卡過程是學生參加會議時,使用已經(jīng)安裝并且注冊登陸好的參會打卡系統(tǒng)app。領導及輔導員可自行決定在會議進行的任意時間在會議室通過會議ppt或張貼的方式發(fā)布含有會議信息的二維碼供學生掃描。掃描成功后學生在會議室點擊定位按鈕獲取實時位置信息,獲取成功后方可點擊簽到按鈕,手機將發(fā)送簽到信息到云服務器。App會提示服務器的反饋信息。具體過程由圖2.2所示。圖2.2打卡過程流程圖2.出庫過程云服務器在接受Android前端發(fā)來的數(shù)據(jù)后,立刻開始將數(shù)據(jù)中的信息與服務器數(shù)據(jù)庫里的信息進行比對。首先是掃描二維碼的會議信息通過和記錄會議信息以及地點的數(shù)據(jù)庫里的數(shù)據(jù)進行對比,確認會議信息是否真實有效。將定位信息即實時精確的經(jīng)緯度和記錄會議室經(jīng)緯度的數(shù)據(jù)庫數(shù)據(jù)進行對比。如果兩次對比數(shù)據(jù)均真實有效則打卡成功并將打卡信息新增至學生打卡信息數(shù)據(jù)庫里。并向手機端返回打卡簽到成功的信息。反之信息比對不成功則直接返回打卡失敗的信息。這就是數(shù)據(jù)處理流程詳見圖2.3.。圖2.3數(shù)據(jù)處理過程流程圖2.1.2用戶角色需求分析通過對參會打卡流程分析后,基于Android的學生打卡系統(tǒng)的主要人員分配如下圖圖2.4所示。圖2.4參會打卡系統(tǒng)角色需求1.參會學生參會學生時本文基于Android的學生參會打卡系統(tǒng)的主要服務對象。參會學生的主要任務是安裝app后注冊填入自己的學生信息即學號等。然后參加會議時在掃描由老師提供的含有會議信息的二維碼。在正確的會議室即開會地點成功獲取實時的經(jīng)緯度。在一切操作都完成后點擊簽到按鈕上傳簽到信息。然后查看返回的簽到結(jié)果。詳見下圖2.5所示。圖2.5參會學生權(quán)限圖2.管理人員管理人員主要負責三個數(shù)據(jù)庫信息的管理。如學校即將舉辦新的會議那么就要將會議名稱和會議地點正確導入記錄會議信息的數(shù)據(jù)庫中。如果學校要新增會議室即開會場地將要將新的會議地點以及會議地點精確的經(jīng)緯度數(shù)值正確填入記錄會議室信息的數(shù)據(jù)庫中。原則上管理人員對學生打卡信息數(shù)據(jù)庫的數(shù)據(jù)可以不做管理。但是必要情況下還是可以進行修改等操作,并且管理人員要對整個云服務器進行維護等。管理人員權(quán)限圖如圖2.6所示。圖2.6管理人員權(quán)限圖3.領導及輔導員在領導視察學生參會情況和輔導員對學生綜合素質(zhì)進行考評時往往需要學生綜合素質(zhì)的考評。那么學生的參會信息就顯得比較重要了,在傳統(tǒng)的半手工參會打卡系統(tǒng)中通過Web查看數(shù)據(jù)庫信息已經(jīng)相對成熟。那么這里就不會進行更改在網(wǎng)頁里領導及輔導員能更直觀的查看學生的參會信息。并且在會議時領導及輔導員還充當著發(fā)布會議信息二維碼的重要職務。詳見圖2.7圖2.7領導及輔導員權(quán)限圖2.1.3系統(tǒng)功能需求分析通過之前對傳統(tǒng)參會打卡方式的分析和基于Android的學生參會打卡系統(tǒng)的打卡流程和數(shù)據(jù)處理流程的簡單介紹??偨Y(jié)出基于Android的學生參會打卡系統(tǒng)的功能需求的明確概念。首先此系統(tǒng)分為兩個部分完成。前端的Android與后端的云服務器。信息采集由手機Android完成而數(shù)據(jù)處理則由云服務器完成。通過網(wǎng)絡傳輸信息能對打卡信息進行便捷的管理與修改。驗證打卡地點同時也大幅度提高了數(shù)據(jù)的真實性。本文的設計對于參會打卡系統(tǒng)的效率有了極大的提高。具體功能需求詳見圖2.8。圖2.8學生參會打卡系統(tǒng)功能需求圖2.2關(guān)鍵技術(shù)2.2.1Android簡介眾所周知Android系統(tǒng)是基于Linux的操作系統(tǒng)并且因為它的開源開放受到大多數(shù)用戶的喜愛。最開始Android主要使用于移動設備,但是隨著技術(shù)的快速發(fā)展一些新的基于Android的智能設備也出現(xiàn)在我們的眼前,如智能手表;平板電腦;智能電視;機頂盒等。起初由Google公司和開放手機聯(lián)盟領導到如今越來越多開發(fā)者的投入,Android系統(tǒng)應用開發(fā)前景極為可觀。Android開發(fā)由四大組件構(gòu)成它們分別是:用于表現(xiàn)功能的Activity(活動);只在后臺運行提供前臺支持的Service(服務);用于接受廣播的BroadcastReceiver(廣播接收者)以及最后的支持在應用中存儲讀取應用數(shù)據(jù)的ContentProvider(內(nèi)容提供者)。采用由分層架構(gòu)組建的Android系統(tǒng),從最高層到最低層被分為四個部分。它們分別為:Linux內(nèi)核、系統(tǒng)運行庫層、應用程序框架層、應用程序?qū)?。圖2.9能直觀展示Android體系的具體結(jié)構(gòu)。下面是對這幾層的簡單介紹。圖2.9Android體系結(jié)構(gòu)1.應用程序?qū)樱ˋpplication)應用程序?qū)邮亲罡邔右彩瞧胀ㄓ脩羝綍r所接觸的一層,它是核心應用程序的一個集合(如日歷;鬧鐘;聯(lián)系人等),在我們?nèi)粘J褂弥邢螺d安裝的各式各樣的軟件和游戲(如QQ;微信;網(wǎng)易云音樂等)同樣也是屬于這一層。這些應用都是由Java語言編寫。2. 應用程序框架層(ApplicationFramework)在這一層應用程序框架層主要是向開發(fā)人員提供了訪問或自行開發(fā)程序時需要的各式API。任何應用程序都能在這一層發(fā)布自己的功能塊同時也可以調(diào)用其他應用程序的功能塊。但是一切的前提都是必須遵循框架的安全性。所以我們可以歸納得出每一個應用程序后都有一系列的服務(API)。那么這些API主要有:視圖(Views);通知管理器(NotificationManager);活動管理器(ActivityManager);內(nèi)容提供器(ContentProviders);資源管理器(ResourceManager)等,這些API促使使用者有了更好的使用體驗。3. 系統(tǒng)運行庫(Libraries)系統(tǒng)運行庫也被稱為核心類庫是由C/C++庫來提供支持的。通過上一層也就是應用程序框架層為Android開發(fā)者提供服務。比如3D繪圖支持是由OpenGL/ES庫來提供服務;Web瀏覽器引擎是由LibWebCore庫來提供支持等。Android運行時庫允許開發(fā)人員用Java語言編寫應用程序。除此之外在手機內(nèi)存以及CPU優(yōu)化方面由庫里的Dalvik虛擬機進行優(yōu)化支持。4. Linux內(nèi)核(LinuxKernel)Android系統(tǒng)是運行在LinuxKernel之上的,由Linux為Android提供各種硬件服務的底層驅(qū)動(如GPS服務;藍牙服務;電源管理;視屏顯示等)。相對完全封閉的IOS系統(tǒng)開源開放的Android系統(tǒng)的編寫和應用肯定更加適合本系統(tǒng)的設計實驗開發(fā)。在如今Android系統(tǒng)使用者占據(jù)絕大數(shù)移動設備使用者的今天,基于Android的學生參會打卡系統(tǒng)更加有研究價值。2.2.2AndroidStudio簡介系統(tǒng)的前端Android應用程序是使用AndroidStudio來完成的。曾有很長一段時間AndroidStudio被稱為當下最為完美的Android編程軟件,這句話印證了它功能的強大。AndroidStudio是由谷歌公司推出的一款完全免費的Android集成開發(fā)工具。它是在IntelliJIDEA基礎上改編而來,前者因為費用高昂的原因讓無數(shù)草根開發(fā)人員望而卻步,AndroidStudio的出現(xiàn)也推動了一大波Android開發(fā)熱潮。AndroidStudio集成了開發(fā)Android應用時所需要的工具,但是AndroidStudio的運行需要Java環(huán)境的支持。所以使用AndroidStudio前首先應該安裝至少版本為1.7以上的JDK以及2G以上的內(nèi)存。AndroidStudio具有幾個比較明顯的特點:1.在我們使用AndroidStudio編寫應用程序時更加方便靈活這是因為AndroidStudio是基于gradle的構(gòu)建項目支持。2.AndroidStudio具有專屬的重構(gòu)和快速修復的方法,通過變量配置來適應不同版本的apk文件。AndroidStudio還能支持ProGuard和應用簽名。3.AndroidStudio內(nèi)置了提示工具(linktools代碼優(yōu)化工具)用于捕獲性能、可用性、版本兼容性等問題,為新手開發(fā)人員省去查找問題的時間。4..因為AndroidStudio擁有大量的代碼模塊所以在模板向?qū)砩沙S玫腁ndroid應用組件和設計模塊就變得快捷高效。5.可拖拽的布局UI編輯器省去了每一次需要用代碼調(diào)節(jié)布局的時間。為項目的開發(fā)提供了極大的幫助。所以本文基于Android的學生參會打卡系統(tǒng)的前端就是使用AndroidStudio來編寫的,作為一個還在校就讀的大學生AndroidStudio無疑是最好的選擇。2.2.3阿里云輕量應用服務器簡介輕量應用服務器是由阿里云提供的一款新的云服務器產(chǎn)品。阿里云是阿里巴巴集團與2009年創(chuàng)立的。全名為阿里云計算有限公司(AlibabaCloudComputingCo.Ltd.)是全球領先的云計算科技公司。阿里云向社會提供了云服務器出租服務。因為阿里云云服務器較業(yè)內(nèi)最為穩(wěn)定且為大學生提供了極為優(yōu)惠的云服務器出租業(yè)務。所以本文選擇使用阿里云云服務器。輕量應用服務器是面向?qū)υ朴嬎阒皇侨腴T級或者不了解的使用者提供的云服務器應用部署;安全防控;域名管理;運行維護的一站式綜合服務。使用輕量應用服務器的用戶可以在部署云服務器是選擇阿里云提供的幾款成型的精品鏡像。這些鏡像已經(jīng)內(nèi)置了相應系統(tǒng)且提前安裝了大多數(shù)項目運行的環(huán)境軟件(如MySQL;wordpress等)。本文所使用的是一個基于CentOS的系統(tǒng)鏡像,此系統(tǒng)鏡像還可以提供數(shù)據(jù)庫和服務器文件等管理的圖形化界面。為項目的開發(fā)提供了極大的幫助。2.2.4IntelliJIDEA簡介本文基于Android的參會打卡系統(tǒng)的后端云服務器的項目是在IDEA上完成的。IDEA全稱IntelliJIDEA,是java語言開發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認為最好的java開發(fā)工具之一。IDEA被給予極高的評價的原因是因為它優(yōu)秀的Debug(調(diào)試)功能。它擁有CVS整合;代碼分析;J2EE支持等功能??梢詫ava;Javascript;Ajax等技術(shù)進行調(diào)試。它的旗艦版本還可以對HTML;PHP等做支持,可謂是極為強大的編程軟件。IDEA提倡智能編碼,減輕開發(fā)人員的工作壓力所以IDEA具有許多便捷功能如:豐富的導航模式;智能的選取;對重構(gòu)的優(yōu)越支持;XML的完美支持;動態(tài)語法檢測;對JSP的完全支持;程序員意圖支持等20多種優(yōu)秀功能。本文的云服務器后臺程序由Java語言編寫,在編寫時IDEA提供了許多智能編輯和錯誤提示為本文系統(tǒng)的云服務器后端開發(fā)提供了便利。2.2.5MySQL簡介本文的學生參會打卡系統(tǒng)的云服務器數(shù)據(jù)是通過MySQL數(shù)據(jù)庫技術(shù)來管理的。MySQL數(shù)據(jù)庫是當下應用最廣泛的數(shù)據(jù)庫系統(tǒng),雖然MySQL數(shù)據(jù)庫相較于其他專業(yè)的大型數(shù)據(jù)庫系統(tǒng)有許多不足之處(如因為體積太小不支持視圖等),但是由于它是一個開源軟件且在個人使用者大量增加的今天,MySQL數(shù)據(jù)庫也能提供滿足絕大多數(shù)使用者的服務。所以它成為了當下最受歡迎的數(shù)據(jù)庫系統(tǒng)。MySQL數(shù)據(jù)庫是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),用多張表儲存不同種類的數(shù)據(jù),所以它的反應速度和靈活性都相當?shù)母?。MySQL數(shù)據(jù)庫雖然也有商業(yè)版但是它所提供的社區(qū)版功能也基本齊全。所以基于體積小、成本低、速度快的特點。它成為了中小型網(wǎng)站、個人網(wǎng)頁、高校教學的首選。MySQL數(shù)據(jù)庫作為一個優(yōu)秀的數(shù)據(jù)庫系統(tǒng)的特點如下圖2.10所示。圖2.10MySQL數(shù)據(jù)庫特點便捷性MySQL數(shù)據(jù)庫的使用操作是非常簡單的,可以說是只要懂一點IT知識的人都可以無師自通。并且現(xiàn)在Linux系統(tǒng)都會預裝MySQL,在業(yè)內(nèi)有一個很經(jīng)典的集群———LAMP(Linux、Apache、MySQL、PHP)所以MySQL使用是非常方便的。開源作為一個開源項目,MySQL旗下聚集了一大批技術(shù)愛好者或者從業(yè)者。大家提出問題共同解決問題。因為免費所以大規(guī)模部署成為可能。速度快就如前文所述MySQL數(shù)據(jù)庫利用多張表儲存不同種類的數(shù)據(jù),所以它的反應速度和靈活性都相當?shù)母摺2⑶以谏鐓^(qū)版中MySQL開發(fā)者還去除了過剩的功能,精簡了操作流程。所以操作所需要的時間也是相當短??梢浦残訫ySQL從3.23.15版本開始支持移植,這對任何一個數(shù)據(jù)庫使用者帶來的好處都是無法估量的。我們能在任何一個常見的操作系統(tǒng)里使用MySQL數(shù)據(jù)庫。也可以將數(shù)據(jù)庫文件從一臺設備轉(zhuǎn)移到另外一臺甚至操作系統(tǒng)不同的設備里。譬如本文使用的數(shù)據(jù)庫文件就是由Windows創(chuàng)建轉(zhuǎn)移到Linux系統(tǒng)里的。引擎強大MySQL數(shù)據(jù)庫時插件式存儲系統(tǒng)從而不同于其他數(shù)據(jù)庫系統(tǒng)MySQL有許多的存儲引擎諸如ndb、mylsam、tokudb等。插件式的設計使MySQL支持更多的數(shù)據(jù)庫的接入。社區(qū)支持據(jù)說monty(MySQL之父)在MySQL推出之初親自寫下30000封電子郵件幫助用戶使用MySQL,成為了一段佳話。但在MySQL的推廣方面各個網(wǎng)絡社區(qū)也是功不可沒,隨便查找都能找到各種技術(shù)文檔;疑難解答;架構(gòu)方案等。我們能在國內(nèi)外任何網(wǎng)絡社區(qū)(Google、Facebook、百度、阿里、騰訊)找到其他用戶在使用MySQL時不斷開拓創(chuàng)作的新功能和工具。重慶工程學院本科畢業(yè)設計3系統(tǒng)總體設計PAGE263系統(tǒng)總體設計3.1系統(tǒng)總體設計本論文提出的學生參會打卡系統(tǒng)主要是為了解決現(xiàn)在傳統(tǒng)打卡系統(tǒng)效率低的問題,全手工的打卡方式過于老舊在此不做討論,半手工基于校園卡-打卡機的打卡方式存在硬件設備缺少的致命問題。并且日常打卡中對于代打代簽等惡劣打卡操作也無法控制,打卡信息的真實性較低且時效性不高。所以本文設計的系統(tǒng)是目前社會上使用最為廣泛的客戶機-服務器模式,通過現(xiàn)在學生大量使用的Android手機作為打卡設備,加上一定的位置判斷功能可以在一定程度上改善目前參會打卡系統(tǒng)效率低下的現(xiàn)狀。在這一章本文將根據(jù)前文總結(jié)的系統(tǒng)的需求分為兩個部分(客戶機-服務器)分別展示系統(tǒng)的設計。3.2客戶機Android端設計學生參會打卡系統(tǒng)肯定需要獲取學生和會議的信息,再加上本系統(tǒng)采取了使用定位判斷打卡信息的真實性功能,信息采集尤為重要。所以本文的系統(tǒng)設計將信息的采集放在了客戶機Android前端上。同時信息整理完成后需要將其發(fā)送至服務器同時需要一個發(fā)送信息的功能??蛻魴C的主要功能詳見圖3.1。圖3.1客戶機的主要功能3.2.1用戶信息學生參會打卡系統(tǒng)是為了記錄學生的打卡活動而設計的,那么云服務器信息的接受和打卡信息的生成都需要登記學生的學號。所以在系統(tǒng)的Android應用里就必須要有學生信息的采集功能。在出于信息安全方面我們將學生信息功能設計為登陸界面的形式,在學生使用本系統(tǒng)的app時首先需要通過注冊賬號的環(huán)節(jié)因此學生信息采集功能就變得十分簡單,學生使用自己的學號作為賬戶設置密碼在每次賬戶登陸時系統(tǒng)將把登陸的賬號保存至本地數(shù)據(jù)庫,等待所有參會打卡步驟完成后的信息整理。3.2.2獲取會議信息采集學生信息后其次就是收集學生參加會議的會議信息了。在這一步本文提出了通過掃描含有會議信息的二維碼的方法來進行會議選擇。在移動支付如此盛行的今天掃碼操作對于當代大學生來說并不陌生,通過這個方法能節(jié)省不少的操作時間。會議信息發(fā)布和掃描二維碼是獲取會議信息的關(guān)鍵,因為本系統(tǒng)的會議信息是通過二維碼保存的,自然在每一個會議舉辦前都需要生成一個二維碼圖片。如今在任何搜索引擎上鍵入二維碼生成后可供選擇的免費二維碼生成服務多如牛毛,并且本文設計的二維碼信息保存方案的信息十分簡單。因此在二維碼生成方面本系統(tǒng)不需要過多的步驟。在會議上主講老師或者學生可以選擇在合適的時間將此二維碼圖片發(fā)布在講演PPT或者視頻里;也可以由會議主辦方在會議室布置帶有二維碼的告示。不同于校園卡-打卡機的一對一打卡方式,掃描二維碼實現(xiàn)了一對多的打卡流程極大的提高打卡效率。下圖3.2是二維碼發(fā)布及掃描演示。圖3.2二維碼發(fā)布及掃描演示3.2.3定位系統(tǒng)本系統(tǒng)對打卡操作是否異常也就是數(shù)據(jù)真實性的判斷是通過對比實時定位信息來完成的。現(xiàn)在移動設備的位置信息功能以及十分發(fā)達。民用北斗系統(tǒng)和GPS系統(tǒng)定位據(jù)可以精確到3-5m。所以在參會打卡系統(tǒng)中設計了通過將打卡操作時的實時位置上傳給服務器對比是否相應的會議室的范圍內(nèi)來進行數(shù)據(jù)真實性判斷。圖3.3是通過定位判斷數(shù)據(jù)真實性的流程圖。圖3.3定位判斷數(shù)據(jù)真實性3.2.4數(shù)據(jù)管理由于Android前端和后臺云服務器要進行數(shù)據(jù)交互,所以我們需要選擇一種安全;快速;通用;體積小的數(shù)據(jù)交換格式。通過對現(xiàn)在應用市場的考察發(fā)現(xiàn)JSON格式是一個非常好的選擇JSON是一種輕量級的數(shù)據(jù)交換格式,是基于JavaScript的一個子集。JSON采用完全獨立于語言的文本格式,采用類似于C語言的格式。典型的JSON格式中“[]”符號對表示JSON數(shù)組,“{}”符號對表示JSON對象。JSON較之XML更小更快更易解析。Android要訪問遠程MySQL數(shù)據(jù)庫,先要利用HTTP協(xié)議發(fā)送Request請求給后臺云服務器,云服務器端根據(jù)請求訪問MySQL數(shù)據(jù)庫服務器。服務器數(shù)據(jù)處理完成后通過HTTP協(xié)議回傳給Android終端,Android終端再對JSON解析,并進行相關(guān)的UI處理[6]。3.3服務器端設計在獲取Android客戶機發(fā)送來的信息后服務器需要分別將會議信息;會議室信息;與實時定位經(jīng)緯度與數(shù)據(jù)庫保存的信息對比。而用作解決學生日常問題的系統(tǒng)的后臺服務器,必須選擇一個相對穩(wěn)定無人值守也能正常運行的云服務器。并且要在云服務器上配置正確的軟件運行環(huán)境以及MySQL數(shù)據(jù)庫版本使后臺程序服務能夠被支持。最終服務器需要對Android客戶機發(fā)送來的數(shù)據(jù)進行應答發(fā)送返回值。具體功能見下圖3.4。圖3.4云服務器功能3.3.1服務器框架設計1.環(huán)境配置本系統(tǒng)的后臺云服務器選用的是阿里云輕量應用服務器,在選擇云服務器系統(tǒng)鏡像時選擇的寶塔可視化面板鏡像。這樣能更方便管理人員對云服務器的后期維護和數(shù)據(jù)庫的修改操作。在系統(tǒng)環(huán)境方面需要安裝JDK1.8和MySQL5.5及其以上版本。在數(shù)據(jù)庫查看方面需要安裝phpMyAdmin軟件,它可以對MySQL的數(shù)據(jù)表進行面板化修改。最后需要給云服務器安裝screen功能。2.建立后臺運行程序本系統(tǒng)的后臺程序是基于Java語言使用IDEA編程軟件編寫的。本系統(tǒng)的服務器應用使用了SpringBoot框架。SpringBoot是用來簡化Spring應用的初始搭建以及開發(fā)過程的框架,方便開發(fā)人員,因為不需要定義樣板化配置所以編寫復雜程度降低不少。SpringBoot能獨立創(chuàng)建并主動配置Spring應用,并且在使用IDEA編寫時可以通過Maven快速構(gòu)建。SpringBoot繼承了Spring易配置易測試的優(yōu)點。最后代碼編寫完成后需要講程序打包為jar格式。3.服務器運行程序本系統(tǒng)需要無人值守時也能正常運行所以需要Screen功能,通過screen能創(chuàng)建一個可以在后臺運行的服務,它不會因為終端的斷開停止運行,具體操作如下所示。1. sudosuroot切換root賬號。2. screen-l創(chuàng)建一個新的后臺運行服務。3. 進入保存系統(tǒng)jar包頁面。4. java-jar相應的包運行程序。3.3.2MySQL數(shù)據(jù)庫設計1.環(huán)境配置學生參會打卡系統(tǒng)基于MySQL數(shù)據(jù)庫,在數(shù)據(jù)庫中分別建立會議信息表;會議室信息表和學生打卡信息表。下面依次介紹各個表的所存儲的信息以及分別的作用。1. 會議信息表會議信息表由兩項信息組成分別是會議名稱(Varchar)和會議地點(Varchar)。會議名稱時學生參加的會議的名字它將和由客戶機Android手機掃碼獲得的信息進行對比。會議地點是參加會議所在的會議室名稱同樣與掃碼獲得的信息進行比對。2. 會議室信息會議室信息由兩項信息組成分別是會議室名稱(Varchar)和會議室經(jīng)緯度(bigint),會議室名稱和會議信息表的會議地點對應。而當確定會議室名稱后,會議室經(jīng)緯度將和上傳的實時經(jīng)緯度進行對比判斷。3. 學生參會信息表學生參會信息表由學號(bigint)和會議名稱(Varchar)組成。是服務器對傳送來的信息比對成功后將傳送來的信息中的學號和對應的會議名稱分別填入建立一條新的數(shù)據(jù)。重慶工程學院本科畢業(yè)設計4系統(tǒng)的實現(xiàn)PAGE424系統(tǒng)的實現(xiàn)4.1Android前端本節(jié)主要是介紹在學生參會打卡系統(tǒng)中前端Android的設計實現(xiàn)展示。在第二章里具體分析具體流程后,分析了前端所要實現(xiàn)的具體功能后編寫出符合系統(tǒng)基本要求的Android前端軟件。4.1.1頁面介紹1.登陸界面學生信息管理包括學生注冊;登陸軟件;修改密碼;注銷賬號等功能。在主界面所有關(guān)于學生信息的功能一覽無余。下面幾張圖片則是與學生信息功能的面板展示。圖4.1學生登錄主界面圖4.2學生注冊功能界面。圖4.3學生賬號密碼修改界面2.登陸后學生會進入系統(tǒng)主界面。主界面里有本系統(tǒng)前端的所有功能按鈕包括:會議選擇(掃描二維碼);定位;簽到及退出功能。下面幾張圖片是各個功能面板的展示。圖4.4參會打卡系統(tǒng)功能主界面進入主界面后首先應該點擊會議選擇按鈕打開二維碼掃描界面掃描在會議發(fā)布的含有會議信息的二維碼。圖4.5會議選擇二維碼掃描界面成功掃描二維碼后點擊定位按鈕,進入頁面后點擊開始定位并等待顯示實時定位數(shù)據(jù)的獲取。圖4.6實時定位界面4.1.2Android主要功能代碼簡介Android前端代碼主要分析下如何通過Android設備的GPS獲取實時定位;打開攝像機掃描二維碼以及信息上傳服務器的功能。1.GPS信息采集使用GPS首先要申請相關(guān)權(quán)限因為本系統(tǒng)的定位功能是基于百度地圖SDK所以在使用前首先應該在百度地圖申請APIKEY。具體申請還需要幾步操作這里就不做贅述。以下幾張圖是申請AK及獲取定位權(quán)限的示意圖和代碼。圖4.7百度地圖申請AK圖4.8定位功能相關(guān)權(quán)限圖4.8填入申請的百度地圖AK請求定位后獲取實時定位信息,分別請求接受對應的定位數(shù)據(jù)。百度SDK里有完整的定位信息獲取。而我們系統(tǒng)只需要精確的經(jīng)緯度數(shù)據(jù)即可。獲取以后用SharedPreferences方法將獲取到的經(jīng)緯度信息先保存到本地數(shù)據(jù)庫。圖4.9GPS請求位置信息圖4.10保存經(jīng)緯度信息2.掃描二維碼掃描二維碼和照相機相關(guān)所以首先要獲取照相機權(quán)限,在界面設置一個用于二維碼掃描框的框體。再利用已經(jīng)谷歌發(fā)布的Zbar庫,采集二維碼信息并將二維碼信息解碼。圖4.11照相機基礎功能設置圖4.12二維碼解碼線程圖4.13二維碼掃描界面布局3.傳送數(shù)據(jù)至云服務器在完成一切操作后Android客戶機需要將數(shù)據(jù)發(fā)送到云端服務器,所以需要使用http協(xié)議來進行數(shù)據(jù)傳輸,而在HTTP協(xié)議的三種方法中Post是相對安全(因為Post將請求參數(shù)放到請求體里面)也是最常用的方式所以我們采用了Post方法。由于本系統(tǒng)采用的是C/S架構(gòu)(客戶機/服務器),而后臺使用的是springboot框架只暴露出名為“check-in”的接口。所以直接將數(shù)據(jù)Post到接口。在數(shù)據(jù)方面通過JSONObject方法將之前所有的采集到的數(shù)據(jù)組成一個新的JSON數(shù)據(jù)。首先向云服務器Post的請求告訴服務器接下來的數(shù)據(jù)格式是json,服務器需要用json解析這次請求。然后將整理好的JSON數(shù)據(jù)用Post方法發(fā)送至check-in接口。在數(shù)據(jù)發(fā)送至服務器后會有產(chǎn)生一個httpResponse的對象。而本系統(tǒng)返回值設計的是只有ture和false所以response返回的應該是是一個Boolean。下圖為具體流程圖。圖4.14Android客戶機與服務器數(shù)據(jù)通信流程因為配置Post方法接口名和網(wǎng)絡地址是分開在三個頁面完成的所以這里將三張代碼整合到一起。圖4.15Post發(fā)送信息的相關(guān)設置發(fā)送消息后需要等待云服務器處理數(shù)據(jù)后發(fā)送返回值,通過得到的返回值。將打卡簽到是否成功的信息發(fā)到用戶界面,讓打卡學生知曉自己的打卡狀態(tài)。圖4.16接受返回信息并反饋4.2云服務器本節(jié)主要是介紹在學生參會打卡系統(tǒng)中后臺云服務器設計實現(xiàn)展示。在第二章里具體分析具體流程后,分析了云服務器所要實現(xiàn)的具體功能后編寫出符合系統(tǒng)基本要求的。本系統(tǒng)的云服務器是阿里云服務器,服務器系統(tǒng)使用的寶塔可視化面板鏡像(基于CentOS),云服務器的運行和維護都相對普通云服務器簡單。4.2.1服務器數(shù)據(jù)庫面板展示因為本文系統(tǒng)的云服務器使用的是寶塔可視化面板鏡像。所以云服務器可以進行可視化管理,云服務器預先安裝了phpMyAdmin方便管理數(shù)據(jù)庫信息,省去終端操作的步驟并且對數(shù)據(jù)庫里的數(shù)據(jù)可以直觀監(jiān)控。管理人員可以直接在云服務器管理界面中對會議信息和會議室信息數(shù)據(jù)進行增刪改查,更加方便操作。下面幾張圖是云服務器管理界面中提取的服務器數(shù)據(jù)庫面板數(shù)據(jù)庫展示圖(用原圖縮放)。圖4.17會議信息表圖4.18會議室信息表圖4.19學生參會打卡信息表4.2.2云服務器數(shù)據(jù)判斷主要代碼因為在前文Android前端代碼里已經(jīng)提到過數(shù)據(jù)接口而云服務器的數(shù)據(jù)接口也是相同的所以這里不再介紹。首先我們來看一下服務器是如何配置后臺數(shù)據(jù)庫的。首先應該設置數(shù)據(jù)庫的網(wǎng)絡位置。因為數(shù)據(jù)庫是MySQL數(shù)據(jù)庫系統(tǒng)操作十分方便,只需要設置好端口號8000和數(shù)據(jù)庫的用戶名和密碼就大功告成。下圖是配置數(shù)據(jù)庫的代碼圖。圖4.20數(shù)據(jù)庫配置信息Do把數(shù)據(jù)庫的每一張表映射為一個java的類這樣就可以通過操作java類完成數(shù)據(jù)持久化,而非通過與復雜的SQL語句打交道。它是一種思想,是指將數(shù)據(jù)庫中的每一行數(shù)據(jù)用對象的形式表現(xiàn)出來。Do類每一個實例都對應一行數(shù)據(jù)數(shù)據(jù)庫配置信息后就建立是服務器數(shù)據(jù)庫里的三張表的數(shù)據(jù)對象。以下三張圖分別是會議信息表;會議室表以及學生打卡信息表。圖4.21會議信息DO圖4.22會議室信息DO圖4.23學生參會打卡信息DO后臺服務器在接受到前端信息是要將數(shù)據(jù)和服務器數(shù)據(jù)庫進行判斷比對。在判斷發(fā)送來的信息是否真實有效后,進行對應的流程。如果數(shù)據(jù)真實有效就將學生學號和參見的會議名稱作為一條新增數(shù)據(jù)添加到學生參會打卡信息表里并且向前端Android設備返回true。反之數(shù)據(jù)對比失敗則直接返回false。下圖是對服務器對數(shù)據(jù)信息判斷的代碼。后臺云服務器對實時定位位置是由最初設置的會議室經(jīng)緯度和實時經(jīng)緯度進行的一個誤差判斷的簡單邏輯。將上傳的經(jīng)緯度分解成X,Y兩個數(shù)值。當實時定位的經(jīng)緯度與初始值誤差均在所設定的一個范圍(本系統(tǒng)的預設誤差是0.0003)內(nèi)則判定定位成功,反之失敗。圖4.24數(shù)據(jù)判斷代碼會很清晰看出定位判斷的邏輯。圖4.24數(shù)據(jù)判斷代碼5系統(tǒng)的測試5.1測試目的本文學生參會打卡系統(tǒng)設計目的是為了方便高校學生的日常會議打卡,所以系統(tǒng)的穩(wěn)定性;數(shù)據(jù)的準確性和信息的時效性成為本系統(tǒng)最為重要的三個考察項目。穩(wěn)定性在于Android前端能否向服務器發(fā)送信息和云服務器是否能通過發(fā)送來的數(shù)據(jù)返回對應的信息。數(shù)據(jù)準確性在于Android前端實時定位數(shù)據(jù)是否可以成功獲取和云服務器能否正確判斷誤差。信息時效性在于打卡成功后數(shù)據(jù)庫能否及時將打卡信息存入數(shù)據(jù)庫。在這一章我們將從實時定位獲取;數(shù)據(jù)傳輸考察;打卡信息變化三個節(jié)點進行測試。同樣在系統(tǒng)設計時每一個步驟都需要在在電腦編程軟件和相關(guān)輔助軟件上都成功運行并驗證成功。其次模擬器測試成功后還需要真機測試因為當系統(tǒng)安裝在真機上或許又會出現(xiàn)新的問題。云服務器是否運行正常同樣也是一個需要驗證的項目。為了將設計系統(tǒng)更加完善穩(wěn)定高效下面本文又將分為PC段模擬測試和真機測試兩個部分展示。5.2測試環(huán)境5.2.1硬件環(huán)境本系統(tǒng)兩部分測試硬件需求如表5-1所示。表5-1系統(tǒng)測試硬件需求表硬件名稱配置型號數(shù)量阿里云輕量應用服務器1核2GB內(nèi)存系統(tǒng)盤40GSSD云盤(深圳服務器)1Android手機華為P8(GRA-UL10)1筆記本電腦華碩筆記本ZX50JX(Inteli5CPU8G內(nèi)存1T硬盤)15.2.2軟件環(huán)境本系統(tǒng)兩部分測試軟件環(huán)境需求如下。Android系統(tǒng)需求:Android6.0版本及其以上版本;服務器數(shù)據(jù)庫版本要求:MySQL5.5及其以上版本;服務器其他環(huán)境需求:CentOS7.3(64位)、phpMyAdmin4.4、JDK1.8;PC端系統(tǒng)需求:Windows10專業(yè)版(需要安裝JDK1.8);PC端輔助測試軟件:AndroidStudio;Postman等。GPS定位測試環(huán)境:萬壽華庭及周圍100M范圍內(nèi);5.3系統(tǒng)功能測試本文系統(tǒng)測試將分為兩個部分:PC端軟件模擬測試和真機測試。根據(jù)本系統(tǒng)用戶使用需求分出了三個測試節(jié)點。本次測試是設計者本人進行所以測試項目可能會有局限性,本系統(tǒng)在成功發(fā)布后期在不斷完善功能后應請專業(yè)測試人員測試。5.3.1PC端軟件模擬測試因為WIN10PC端GPS獲取權(quán)限與模擬器不兼容所以PC端不進行定位測試。1. Android前端數(shù)據(jù)發(fā)送斷點Debug測試PC端驗證Android前端是否將打卡信息發(fā)送出去可以使用AndroidStudio的斷點功能和Debug測試,即將一個系統(tǒng)的單個步驟通過命令提示符面板顯示信息進行測試。由下圖5.1我們可以看見經(jīng)過斷點測試單步推進成功將具有必要信息的打卡請求信息發(fā)送(從代碼中我們能看見單步推進運行到生成發(fā)送信息并未進行到發(fā)送信息所以數(shù)據(jù)庫沒有這條信息)。圖5.1斷點Debug測試2.PC端驗證服務器功能PC端驗證服務器功能,我們利用的是Postman詳見下圖編寫一條帶有正確打卡信息的json信息到發(fā)送框填入。同時正確填入云服務器網(wǎng)絡地址和接口名稱,點擊Send發(fā)送查看服務器返回信息。同時到云服務器管理界面查看數(shù)據(jù)庫有剛才發(fā)送的打卡信息。結(jié)果如下圖5.2和5.3顯示。圖5.2Postman驗證服務器功能圖5.3查看數(shù)據(jù)庫新增信息5.3.2業(yè)務功能測試真機測試是利用Android手機安裝參會打卡系統(tǒng)軟件后,通過手機獲取會議相關(guān)的數(shù)據(jù)信息,然后將打卡信息推送到云服務器。因為在Android應用里我們只能看見用戶界面所以這里我們就測試實時定位數(shù)值的獲取功能;云服務器數(shù)據(jù)處理以及手機接收到云服務器的返回值發(fā)送到界面給參會學生的信息顯示。(因為要測試服務器對實時定位是否在允許范圍內(nèi)所以真機測試需要在室外進行)。1.Android真機在不同地方獲取實時定位實時定位功能是利用Android系統(tǒng)自帶的功能的也是本系統(tǒng)最重要的功能。在不同的地方是否能獲取到精確的

溫馨提示

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

最新文檔

評論

0/150

提交評論