Skip to content

Vizards/uestc-api

Repository files navigation

UESTC

UESTC-API

👉 https://uestc.ml

node (tag) Docker Cloud Automated build Docker Cloud Build Status Dependency Status PRs Welcome %e2%9d%a4

介绍

UESTC-API 是电子科技大学部分网站功能的集成 API 接口,仅支持查询本科生数据

功能

以下功能尚未完全接口化。3、4 中的功能均以 302 跳转到相关网页的方式完成(已经过处理使其支持 HTTPS 和移动端视图)

如果您有兴趣完善,欢迎 Pull Request

  1. 教务系统

    • 统一身份认证系统登录/退出
    • 按学期获取课程表信息
    • 按学期获取考试安排信息
    • 按学期获取课程成绩信息
    • 获取所有课程成绩信息
    • 获取成绩统计信息
    • 获取平时成绩信息
    • 获取和设置用户个人信息
    • 评教
  2. 后勤综合服务

    • 获取一卡通信息
    • 一卡通挂失
    • 获取一卡通和电费账单
    • 获取宿舍电费信息
  3. 校园实用工具

    • 校园班车查询
    • 空闲教室查询
    • 当日课程查询
    • 全校课程查询
    • 教师信息查询
  4. 公告与信息

    • 学校办公室联系方式
    • 教务服务指南
    • 教学管理公告
    • 教研教改公告
    • 实践交流公告
    • 教学新闻
  5. 开发者服务

    • 获取账户教务系统网站 cookies
    • 获取账户一卡通网站 cookies

文档

部署

UESTC-API 现已提供 Docker 版本,但仍可灵活选择多种部署方式

详见:部署 - GitHub Wiki

开发

在开始之前,请确认您的电子科技大学本科统一身份认证系统账户已完成初始设置

安装

项目框架为 Eggnode 版本需要高于 v8.0.0

$ git clone && npm install

安装全局依赖

开发环境运行

设置 config.default.jsconfig.unittest.js 中的密码、Key 等

$ npm run dev

参数说明

参数 是否必须 说明
APP_KEY 自定义
JWT_SECRET 自定义,生成 jwt-token 的密钥
YOUR_STU_NUM
YOUR_STU_PASS
否(单元测试必须) 学号
密码
YOUR_ROOM_ID 否(单元测试必须) 宿舍房间号
ALINODE_APPID
ALINODE_SECRET
阿里云 Node.js 性能平台
APPID
SECRET
(需自行注册)
PROXY HTTP(S) 代理服务器地址和端口
格式 http(s)://url:port

或者可以将参数设置为环境变量,然后运行:

Linux, MacOS(Bash)

APP_KEY=xxx JWT_SECRET=xxx YOUR_STU_NUM=xxx  YOUR_STU_PASS=xxx YOUR_ROOM_ID=xxx ALINODE_APPID=xxx ALINODE_SECRET=xxx PROXY=xxx npm run dev

Windows(cmd.exe)

set APP_KEY=xxx && set JWT_SECRET=xxx && set YOUR_STU_NUM=xxx && set YOUR_STU_PASS=xxx && set YOUR_ROOM_ID=xxx && set ALINODE_APPID=xxx && set ALINODE_SECRET=xxx && set PROXY=xxx && npm run dev

Windows(Powershell)

($env:APP_KEY=xxx) -and ($env:JWT_SECRET=xxx) -and ($env:YOUR_STU_NUM=xxx) -and ($env:YOUR_STU_PASS=xxx) -and ($env:YOUR_ROOM_ID=xxx) -and ($env:ALINODE_APPID=xxx) -and ($env:ALINODE_SECRET=xxx) -and ($env:PROXY=xxx) -and npm run dev

浏览器打开 http://127.0.0.1:7001 页面出现项目主页即为运行成功

单元测试

运行测试需要配置上表中的参数,同时保证数据库可连接

单元测试受源站网络影响,如遇单元测试无法通过,请先确认 教务系统一卡通成电微教务(微信订阅号) 是否可以正常使用

$ npm run test

目前只完成了 Controller 层简单的单元测试,如果您有兴趣完善,欢迎 Pull Request

覆盖率测试

$ npm run cov

代码风格检查(ESLint)

$ npm run lint

检查依赖更新

请先删除 package-lock.jsonyarn.lock 文件

$ npm run autod

参考:autod

合作产品

如果您的产品或服务接入了 UESTC-API,可通过 New IssuePull Request 展示在此处

UESTC 电子科技大学(UESTC)iOS 客户端
UESTC iUESTC - 电子科技大学 Android 客户端

许可协议

GPL-3.0

About

🏫 电子科技大学(UESTC)集成 API

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published