Poetry App(诗词应用)
基于 Tauri 2.x 的桌面端中国古典诗词学习应用,支持 macOS / Windows / Linux。
技术栈
| 类别 | 技术 |
|---|---|
| 桌面框架 | Tauri 2.x (Rust) |
| 前端框架 | React 19 + TypeScript |
| 构建工具 | Vite |
| 样式 | Tailwind CSS |
| 状态管理 | Zustand |
| 图标 | Lucide React |
| 本地数据库 | SQLite (rusqlite) |
| 数据格式 | JSON (朝代/诗人/诗词) |
功能特性
- 🏠 首页:每日推荐诗词 + 快速操作入口
- 📖 诗词浏览:按朝代/诗人分类浏览,支持全文搜索
- ❤️ 收藏功能:收藏喜爱的诗词,本地持久化
- 📜 阅读历史:自动记录阅读过的诗词
- 📊 数据统计:展示诗词库中朝代/诗人/诗词的数量分布
- 🔄 数据导入:支持从 JSON 批量导入朝代、诗人、诗词数据
项目结构
poetry-app/
├── src/ # 前端源码
│ ├── App.tsx # 主应用组件
│ ├── components/ # UI 组件
│ ├── hooks/ # 自定义 Hooks
│ ├── pages/ # 页面组件
│ ├── stores/ # Zustand 状态管理
│ ├── styles/ # 样式文件
│ └── types/ # TypeScript 类型定义
├── src-tauri/ # Tauri/Rust 后端
│ ├── src/
│ │ └── lib.rs # 核心逻辑(SQLite CRUD + Tauri Commands)
│ ├── Cargo.toml # Rust 依赖
│ └── tauri.conf.json # Tauri 配置
├── data/ # 预置数据
│ ├── dynasties.json # 朝代数据
│ ├── poems.json # 诗词数据
│ └── poets.json # 诗人数据
├── docs/ # 项目文档
│ ├── 最终产品原型定稿.md
│ ├── 最终技术方案设计.md
│ ├── 本地数据库.md
│ └── tests/ # 测试用例
└── _backup/ # Expo 旧版备份开发
bash
# 安装前端依赖
npm install
# 启动开发模式(需要 Rust 工具链)
cargo tauri dev
# 打包构建
cargo tauri build数据模型
应用使用 SQLite 本地数据库,包含以下核心表:
| 表名 | 说明 |
|---|---|
dynasties | 朝代信息(名称、起止年份) |
poets | 诗人信息(姓名、朝代、简介) |
poems | 诗词内容(标题、作者、正文) |
favorites | 用户收藏 |
reading_history | 阅读历史 |
进度
- ✅ Tauri 2.x 骨架搭建
- ✅ SQLite 数据库层 + JSON 导入
- ✅ 前端 UI(首页/浏览/搜索/收藏/历史)
- ✅ Tauri 命令层集成
- 🔨 打包发布