一个基于官方接口重构的课程平台,适配移动设备和提供更符合学生需求的功能放置。 功能概览: 自动登录、课件下载、课件快速预览、成绩排名、优秀作业参考、增强作业查看、作业文件预览、文件提交、课表查询等常用功能的体验。
国内访问:(建议ipv6访问) course.bjtu.top
感谢好朋友 上条当咩 提供的子域名和服务器。
BJTU课程平台SE起源 | 57Darling02's Blog
-
自动登入:
- AES-256-CBC加密存储凭证在用户本地
- 打开网页,会话自动重连。
-
基础课件功能增强:
-
待办列表:
- 方便的查看和提交待完成的任务
- 截止倒计时(感受到紧迫感了吗)
-
作业参考:
- 自动取出前五的作业,方便大家学习、对比、找差距🤔
-
每日课表
- 剩余课程上课下课倒计时
-
跳转直通原平台
-
批改反馈:
- 修复评语和分数展示
- 成绩排名:老师批改后,根据分数排位 (妈妈再也不怕我卷不起来了😤)
-
基础作业功能增强:
- 继承作业查看,预览和提交功能,增强:新增拖动上传,多文件一起上传(再也不想一个个点了)
- 新增删除已提交作业功能(人机兄弟交错作业后发现不能重复提交,顺手新增这个功能)
-
📱 全端适配:
- 支持PC/平板/手机移动设备(普通设备比例应该没问题)
-
autoprefixer补全各内核浏览器的CSS前缀
-
界面美化:使用统一圆角,不失优雅。
因为推荐高频率打开网站看看,而且移动端设备普遍性能偏低,因此网站做了许多性能优化工作。
-
⚡ 网络请求优化:并发请求池(限制3并发请求,太高并发别把学校服务器搞炸了😐)
-
⚡ 异步任务优化:异步任务队列,实现有序懒加载,用于延迟网络请求,均衡时间上的负载。
-
🖥️ 渲染优化:
- 骨架屏延迟复杂DOM渲染,避免动画和网络请求资源竞争。
-
缓存优化:
- 优先展示缓存的数据,后台异步更新数据。因此只有初次登入等待时间偏长。
- 当日课表,一日一更。
- 用户信息,每次请求都会更新(鉴权)
- 作业信息拆分为概要信息和详细信息
- 概要信息优先更新,包括公开的作业标题、内容和是否完成等等重要信息。
- 详细信息延迟更新,批改情况,如排名和评语等等。
- 个人和公开的作业具体内容(主要是附件)不会缓存。
注意:每次打开都会尝试更新数据,但由于是懒更新,因此会先展示缓存的数据,出现“数据更新完成”提示后才是最新的数据。
由于本人家境贫寒,没有服务器可用,因此临时利用妈妈的旧手机(HUAWEI 畅想10),使用nginx反向代理到校园局域网。 注意:为避免接口滥用,上传的项目中原先屏蔽了平台接口的调用方式。但是因为平台认为有获取用户隐私风险,现已开放全部代码(六子真的只吃了一碗粉😓)
-
🔄 服务状态检查:
- 打开侧边栏,自动进行服务状态检查
- 持续重连失败需手动退出重新登录
-
🔑 密码同步问题: 使用统一认证登入时无法调用app接口,解决方案(任选其一):
- 课程平台的密码与认证密码同步(侧边栏提供操作接口)
- 使用课程平台账号密码登入
graph LR
C -->|Nginx代理| A[网页端接口]
C -->|Nginx代理| B[轻新课堂APP接口]
C -->|Nginx代理| D[CAS认证接口]
E{用户终端} --> C[前端服务]
%%{init: {'theme': 'neutral', 'themeVariables': { 'primaryColor': '#F6F6F6'}}}%%
graph TD
A[用户认证] --> B{认证方式}
B -->|CAS认证| C[调用统一认证接口]
B -->|平台密码| D[调用原平台接口]
C --> E[认证结果处理]
D --> E
E --> F[进入主页]
F --> G[作业数据处理]
G --> H{是否有缓存?}
H -->|是| I[展示缓存数据]
H -->|否| J[直接获取新数据]
I --> K[后台发起数据更新]
K --> L[更新完成替换最新数据]
J --> L
F --> M[课表数据处理]
M --> N{是否有缓存?}
N -->|是| O[检查缓存日期]
N -->|否| P[获取数据并缓存<br/>带时间戳]
O --> Q{是否当天?}
Q -->|是| R[使用缓存数据]
Q -->|否| S[获取新数据更新缓存]
P --> R
S --> R
style A fill:#4CAF50,color:white
style B fill:#FFC107,color:black
style G fill:#2196F3,color:white
style M fill:#9C27B0,color:white
本项目采用 MIT License,请遵守以下条款:
- 禁止将本项目用于商业用途
- 引用代码需保留原始版权声明
- 不得恶意攻击官方服务器
💡 本系统为教学研究项目,开发者不对滥用行为负责

