RSchedule

电子科技大学研究生课表 APP,Flutter 实现,Android 0.4.0+7,Android 7.0 及以上。

三个图标标签页:课表、考试、个人设置。界面统一蓝色,三个页面标题对齐。透明蓝色液态玻璃风格悬浮 Dock 缩窄至264,选中滑块为灰色玻璃,图标为实心蓝色,静止边距为3。支持点击图标或拖动选中滑块切换;按压和拖动时放大、松手弹簧回弹,支持的渲染模式启用实时背景折射。页面切换采用短距离移动与淡入淡出,并保留每页滚动位置。页面本身不支持左右滑动切换。课表和考试页面向下滚动时 Dock 用360ms过渡滑出屏幕底部,向上滚动恢复;个人设置页面保持显示。系统“减少动画”开启时减少切页与回弹动画。

课表周一至周日固定七列同屏,无横向滚动。同节数课程条等长;课程名可省略,老师和教室完整换行,点击查看全部信息。课程条默认长度125%,在「个人设置 → 课表设置 → 课程条长度」调节80%–200%。课前提醒、手机日历及学期设置继续保留。

安装与学校登录

安装 dist/RSchedule-debug.apk,可覆盖旧版并保留本地课表与设置。内部 Dart 包名和 Android 包名保留不变以兼容升级。

在个人设置中打开学校账户。应用先访问 研究生系统专用认证入口,学生在学校原网页填写账号、密码和验证码;应用没有自己的密码表单,不读取或注入密码。首次认证完成后选择学校学期,确认后显示“正在查找课表,请稍候”,自动打开对应课表查询并导入保存。

学期73为2026-2027年秋、72为2025-2026年春、71为2025-2026年秋。课表路径为 /pyxx/pygl/xskbcx/index/{学期编号};考试路径为 /pyxx/pygl/kskcxx/index?xq={学期编号}。选择成功后保存在本机,课表右上角刷新及考试更新沿用该学期。「个人设置 → 更新学期」已连接时立即选择,未连接时先认证。读取的 HTML 必须与所选学期一致,取消或保存失败不改原数据。

成功导入不同学期会移除另一个页面的旧学期数据并清除旧开始日,避免混用;同学期刷新保留开始日。课表页在已导入但未设置开始日时,显示课程数量及“设置学期开始日”入口,直接进入日期设置。页面标题分别为课表、考试、RSchedule。

专用入口的原始302响应指向 HTTP 身份认证地址,携带研究生系统的 service 参数。应用将该身份认证地址转到 HTTPS 并完整保留参数。学校 HTTP 回调仅允许准确的研究生系统域名。读取或保存失败保留已有数据,可在学校认证页面重试。

真实账户认证及验证码仍需由本人操作验证;离线 HTML 与模拟回调测试不能代替真实账户联调。详见 学校接入状态。

考试安排

考试页右上角可从学校更新,或导入学校考试查询页保存的 HTML。查询路径由用户提供的导出页面确认。考试数据独立保存,同学期更新不覆盖课表,也不产生考试提醒。显示课程名称、考试时间、考场、座位号;有考核方式、考生编号或考场顺序号时一并显示。

提供的考试 HTML 含2026-2027秋学期8门课程,排考字段全部为空。当前显示“尚未安排”,不猜测考试时间和地点。未知或不完整表格拒绝导入;只有明确的无数据提示才接受空列表。原始附件与其中的学号、姓名不随源码或 APK 分发。

文件导入和设置

「个人设置 → 从文件导入」支持学校课表 .html / .htm 与版本1的 JSON,先预览再确认;考试文件从考试页导入。文件最多2MB,UTF-8编码;其中脚本不会执行。

HTML没有学期开始日,仍须在课表设置填写实际开始日和学期周数。离线文件只有保存时那个学期的数据,预览显示实际学期;其他学期通过学校在线查询获取。JSON 支持可选 schoolTerm: {"id": 73} 并兼容旧课表编号推断,不允许混合学校学期。默认课前15分钟提醒,可选5/10/15/30/60分钟。启用通知和手机日历时按提示授权。JSON样例:schedule.schema-v1.json。示例课表不覆盖本人数据,不创建通知或日历事件。

0.4.0 修复点按滑块重复回弹及速度形变:点按平滑移动,拖动和按住时放大约30%,松手弹性回位。Dock 底座与滑块分别使用实时背景折射。兼容模式仍使用透明玻璃效果,详见 0.4.0验证记录。

开发

源码在 mobile/;工具在 .tools/,不提交到 Git。Android 包名保留 com.example.hepan_everyday。

$env:HEPAN_TOOLCHAIN_ROOT='C:/Users/david/Desktop/app/.tools'
. ./scripts/android-env.ps1
Set-Location mobile
flutter pub get
flutter test
flutter analyze

仓库根目录运行 ./scripts/build-android.ps1 构建。验证记录:0.3.2蓝色图标修正、0.3.1自动读取与玻璃动画修正、0.3.0登录、考试和动画。Windows模拟器可仅在测试启动时使用软件渲染并关闭Impeller;交付APK保留手机默认渲染配置。历史验证:0.2.1、0.2.0、首版。

S
Description
利用Codex开发的个人课表软件
Readme
2.6 MiB
0.7.10版本
Latest
2026-10-30 11:35:55 +08:00
Languages
Dart 81.5%
Python 9.8%
Java 3.2%
Kotlin 2.7%
JavaScript 1.4%
Other 1.4%