Skip to content

mshzy/study_assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

学习通作业提醒

学习通作业提醒是一款本地版 Flutter App。用户可以绑定学习通和数你最灵账号,App 会在本机同步未完成作业/考试、展示截止时间、安排提醒通知,并把近期待办同步到手机桌面小组件。

项目信息

预览

学习通作业提醒新版界面

已实现能力

  • 学习通账号密码登录,凭证仅保存在本机安全存储。
  • 学习通登录后会尽量获取学生姓名,“我的”页优先显示真实姓名,获取不到时回退显示账号。
  • 数你最灵账号登录,学校列表自动获取,支持按学校名称或学校代码关键字筛选。
  • 本地同步学习通和数你最灵作业,学习通考试也会合并展示在“作业”页。
  • 只展示未完成作业;已提交、待批阅、已完成或 completed 状态的作业会自动隐藏。
  • 底部导航改为“作业 / 日历 / 统计 / 我的”,提醒设置和同步学习通统一放到“我的”的设置卡片中。
  • 新增日历页和统计页,可按日期查看待办,并查看完成率、任务趋势和课程完成情况。
  • “我的”页采用新版卡片式 UI,包含课程卡片、提醒设置、同步学习通、数据备份、帮助与反馈、关于我们、检查更新和 GitHub 源码入口。
  • “添加平台账号”页面支持返回按钮,从“我的”进入后可以直接返回上一页。
  • 支持自定义自动同步分钟数;过快同步会增加耗电量和网络请求次数。
  • 自动同步会更新作业和最新截止时间,并在截止时间变化后重新安排提醒。
  • 自动同步间隔采用小卡片式选择,不再使用拥挤的椭圆分段控件。
  • 支持作业详情、返回主页、手动标记完成;手动完成后再次刷新不会重新显示。
  • 未完成互评作业保留,已完成/已互评作业自动过滤。
  • 支持自定义提醒时间,可按“几小时几分钟”精确到分钟设置、删除并保存多个提前提醒规则。
  • 支持本地系统通知,包含锁屏提醒、精确闹钟和开机后恢复已安排提醒。
  • 通知文案会显示“还剩 4 天 3 小时 5 分钟截止”这类易读格式。
  • 提醒设置页提供通知权限、精确闹钟、锁屏提醒、后台与自启动的系统设置入口。
  • 支持 Android 桌面小组件,显示近期待完成作业、课程名和剩余时间。
  • 小组件点击可直接进入对应作业详情;旧版 deep link 也已兼容。
  • 支持在 App 内检查 GitHub Release 最新版本,并打开 APK 下载/安装链接。
  • “关于我们”展示版权、开源协议、版本号和 GitHub 源码入口。

使用指南

1. 安装

  1. 打开 GitHub Release 页面:https://github.com/mshzy/study_assistant/releases
  2. 下载最新版本 APK,例如 study-assistant-v1.0.7.apk
  3. 在 Android 手机上打开 APK,根据系统提示允许安装。
  4. 首次打开 App 后,按提示授予通知权限。为了准时提醒,建议在“提醒”页开启精确闹钟、锁屏提醒和后台/自启动相关权限。

2. 登录与同步

  1. 打开 App,选择学习通或数你最灵登录。
  2. 登录数你最灵时,先在学校框搜索学校名称或学校代码,选择学校后输入学号和密码。
  3. 进入“我的”页,点击“同步学习通”,再点击刷新作业。
  4. App 会同步未完成作业和最新截止时间,数据只保存在本机。
  5. 可以在“自动同步”中选择 15 分钟、30 分钟、1 小时、关闭,或输入自定义分钟数。间隔太短会增加耗电和网络请求,建议不要低于 15 分钟。

3. 作业与提醒

  1. “作业”页只展示未完成作业。已完成/已互评作业会过滤,未完成互评作业会保留。
  2. 点击作业可查看详情,详情页可以返回主页,也可以手动标记完成。
  3. 手动标记完成后,后续刷新不会再次显示该作业。
  4. 进入“我的”页,点击“提醒设置”,可以勾选预设提醒,也可以输入“几小时几分钟”的自定义提醒时间。
  5. 保存提醒规则后,App 会为所有未完成作业重新安排本地通知。

4. 桌面小组件

  1. 长按 Android 桌面空白区域,选择“小组件”。
  2. 找到“学习通作业提醒”小组件并添加到桌面。
  3. 小组件会显示近期待完成作业、课程名和剩余时间。
  4. 点击小组件里的作业可直接进入 App 对应详情页。

