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 图片的形式对其作出演示。自己在大学的时候做了一个课程管理与推荐系统,系统的功能包括课程表、课程推荐、课程群聊三大功能。其实自己也是在大学时候感受到没有一款相似的工具出现,并且平时想找大学课程班上的同学比较困难,因为大学是走班制,没有固定的班级。所以就做了这么一款软件。总体来说分为 Android 端、Web 端、Nodejs 端。

本章主要来介绍一下本系统做的一些功能,并且通过 gif 图片的形式对其作出演示。

2.1 课程表

课程表就是可以通过自动导入或者手动新建的方式进行添加,但是由于浏览器跨域限制,Web 端并没有做自动导入功能,而是将其放到了 Android 端,GitHub 地址如上所示。自动导入故名思义,输入你的学号和密码,就可以通过学校教务处拉取你的课程信息,当然这个需要适配,目前只适配了上海大学(对,我就是上海大学的😝)。
手动新增课程的方式也比较人性化,通过在课程表中下拉就可以弹出课程详情的 form 表单,输入相关的信息即可。下面通过 gif 图片来演示一下。
做了一个还算不错的课程系统 - 图1

2.2 课程群聊

课程群聊就是在你新建完课程之后,系统会自动根据你新建的课程将你拉入到对应的课程群聊当中,省去了寻找群聊的过程,打开聊天界面即可看到所有课程群聊,要注意的是当学校、课程名称、课程好均相同时才会进入到同一个课程群聊当中。
在群聊中可以发送图片、表情、文字等信息,演示如下:
做了一个还算不错的课程系统 - 图2

课程推荐

系统中还有一个课程推荐的功能,就是根据你平时的点击日志进行课程推荐,推荐算法使用的是比较经典的基于物品的协同过滤推荐算法。数据库的所有课程都是从网易云课堂、腾讯课堂、MOOC 等网站爬取的,具体的方法可以看我这篇博客,演示如下:
做了一个还算不错的课程系统 - 图3

Android 端总览

做了一个还算不错的课程系统 - 图4

3.1 Web 端

安装依赖

  1. yarn install

运行项目

  1. yarn start

3.2 Nodejs 端

你应该可以发现项目目录/config/下的三个文件里面的配置项都为空,因为我使用的云服务器作为 MySQL 数据存储,包括 qq 邮箱密钥,为了保护隐私,还请大家自己填写调试程序。

3.2.1 配置变量

  1. const PASS_SECRET = {
  2. SECRET_KEY: ""
  3. };
  1. const dbConfig = {
  2. DATABASE: "",
  3. USERNAME: "",
  4. PASSWORD: "",
  5. PORT: "",
  6. HOST: ""
  7. };
  1. const emailInfo = {
  2. user: "",
  3. pass: ""
  4. };

另外,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 配置数据库

运行 GitHub 仓库中的 sql 文件或者点击这里下载。
curriculum.sql

3.2.3 安装依赖

  1. npm run install

3.2.4 运行项目

  1. npm run start