- 📅 多日历管理,自定义名称与颜色
- 🔁 完整支持 RRULE 重复规则,可表示每周固定的课程表
- 📥 iCal 导入导出,📤 导出本周为 Excel
- 🖱️ 拖拽移动事件、拖动边缘改时长、点空白处快速新建
- ✅ 艾森豪威尔四象限待办,自动分级 P1–P4
- ⏰ 截止日期倒计时,逾期高亮
- ✂️ 长任务自动拆分,段落之间留休息时间
- 💬 自然语言录入:输入「周五下午交报告」自动解析成结构化待办
- 🧠 两种排程模式:本地算法调度,或交给大模型调度(仅本机模式也能直连大模型,配置与密钥不出本机)
- 🌓 浅色 / 深色 / 跟随系统
- 🎨 外观自定义:主题色、背景图、小组件配色
- 🌍 简体中文 / English
- 📴 离线可用,断网时读写不受影响
Android 小组件不是静态截图,可以交互:
- 🗓️ 今天 / 明天双栏课表,含彩色标记、课程名、地点、时间
- ☑️ 待办清单可滚动,点复选框直接完成,已完成的显示删除线并沉底
- ⏳ 已结束的课程自动隐去,不用打开 App
- 🏷️ 顶栏显示最近有课所属的日历名、日期与教学周次
- 🎨 圆角磨砂外观,跟随系统深浅色
- 🖌️ 面板底色、不透明度、明暗与背景图都能在 App 里改,保存后立即生效
- 📴 纯本机模式同样可用,无需服务器
外观在 设置 → 外观 里调整:主题色可选预设或取色器自定义;背景图支持上传本地图片, 并单独调节不透明度与模糊;小组件可以跟随应用配色,也可以单独指定底色与明暗, 面板不透明度调到 0 就是纯文字挂件。
Android —— 从 Releases 下载 APK 安装。
Web / 桌面
git clone https://github.com/ADA-quart/ITDC.git
cd ITDC
npm install
npm run dev:all # 前端 5173 + 后端 3000打开 http://localhost:5173 。默认即为「仅本机」模式,不需要任何配置。
Windows —— 依次双击 install.bat 与 start.bat,后者会打印局域网 IP 方便手机连接。
| 模式 | 场景 | 怎么配 |
|---|---|---|
| 仅本机(默认) | 单设备 | 不用配 |
| 局域网 | 手机连电脑 | 电脑跑 npm start,手机填 http://<电脑IP>:3000/api |
| 公网 | 任意网络多设备 | 部署到云平台或内网穿透,填 https://<域名>/api |
切换到同步模式时两端数据会合并:各自独有的记录都保留,同一条以修改时间较新者为准。
⚠️ 服务端没有账号体系,能访问到地址的人都能读写数据。公网部署前请先加访问控制, 详见 SECURITY.md。
React 18 · TypeScript · Ant Design 5 · FullCalendar 6 · Vite 6 · IndexedDB · Express · sql.js(SQLite 的 WASM 版,无需原生编译)· Capacitor 8
| 文档 | 内容 |
|---|---|
| 架构说明 | 数据流、合并同步原理、技术选型理由 |
| 部署指南 | 局域网、内网穿透、云平台、Docker |
| 小组件 | 设计、数据通道、Android 平台限制 |
| API 参考 | 全部 HTTP 接口 |
| 安全说明 | 威胁模型、密钥、数据位置 |
| 变更日志 | 版本历史 |
| 贡献指南 | 开发约定 |
目前文档为中文。英文版 README 在 README.en.md。
复制 .env.example 为 .env(纯本机模式不需要)。
| 变量 | 默认 | 说明 |
|---|---|---|
PORT |
3000 |
服务端口 |
HOST |
0.0.0.0 |
监听地址,只允许本机可设 127.0.0.1 |
DB_PATH |
data/calendar.db |
SQLite 文件路径 |
CRYPTO_SECRET |
开发默认值 | 加密 LLM API Key。生产必填,openssl rand -hex 32 |
CORS_ORIGINS |
空 | 额外允许的前端来源,逗号分隔 |
npm run dev:all # 开发模式
npx tsc --noEmit # 类型检查
npx vitest run # 单元测试
npm run build # 构建前端构建 APK(顺序不能省,只跑 gradlew 不会重新打包前端资源):
npm run android:sync
cd android && ./gradlew assembleDebug小组件不自动刷新 —— 国产 ROM 默认限制后台。设置 → 应用 → ITDC → 省电策略 → 无限制。
手机连不上电脑 —— 确认同一网络、start.bat 在运行,检查 Windows 防火墙是否放行 3000。
数据在哪 —— 服务端模式在 data/calendar.db;仅本机模式在浏览器 IndexedDB,可用「导出 iCal」备份。
教学周次对不上 —— 目前按「9 月 1 日所在周为第 1 周」估算,与各校校历可能有差异。
APK 为什么是 debug 签名 —— 未配置发布密钥库,个人使用没问题,不适合上架应用商店。
MIT © 2026 ADA-quart



