学校终于更新教务系统了,本项目停止开发。
URP教务管理系统是部分高校用于对学生进行管理的系统,然而部分学校(比如我校)久未对教务系统进行更新,导致都0202年了在手机上看成绩字还小的跟蚂蚁似的,本项目计划对其一部分功能进行了优化,其中包括:
- GPA计算
- 成绩查询
- 成绩推送到IFTTT
- 导出课表
本项目采用Flask框架搭建,已在URP(版本1.5_0)下测试通过,暂不支持辅修、补考以及等级制成绩计算。
Update(2021.1.5) 采用Vue.js
全新重构,支持前后端分离部署。
BrandNewURPJW
├─ Dockerfile
├─ LICENSE
├─ README.md
├─ app.db # 数据库
├─ app.py # 后端主程序
├─ config.py # 配置文件
├─ fetch.py # 数据爬虫
├─ front_end # 前端
│ ├─ babel.config.js
│ ├─ package-lock.json
│ ├─ package.json
│ ├─ public
│ │ └─ index.html
│ └─ src
│ ├─ App.vue # 主程序
│ ├─ components # 组件
│ ├─ config # 配置文件
│ └─ main.js
├─ push.py # 定时推送
├─ requirements.txt # 依赖
└─ student.py # 学生数据库逻辑
./front_end/src/config/server.js
- server : 后端服务器地址
./config.py
- HOST : URP教务系统主机地址
- MAX_RETRY_TIME : 推送最大尝试次数
- REFRESH_TIME : 数据刷新时间(不建议设置过小
毕竟教务系统是块土豆)
- 项目环境依赖安装
npm install
- 修改前端配置文件
详见前节。
- 编译前端文件
npm run build
- 部署前端
将上一步编译完成的前端文件部署到前端服务器中。
- 安装依赖
pip install -r requirements.txt
- 修改后端配置
详见前节。
- 使用Gunicorn或其它前端程序拉起项目
可以使用screen等软件让其保持在后台运行(下同),服务将在服务器8080端口上运行。
gunicorn -w 1 -b 0.0.0.0:8080 app:app
- 拉起推送服务
python push.py
IFTTT在中国大陆地区访问速度可能欠佳。
- 首先新建一个Appletshttps://ifttt.com/create,设置好触发事件的名称,具体的推送模板可以自定义,程序将在
value1
中推送课程名,在value2
中推送成绩,以下是一个参考:
-
查看推送地址https://ifttt.com/create点击右上角的
Documentation
进入到接口api界面获取秘钥。 -
设置页面中(右上方个人信息下拉框中进入)填入上述两个参数并提交。
具体效果可以参照下图:
如果您有什么好的想法与建议欢迎在issues中提出,同时如果您在使用过程中发现了Bug请以 清晰的描述(包括程序环境信息等) 在issues中提出,当然如果您有能力且愿意参与到本项目中来也欢迎您提交pull request。
同时,本人提供有偿技术支持,如有需要请与我联系。
- Beta 1.0
- 添加GPA计算器功能
- Beta 1.1
- 添加成绩查询功能
- Beta 1.2
- 添加考试查询功能
- 修复GPA计算错误
- Beta 1.3
- 修复前端bug
- 完成一键教评功能前端逻辑
- Beta 1.4
- 完成一键教评功能
- Beta 1.4.1
- 更换验证码识别方案为muggle-ocr
- Beta 1.5
- 全新重构,支持成绩推送至IFTTT
- Beta 1.5.1
- 修复前端逻辑
- Beta 1.5.2
- 添加运行日志
- 优化异常处理
- 升级tensorflow依赖版本
- Beta 2.1.0
- 全新重构
- Beta 2.1.1
- 支持等级制成绩