1、數據是怎麽獲取的,跟高校合作然後就可以獲得數據了麽,然後獲得的數據是怎麽保存到系統的數據庫中呢?是導入還是輸入還是只是高校提供了壹個接口...
1. 高校壹般不會提供這種接口的,直接從網頁版的教務系統上獲取信息。Java 使用 JSoup 這個庫可以通過 JQuery 的風格獲取 HTML 上的結點信息,也就是教務系統的網站能獲取到什麽信息,客戶端就能獲取到什麽信息。
我估計超表是在服務器端進行的信息解析,以免把解析的關鍵代碼放在客戶端導致核心技術泄漏,也壓縮了客戶端安裝包體積和傳輸數據量。
不過能開發出這麽多學校的獲取接口,超表團隊的執行力還是挺強的。
2、課程表的設計:對這個還有困惑,如何更高效的從選課表中獲取到該學生選了什麽課,這些課是在星期幾第幾節課上的,然後存在壹些特殊情況,不是每門課都是2節課連著壹起上的有可能是3節課壹起上。前臺怎麽展示出來,數據庫又要怎麽設計查詢的性能才會更高效
2. 教務系統課程表都會有表格,HTML 的 Table 標簽,使用 Jsoup 可以提取去表格的每壹行每壹列的數據,每壹行應該就是壹個課程,讀取周次、節次信息,給課程相應字段賦值即可。
這是我做的壹個解析URP教務系統課表的代碼:scuol-android/NetHelper.java at master · mdluo/scuol-android · GitHub
關於在客戶端界面上連續課程的折疊和多周次課程重疊問題,我也盡量在模仿超表的那種按天的 ListView 的格式,設計了壹種模擬俄羅斯方塊玩法的方法,具體代碼:scuol-android/CourseActivity.java at master · mdluo/scuol-android · GitHub
這