做了一個比較完善的課程管理與推薦系統


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 文件,這個是生成的密鑰和公鑰,請按照以下方法生成

  1. 打開命令行工具,輸入 openssl,打開 openssl;
  2. 生成私鑰
    genrsa -out rsa_private_key.pem 2048
  3. 生成公鑰
    rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

3.2.2 安裝依賴

npm run install

3.2.3 運行項目

npm run start


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM