魏曉玲,劉紅英
(廣州工商學院 工學院,廣東 廣州 510850)
近年來,全國各地掀起了一股學鋼琴熱潮,全國各地的琴房也如雨后春筍般出現了。由于琴房建設成本普遍較高,而預約學習練琴的用戶普遍較多,人工操作的管理方式經常會造成琴房使用率低的問題[1]。在這種背景下,一些較大型的琴房便著手建設自己的琴房管理系統,以期能夠通過信息化手段,優化琴房管理,改善人工管理耗時耗力的現狀。同時,用戶通過手機端即可完成預約,極大地方便了用戶[2]。本文在已有研究基礎上,前往多地對琴房進行實際走訪調研,總結客戶需求,選用相關技術工具,設計開發一款更優化的琴房管理系統。
該琴房管理系統的開發語言為Python,系統的整體框架設計使用了Python的Web開發框架Django,前端頁面采用Bootstrap框架,數據存儲使用Django框架中內置數據庫SQLite。
近幾年Python語言發展迅速,因其語法簡潔、功能強大且類庫豐富,在Web開發領域得到了很大發展,并由此產生了支持Web開發的框架,如Flask框架、Django框架等,如今已有很多知名網站都將Python作為開發語言,如世界上最大的視頻網站YouTube、豆瓣公司幾乎所有的業務均是使用Python開發的[3]。
Django框架是基于Python語言編寫的專門用于Web開發的框架,其總體設計模式為:模型-視圖-控制器(Model-View-Controller,MVC),內含多種插件和工具包,能夠為開發者提供諸多便利[4]。該框架的發展日趨成熟,使用較為便捷,能使用簡潔的代碼實現復雜系統的開發和維護工作,極大地提高了系統的開發效率。
Bootstrap是Twitter發布并開源的基于HTML+CSS+JavaScript技術的前端框架。該框架在前端開發方面有很大的優勢:有良好的代碼規范;基于Less打造,在開發過程中對CSS的處理更加簡單;響應式開發;含豐富的組件和插件[5]。
SQLite是一個輕量級嵌入式數據庫,此數據庫相當于一個文件,實現了自給自足、無服務器、零配置的、事務性的SQL數據庫引擎。
本琴房管理系統主要供相關藝術類培訓機構作為琴房管理工具使用,面向對象包括教師、琴房學員或家長,系統操作者為管理員。
根據前期的用戶調查和需求分析,確定本系統的主要角色包括:教師、學員、管理員。這3種角色間存在著密切的聯系,但具有不同的操作權限。
學員的操作權限包括:錄入和修改個人信息、查看琴房信息、琴房預約、查看與管理預約、發表評論、站內信。
教師用戶的操作權限包括:查看學員信息、查看琴房預約情況、查看學員練琴記錄、發布公告通知、上課信息登記、站內信等。
管理員的管理權限包括:琴房信息管理、學員信息管理、預約信息管理、公告通知管理、上課登記信息管理、評論管理、系統管理等。
數據庫是琴房管理系統的基礎。本文首先對數據庫進行需求分析,分析整理出系統所有對象的信息內容和處理需求,簡要描述如下。
(1)管理員角色數據管理:包括身份信息、登錄用戶名和密碼、不同管理員的權限標識。
(2)各類用戶數據管理:包括教師、學員2種用戶,數據庫表中記錄與用戶相關的屬性,如學號、姓名、登錄的用戶名和密碼、預約的琴房id號、預約時間段等。
(3)琴房數據管理:記錄琴房id號、琴房類型標識、可用狀態等。
(4)課表數據管理:包括琴房、時間及教師的指派信息,這些信息放在單獨的表中以方便進行集中管理和使用。
(5)日志數據管理:對學員上下課行為、管理員操作、教師上課登記等行為進行日志記錄,由于日志數據會隨著系統的使用而不斷累加,進而影響數據庫的性能,所以應該定期將日志數據導出備份。
其次,本文在數據庫需求分析的基礎上,進行了數據庫的概念模型設計,并繪制了ER圖。最后進行了數據庫邏輯設計和物理設計,創建出數據庫和相應的表。
根據校外藝術培訓機構琴房的實際使用情況和需求,將該系統分為學員功能模塊、教師功能模塊、管理員模塊。琴房管理系統的功能模塊設計如圖1所示。

圖1 系統功能模塊
3.2.1 學員功能模塊
學員功能模塊包括錄入與修改個人信息、查看琴房信息、預約琴房、查看與管理預約、查看預約歷史記錄、查看公告通知、發表評論、站內信等功能。其中,琴房類型包括專用琴房、普通琴房。專用琴房的使用者為指定的部分指導老師和部分學生,學員需要提前綁定才允許預約該專用琴房;普通琴房的使用者為全體學員和指導老師。預約琴房功能允許學員從系統頁面上展示的各類琴房中進行預約,學員可根據需要選擇琴房類型,系統頁面上會出現所有可預約的該類型琴房,單擊進入后可打開詳情頁面,查看該琴房的圖片、簡介、評語等。
3.2.2 教師功能模塊
教師功能模塊包括錄入與修改個人信息、查看并確認學員預約信息、查看琴房預約情況、查看學員練琴記錄、上課登記、下課登記、發布公告通知、站內信等功能。其中,查看并確認學員預約信息是指教師登錄系統后可以查看到對應學員的預約信息,比如該學員預約練琴的時間段和具體琴房,教師點擊確認預約后,該預約方能生效。上課登記是指導老師每次對學生進行練琴指導時需在系統進行登記。
3.2.3 管理員功能模塊
管理員功能模塊主要包括琴房信息管理、學員信息管理、預約信息管理、公告通知管理、上課登記信息管理、評論管理、系統管理、后臺統計數據管理等功能。其中,琴房信息管理功能指管理員可以在后臺查看現有琴房、錄入新增的琴房、修改現有琴房的基本信息、刪除已有琴房等。預約信息管理指管理員可以查看學員的預約信息,并對這些預約信息進行修改和刪除等操作。后臺統計數據管理功能指管理員將系統在后臺統計的相關數據導出備份。系統不僅可以導出原始數據,還可以利用Pyhton數據可視化相關的庫pycharts對數據進行可視化展示,對學員學習情況的評估更加客觀和有效。
本琴房管理系統在考慮客戶需求、統計數據分析和可視化展示需求以及跟相關智能設備或平臺兼容性的基礎上,采用了Python語言和Django框架進行軟件開發,采用SQLite實現數據庫管理,使得系統具有良好的性能和可擴展性。本文的琴房管理系統按照移動端開發布局模式進行實現,前端使用了Bootstrap響應式布局。在不同屏幕下,通過媒體查詢來改變布局容器的大小,再改變里面子元素的排列方式和大小,從而實現不同屏幕下,可以看到不同的頁面布局和樣式變化。學員登錄后主界面如圖2所示。

圖2 學員端系統界面
本文利用Pyhton和Django框架設計了一款琴房管理系統,實現了琴房的預約使用、監控管理、上下課打卡記錄等功能,有效提高了琴房使用率,提升了管理人員的工作效率,達到了預期效果。后續研究將在本系統的基礎上與智能設備綁定,實現琴房的智慧化管理。在琴房增設智慧琴房寶、智慧門鎖、智慧語音系統,通過與系統連接,實現機房全智能化管理,進一步提升琴房的智能化,提升琴房的信息化建設水平。