袁 濤
(西北民族大學 數學與計算機科學學院,甘肅 蘭州 730030)
隨著社會的快速發展,人們對于學歷的追求也在不斷地提高。全國的考研人數不斷地增加,增長速度極其驚人。通過統計發現,雖然每年錄取人數也在增加,但是被錄取的比率還是很低。為了能夠更好地幫助準備考研的同學,在考研的過程中盡可能提供有幫助的信息,本研究研發一種針對有考研需求的學生的共享系統,根據對周圍考研成功或者是準備考研的人的調查情況來開發。
目前,已經使用的與考研有關的系統或者APP,主要特點包括:(1)設置了考研交流論壇。(2)收集了最基礎的考研學習資料。(3)整合了各大目標院校的相關資料,例如:優勢科目、易考科目、報錄比等。(4)銷售考研課程。
通過走訪調查西北民族大學以及周邊院校學生發現,大多數人存在這些困難,比如:(1)有關考研的宣傳力度不夠,學生想考研卻不知從何入手,不知道考研整體流程以及整體的考研計劃。(2)有些同學找不到本校共同考研的研友。(3)對于目標院校的了解不夠或者根本不知道如何選擇心儀學校。(4)一些已經考上研究生的學長學姐分享考研經驗時,絕大多數想考研的同學獲取不到或者根本無法找到本校已經考上研究生的學長、學姐的聯系方式,無法獲得最好的學習經驗以及報考技巧。
對于這些情況,本文研發一個系統,解決這些困難,系統可以做到以下幾點:(1)在本校找到合適的研友,共同奮斗。(2)每當已經成功的學長學姐分享考研經驗時,此系統提前通知。(3)已經成功考上研究生的同學可以在本系統上銷售考研筆記以及書籍,并且盡可能地解答要考研同學的疑問。(4)與其他考研APP或者系統一樣,提供考研目標院校資料。(5)在交流模塊中,同學可以把考研時的疑問發表在上面,共同探討。
考研的人數不斷增長,被調查的人中很大一部分希望有這樣一個平臺。基于手機以及電腦的普及,本文所設計與實現的系統只要是有網絡、有手機或者電腦、平板電腦不需要下載,只要用網址即可進入,既減少了對電腦或者手機存儲容量的消耗,又方便。
Python是一種跨平臺的計算機程序設計語言,具有解釋性、編譯性、互動性和面向對象的腳本語言,相比于其他語言,具有特色的語法結構,被稱為“入門語音”。
超文本標記語言(Hypertext Marked Language,HTML)不是一種編程語言,而是一種標識性語言,用于創建網頁,使用標簽來描述網頁。
Bootstrap是一種用于快速開發Web前端頁面的框架,它是基于HTML,CSS,JavavScript的一種開源框架,非常容易上手,采用了響應式設計,很大程度上減少了前端工程師的工作量。
Flask是使用Python編寫的Web微框架。Flask主要依賴兩種工具,一個是Web服務器網關接口(Web Server Gateway Interface,WSGI)工具集—Werkzeug,另一個是Jinja2模板引擎,不需要關心底層的請求響應處理,能更方便、高效地編寫Web程序。
2.1.1 用戶的需求
該系統需要用戶通過瀏覽器才能進入并使用系統內的資源,具體的用戶需求如下:
(1)用戶的登錄。用戶在進入系統時只能看到系統首頁,要想使用其中的功能就必須登錄。如果用戶沒有注冊,點擊注冊在指定位置填寫好信息后點擊“立即注冊”,會有彈框(使用CSS,HTML,JS封裝好的函數,使用Ajax以及JS對函數的調用)告知注冊的結果是否成功,再在指定地點填寫好相關的信息點擊立即登錄,也會有彈框彈出告知結果。
(2)用戶的權限。在本系統中用戶只能操作權限范圍之內功能,例如:完善個人信息、上傳資料、交流、查找研友等。
(3)個人信息的完善。用戶只需要點擊頭像即可進入個人信息界面,該界面中用戶可以更換頭像、填寫個性簽名、修改密碼、昵稱、性別等,填寫完后點擊“立即提交”同樣有彈框告知結果。
2.1.2 管理員的需求
管理員同樣需要通過瀏覽器進入系統,點擊登錄即可。登錄后系統會自動對登錄者的郵箱號、密碼與數據庫中的數據進行比較。如果是管理員,那么在此系統中由于權限的不一樣,普通用戶能進行的操作管理員也可以進行操作,除此之外,管理員還可以提升普通用戶為管理員、修改普通用戶的信息、刪除普通用戶、對普通用戶上傳的資料或者言論進行審核等。在審核過程中當用戶出現多次惡意的言論或者資料時,管理員可以提出警告,如果不理會可以直接刪除該用戶。
2.2.1 系統的總體結構設計
系統的總體結構設計分為兩部分,一部分是通過Flask框架對前端、后端進行設計,包含:資料模塊、查找研友模塊、交流模塊等功能,將使用Flask中的Blueprint組織管理各個模塊的內容。另一部分是數據的處理,包括數據的處理、分析、傳輸等功能。
2.2.2 模塊設計
(1)資料模塊:匯總所有上傳的資料,考研成功的人在此系統售賣的資料都存放在該模塊中,上傳的資料都需要經過審核,資料的形式沒有限制,可以是圖片、文件、視頻等。所有的資料按照內容進行分類存放。上傳時會采用UEditor(由百度Web前端研發部開發的開源富文本編譯器),上傳的過程中對各種不同形式的資料可以提供更加方便的操作。
(2)查找研友模塊:把所有準備考研的同學歸在此模塊下,有共同心儀學校的或者是處于同一所學校的只要在此系統中注冊過,都可以一起奮斗、共同前進。當用戶點擊搜索時,Flask APP收到請求,會通過相應的函數從數據庫中查找相關的數據返回給前端再渲染到Web頁面中。
(3)交流模塊:同資料模塊一樣,所發表的任何言論都需要經過審核,并且也是根據內容進行分類處理。可以是圖片、視頻、文件等形式發表言論。因交流會涉及不同形式的言論,所以也會采用UEditor獲取幫助。評論發表成功后Ajax和JS使頁面自動刷新,用戶可以第一時間看到,不需要手動刷新觀看。
(4)登錄/注冊:只需要按照提示在相關的地方填寫相關的信息,按照提示即可完成登錄或者注冊,在登錄過程中如果忘記密碼,可以通過點擊相應的鏈接,即可重新填寫密碼。為了保證用戶的信息安全,使用session對象添加cookie,數據會使用密鑰對信息進行加密,加密后的信息會存儲在名為session的cookie里,即使能看到相關信息,如果沒有密鑰無法對session cookie中的值進行修改。
2.2.3 Flask框架
在Flask框架中,前端框架是由Bootstrap框架和jinja模板語言相結合展示出頁面,當用戶點擊相關功能時,前端向Flask APP發送相應的請求,Flask APP從后端獲取到數據,通過路由(route)把數據傳送給前端,前端再把數據渲染到頁面中。然而,Flask APP在接到前端發送的請求時,會對該請求進行分析,然后由特定的函數來執行這次請求操作。
2.2.4 后數據處理
該系統是將數據處理部分和Flask框架分開,數據處理和Flask框架并行處理,使系統的穩定性得到保證。如果數據處理出現問題,Flask APP運行不會受到影響,同時該系統的運行速度也會有所提高。
此系統采用輕量級的Web應用框架Flask和B/S模式開發,整個系統主要分為3大模塊,各個模塊的操作盡可能簡潔,讓使用該系統的用戶更好地掌握需要的信息,在考研之路上盡可能提供更大的幫助。