记录每一刻艺术时光 — 独立艺术老师的课程管家
设计文档:docs/design.md — 完整 spec + 17 次修订记录 + 3 轮 review
- Node.js ≥ 20
- pnpm ≥ 8
- macOS(开发 V1.1 加 Windows/Linux 测试)
- Rust toolchain(
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) - Xcode CLI Tools(
xcode-select --install) - Supabase 账号(免费档)
- 访问 https://supabase.com/dashboard
- 新建项目:
artchrono - 选择区域:Singapore(亚洲延迟最低)
- 设置数据库密码(记下来!)
- 等待项目启动(~2 分钟)
方式 A:Dashboard SQL Editor(推荐新手)
- 项目 Dashboard → SQL Editor → New query
- 复制
supabase/migrations/20260711000001_initial_schema.sql全部内容 - 粘贴 → Run
- 再 Run
supabase/seed.sql(可选,测试数据)
方式 B:Supabase CLI
npm install -g supabase
supabase login
supabase link --project-ref <your-project-ref>
supabase db pushDashboard → Settings → API:
Project URL→SUPABASE_URLanon publickey →SUPABASE_ANON_KEYservice_role secretkey →SUPABASE_SERVICE_ROLE_KEY(⚠️ 仅 GitHub Actions 用,不要给前端)
pnpm create tauri-app .
# 选 React + TypeScript
# 替换 package.json / Cargo.toml / src-tauri/ 内容(待 T4)pnpm tauri devxProject/
├── docs/
│ └── design.md # 完整设计文档
├── src/ # Tauri 前端 (待 T4)
│ ├── pages/
│ ├── components/
│ └── lib/
├── src-tauri/ # Tauri Rust 后端 (待 T4)
├── supabase/
│ ├── migrations/
│ │ └── 20260711000001_initial_schema.sql
│ └── seed.sql # 开发测试数据
├── scripts/ # GitHub Actions cron 脚本 (待 T11/T12)
│ ├── regenerate-all-enrollments.mjs
│ └── sync-holidays.mjs
├── .github/workflows/ # CI/CD (待 T11/T12)
└── tests/ # Vitest + Playwright (待 T13)
- 客户端壳:Tauri ^2.11
- 前端:Vite ^8.1 + React ^19.2 + TypeScript ^7.0.2(备 ^6.0.3)+ Tailwind ^4.3 + shadcn ^4.13
- 数据层:TanStack Query ^5.101 + IndexedDB(离线持久化)
- 后端:Supabase (Postgres + Auth + Realtime)
- 定时任务:GitHub Actions cron(regenerate + holidays sync + reminders)
15 个实施任务,详见 TaskList。Lane A 后端基础(已部分完成:T1 schema migration)+ Lane B 客户端(T4 T5 待做)。
MIT(待定)