这个项目能做什么
stdy4u 是一款使用 Flutter 构建的离线优先学生效率伴侣。所有数据通过 Hive 保存在设备本地;无需注册或账户。
课程管理 — 添加课程,包含名称、代码、教授、教室、时间表和颜色标记。跟踪每门课程的成绩、学分、目标GPA,并在主仪表盘上查看可视化进度环。长按可编辑或删除。
任务与笔记 — 创建带有截止日期和紧急程度(普通/紧急)的任务。每门课程都有专用的笔记标签页和可筛选的任务视图。已完成的任务以切换效果动画呈现。
课程资料 — 可附加链接、笔记或上传的文件(PDF、图片、文档)。文件会被复制到应用的文档目录中以供离线访问,点击即可打开。
考勤跟踪 — 将课程标记为出勤、迟到、缺勤或请假。月历视图可点击任意一天查看所有安排的课程。自动计算百分比,并带有可配置的阈值警告。每日时间表上会出现快捷操作标签。
番茄钟 — 可配置的专注时段(1–60分钟)、短休息(1–30分钟)和长休息(1–60分钟),自动轮换。包含会话计数器、触觉反馈、可选的背景音乐播放,以及每周专注分析图表。
屏幕时间洞察 — 通过原生 UsageStatsManager 桥接读取设备使用统计。每个应用的每日记录存储在本地 Hive 中,并在统计屏幕的可展开面板中显示。
统计与分析 — CGPA 计算,支持字母等级转换(A–F),每门课程的成绩分布图,每门科目的进度环,以及每周番茄钟专注时间图表。图表使用 CustomPaint 手绘,无需图表库。
漫画印刷设计系统 — 新粗野主义漫画美学,具有平面表面、锐利的 2.5 像素墨黑边框、硬偏移阴影和零圆角。提供浅色、深色和系统默认模式,在旧纸张和深色背景上带有标志性的墨红色点缀(#E63946)。自定义导航栏采用平面几何、粗顶部边框和大写标签。触觉反馈和按压音效可切换。
通知与闹钟 — 每周重复的课程提醒(每节课前15分钟)、任务提醒、会话提醒,以及通过 SCHEDULE_EXACT_ALARM 和原生接收器实现的精确闹钟。在运行时请求电池优化豁免,以确保可靠触发。
应用内更新 — 启动时检查 GitHub 发布版本并显示 Markdown 发布说明。下载支持暂停、恢复和取消;进度在中断后仍然保留。
架构 — 采用 Clean Architecture,分为三层(表示层、领域层、数据层),由 Riverpod 连接。导航使用 GoRouter,通过 ShellRoute 在 IndexedStack 中承载三个标签页路由。状态管理依赖于共享的刷新计数器提供者模式。
技术栈:Flutter 3.27+、Dart >=3.6.0、Riverpod、GoRouter、Hive、table_calendar、flutter_local_notifications、just_audio、build_runner(配合 hive_generator 和 riverpod_generator)。通过 GitHub Actions 进行 CI/CD。
平台支持:Android 和 iOS。采用 AGPL-3.0 许可证。路线图包括主屏幕小部件、快捷操作和闪卡功能。
评论
0 评分人数达到10人后显示
登录后参与讨论。