隐私说明

  • 学习通、数你最灵账号密码和作业数据只保存在本机,不会上传到任何自建服务器。
  • 不绕过学习通验证码、风控或加密保护。
  • 小组件不直接访问学习通或后端,只显示 App 写入的本地共享快照。

v1.0.7 更新

  • 修复学习通姓名和头像获取逻辑:登录后先跟随学习通 SSO 地址完成 cookie 落地,再访问学习通个人首页解析用户信息。
  • 修复学习通资料页 HTML 中 meta name="viewport" 被误识别成姓名的问题。
  • 学习通头像优先使用 SSO 返回的 pic,再回退到 puid,最后才使用 uid/cookie
  • 学习通头像会请求 160_160c/png 尺寸,并解析 photo.chaoxing.com 跳转后的 p.cldisk.com 最终地址。
  • “我的”页头像加载会携带学习通图片需要的 Referer 和移动端 User-Agent,修复 CDN 防盗链导致头像显示默认图的问题。
  • 学习通学生姓名和头像 URL 会保存到本地安全存储,重启后仍可显示。
  • 自动同步刷新学习通登录态时会回写新获取到的姓名和头像。
  • 自动更新下载时显示进度条、百分比和已下载大小。
  • 修复 App 内自动更新下载完成后被迅雷等第三方下载器接管的问题,安装更新时优先打开 Android 系统安装器。
  • 更新 README 预览图为新版四屏界面总览。
  • 已用测试账号验证姓名为“郜小展”,头像地址为 https://p.cldisk.com/star3/160_160c/05055cacb0d79d5f723c99d1beca393a.png
  • Android 版本更新为 versionName=1.0.7versionCode=27
  • APK SHA256:8BA3CAAF69F428805B92E0E1D3A515E8DB8BD17D2C02A26BE3533FCFA2BD9B5E

v1.0.6 更新

  • 重构主界面 UI,底部导航调整为“作业 / 日历 / 统计 / 我的”,新增日历页和统计页。
  • 将“提醒设置”和“同步学习通”移动到“我的”页设置卡片中,减少底部导航拥挤。
  • “我的”页新增课程卡片、检查更新入口和新版设置列表。
  • 新增 App 内检查 GitHub Release 更新,支持直接打开 APK 下载/安装链接。
  • 学习通登录后会保存并显示学生姓名,不再显示固定的“小明同学”。
  • 修复从“我的”进入“添加平台账号”后没有返回按钮的问题。
  • 修复多平台同步时单个平台失败会清空另一平台旧作业的问题,失败平台会保留上次同步结果。
  • 修复学习通考试开始时间、UTC 时间解析和数字完成状态识别,减少时间偏差和状态误判。
  • 修复互评作业与数你最灵英文状态的完成/未完成误判,避免未完成项目被提前隐藏。
  • 修复登录成功但首次同步失败时仍停留在登录页的问题,并清理退出登录后的旧错误提示。
  • 修复通知点击跳转作业详情和旧提醒取消匹配问题。
  • Android 版本更新为 versionName=1.0.6versionCode=17
  • APK SHA256:5CC0B2E14490FD82D77ED542AD6A56CE6DBB95D0ECB46650B26D1C4EDB4B2088

v1.0.5 更新

  • 新增数你最灵作业提醒支持,登录时自动拉取学校列表并支持关键字筛选学校。
  • 学习通考试合并到“作业”页展示,不再单独提供考试手动添加入口。
  • 作业列表会过滤已提交待批阅、已完成和 completed 状态,避免交完后继续出现在待办里。
  • 登录失败会在登录页直接显示明显提示,学校列表加载完成后页面会自动刷新。
  • Android 版本更新为 versionName=1.0.5versionCode=16

v1.0.4 更新

  • 优化自动同步时间选择 UI,移除拥挤的椭圆分段控件,改为独立小卡片。
  • 新增提醒权限管理入口:通知权限、精确闹钟、锁屏提醒、后台与自启动。
  • 优化提醒通知文案,显示易读的剩余时间。
  • Android 通知支持锁屏展示,并保持高优先级提醒。

本地版运行

cd D:\code\study_assistant\local_app
flutter pub get
flutter run

构建 APK:

cd D:\code\study_assistant\local_app
flutter build apk --release

开源协议

本项目采用 MIT License 开源,版权归 HY 所有。你可以在遵守 MIT License 的前提下使用、复制、修改、合并、发布、分发、再授权或销售本项目副本,但必须在软件副本或主要部分中保留原始版权声明和许可声明。

软件按“原样”提供,不提供任何明示或暗示担保。完整协议文本见 LICENSE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors