Skip to content

Latest commit

 

History

History
73 lines (58 loc) · 5.32 KB

File metadata and controls

73 lines (58 loc) · 5.32 KB

📅 双人情侣课表 (Couple Timetable)

一款专为大学生情侣设计的现代化、高颜值的双人课表应用。支持多视图无缝切换、云端实时同步、ICS 课表智能导入以及极高自由度的外观自定义。

✨ 核心功能特性

👫 双人课表模式

  • 三视图无缝切换:支持“我的课表”、“双人课表”、“Ta的课表”三种视图模式。
  • 专属颜色与标识:在双人视图中,两人的课程会分别使用专属的统一颜色(可在设置中自定义),并且对方的课程右下角会带有专属的“爱心”标识。
  • 智能重叠显示:在双人模式下,当两人的课程时间冲突时,卡片会自动并排显示,一目了然。

📅 强大的课表管理

  • 智能重叠与冲突检测
    • 单人模式最优显示:在“我的”或“Ta的”单人视图中,如果同一时间段有多门课程(如单双周交替),系统会自动挑选出当前周最需要关注的一门课(本周生效 > 距离本周最近)进行展示,保持界面清爽不拥挤。
    • 冲突高亮示警:在单人模式下,如果多门课程在当前周真实发生了时间冲突,系统会以醒目的红色背景和红色发光边框高亮示警,并显示 [时间冲突] 标签。
  • 快速回到本周:在底部导航栏双击(或再次点击)当前所在视图的图标,即可一键快速跳转回当前真实周数。
  • 周数滑动切换:支持左右滑动丝滑切换周数,支持“第 0 周(未开学)”状态。
  • 单双周与临时课程:支持设置课程为“全周”、“单周”、“双周”,甚至可以添加仅在特定日期生效的“临时课程”。
  • 已结束课程隐藏:当当前周数超过某门课的结束周数时,该课程会自动隐藏,保持课表清爽。
  • 非本周课程提示:非本周上的课会以半透明灰色显示,并带有 [非本周] 标签。

☁️ GitHub Gist 云端同步

  • 无感同步:配置 GitHub Token 和 Gist ID 后,每次修改课表都会自动在后台静默同步到云端。
  • 多端漫游:在手机、平板、电脑上配置相同的 Token 和 ID,即可实现多端课表数据实时同步,完全免费且私密。

📥 智能 ICS 课表导入

  • 一键导入:支持从各大高校教务系统导出的标准 .ics 日历文件一键导入。
  • 智能解析引擎
    • 精准解析 DTSTARTDTENDUNTILRRULE(重复规则),自动计算课程的起始周和结束周。
    • 智能提取 DESCRIPTION 中的精确上课节次(如“第1-2节”)、教室和教师信息。
    • 自动适配时间段:导入时会自动根据 ICS 文件中的真实时间,重新生成 App 的每日时间段配置(Periods),无需手动排课。
  • 智能去重合并:自动识别并合并被拆分成多次的同名课程。
  • 目标选择:导入时可自由选择覆盖“我的课表”或“Ta的课表”。

🎨 极高自由度的外观自定义

  • 自定义背景壁纸:支持上传本地图片作为课表背景(内置 Canvas 自动压缩引擎,防止存储溢出)。
  • 毛玻璃效果 (Glassmorphism)
    • 支持一键开启/关闭全局毛玻璃效果。
    • 提供滑动条,可自由调节毛玻璃的不透明度(0% - 100%),适配深色或浅色壁纸。
  • 课程块信息定制
    • 字体大小调节:支持精确输入像素值(px)调节课程块字体大小。
    • 显示内容开关:可自由勾选是否在课程块中显示“上课时间”、“课程名称”、“教室地点”和“教师姓名”。
    • 自适应排版:采用左上角紧凑排版,白字高对比度显示,确保在任何背景下都清晰可见。

⚙️ 灵活的学期配置

  • 开学日期设置:设置开学日期后,系统会自动计算当前是第几周。
  • 时间段自定义:支持自由添加、删除每天的上课节次,并可精确修改每节课的开始和结束时间。

🚀 快速开始

1. 基础配置

  1. 点击底部导航栏的“设置” -> “学期配置”,设置你的开学日期。

2. 导入课表

  1. 在“设置” -> “同步配置”中,点击“选择 .ics 文件导入”,将你的课表导入到“我的课表”。
  2. 让你的另一半也导出 .ics 文件并发送给你,再次点击导入,选择导入到“Ta的课表”。

3. 配置云同步 (实现双人共享)

  1. 前往 GitHub 申请一个 Personal Access Tokens (Classic) (只需勾选 gist 权限)。
  2. 在 App 的“同步配置”中填入 Token,点击“自动创建新 Gist”。
  3. 稍等片刻,系统会自动为你创建一个 Gist 并填入 ID。点击“手动同步到云端”。
  4. 邀请另一半:将你的 Token 和生成的 Gist ID 发给 Ta,让 Ta 在自己的手机上填入相同的 Token 和 ID,点击“从云端拉取”,即可完成双人绑定!

4. 美化课表

去“外观”设置里上传一张你们的合照作为壁纸,调节一下毛玻璃透明度和字体大小,享受你们的专属课表吧!

💻 技术栈

  • React 18 + TypeScript + Vite
  • Tailwind CSS (样式与响应式)
  • Framer Motion (动画与手势)
  • Lucide React (图标)
  • 纯前端解析引擎 (ICS 解析与图片压缩)