Web 端:https://github.com/jacob-lcs/awesome-curriculum-web
Android 端:https://github.com/jacob-lcs/awesome-curriculum-android
Nodejs 端:https://github.com/jacob-lcs/awesome-curriculum-backend
預覽網址:http://schedule.lcs.show/
一、引言
自己在大學的時候做了一個課程管理與推薦系統,系統的功能包括課程表、課程推薦、課程群聊三大功能。其實自己也是在大學時候感受到沒有一款相似的工具出現,並且平時想找大學課程班上的同學比較困難,因為大學是走班制,沒有固定的班級。所以就做了這么一款軟件。總體來說分為 Android 端、Web 端、Nodejs 端。
二、功能介紹
本章主要來介紹一下本系統做的一些功能,並且通過 gif 圖片的形式對其作出演示。
2.1 課程表
課程表就是可以通過自動導入或者手動新建的方式進行添加,但是由於瀏覽器跨域限制,Web 端並沒有做自動導入功能,而是將其放到了 Android 端,GitHub 地址如上所示。自動導入故名思義,輸入你的學號和密碼,就可以通過學校教務處拉取你的課程信息,當然這個需要適配,目前只適配了上海大學(對,我就是上海大學的😝)。
手動新增課程的方式也比較人性化,通過在課程表中下拉就可以彈出課程詳情的 form 表單,輸入相關的信息即可。下面通過 gif 圖片來演示一下。
2.2 課程群聊
課程群聊就是在你新建完課程之后,系統會自動根據你新建的課程將你拉入到對應的課程群聊當中,省去了尋找群聊的過程,打開聊天界面即可看到所有課程群聊,要注意的是當學校、課程名稱、課程好均相同時才會進入到同一個課程群聊當中。
在群聊中可以發送圖片、表情、文字等信息,演示如下:
課程推薦
系統中還有一個課程推薦的功能,就是根據你平時的點擊日志進行課程推薦,推薦算法使用的是比較經典的基於物品的協同過濾推薦算法。數據庫的所有課程都是從網易雲課堂、騰訊課堂、MOOC 等網站爬取的,具體的方法可以看我這篇博客,演示如下:
Android 端總覽
三、部署方法
3.1 Web 端
安裝依賴
yarn install
運行項目
yarn start
3.2 Nodejs 端
你應該可以發現項目目錄/config/
下的三個文件里面的配置項都為空,因為我使用的雲服務器作為 MySQL 數據存儲,包括 qq 郵箱密鑰,為了保護隱私,還請大家自己填寫調試程序。
3.2.1 配置變量
// PASS_SECERT.js
const PASS_SECRET = {
SECRET_KEY: "" // 加密密碼的密鑰,自己隨便填寫就好
};
// dbConfig.js
const dbConfig = {
DATABASE: "", //數據庫
USERNAME: "", //用戶
PASSWORD: "", //密碼
PORT: "", //端口
HOST: "" //服務ip地址
};
// email.js
const emailInfo = {
user: "",
pass: "" // QQ郵箱密鑰,注意:不是密碼
};
另外,config 目錄下還有兩個 pem 文件,這個是生成的密鑰和公鑰,請按照以下方法生成
- 打開命令行工具,輸入 openssl,打開 openssl;
- 生成私鑰
genrsa -out rsa_private_key.pem 2048
- 生成公鑰
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
3.2.2 安裝依賴
npm run install
3.2.3 運行項目
npm run start