# IWantNote **Repository Path**: twqian/iwant-note ## Basic Information - **Project Name**: IWantNote - **Description**: This project is a Flutter application for private Notebook - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-01 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📝 IWantNote 一款简洁优雅的跨平台笔记应用,支持 Markdown 编辑、知识图谱、多端同步。 ![Flutter](https://img.shields.io/badge/Flutter-3.16+-02569B?style=flat-square&logo=flutter) ![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Android%20%7C%20Web-lightgrey?style=flat-square) ![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=flat-square) ## ✨ 功能特性 ### 📄 笔记管理 - **Markdown 编辑** - 支持实时预览的 Markdown 编辑器 - **文件夹分类** - 多层级文件夹组织笔记 - **标签系统** - 灵活的标签管理 - **置顶功能** - 重要笔记快速访问 - **全文搜索** - 快速查找笔记内容 - **回收站** - 误删笔记可恢复 ### 🔗 知识图谱 - **双向链接** - 笔记间建立关联 - **可视化图谱** - 直观展示知识网络 - **反向链接** - 查看哪些笔记引用了当前笔记 ### ☁️ 数据同步 - **多端同步** - 支持多设备数据同步 - **增量同步** - 只同步变更内容 - **冲突检测** - 版本控制避免数据丢失 - **离线支持** - 本地优先,随时可用 ### 📤 数据导出 - **Markdown 导出** - 导出为标准 Markdown 文件 - **JSON 导出** - 完整数据备份 - **批量导出** - 一键导出所有笔记 ### 🎨 用户界面 - **深色模式** - 护眼暗色主题 - **响应式布局** - 适配不同屏幕尺寸 - **桌面端优化** - Windows 原生体验 ## 🛠️ 技术栈 ### 前端 | 技术 | 说明 | |------|------| | Flutter | 跨平台 UI 框架 | | Riverpod | 状态管理 | | Drift | 本地数据库 (SQLite) | | flutter_markdown | Markdown 渲染 | ### 后端 | 技术 | 说明 | |------|------| | Fastify | 高性能 Node.js 框架 | | Prisma | ORM 数据库工具 | | SQLite | 轻量级数据库 | | JWT | 身份认证 | ## 📦 项目结构 ``` IWantNote/ ├── lib/ # Flutter 前端代码 │ ├── core/ # 核心模块 │ │ ├── database/ # 数据库定义 │ │ ├── services/ # 基础服务 │ │ ├── theme/ # 主题配置 │ │ └── providers/ # 全局 Provider │ └── features/ # 功能模块 │ ├── auth/ # 用户认证 │ ├── notes/ # 笔记管理 │ ├── folders/ # 文件夹 │ ├── tags/ # 标签系统 │ ├── links/ # 笔记链接 │ ├── graph/ # 知识图谱 │ ├── sync/ # 数据同步 │ └── settings/ # 设置 ├── backend/ # Node.js 后端 │ ├── src/ │ │ ├── routes/ # API 路由 │ │ ├── middleware/ # 中间件 │ │ └── lib/ # 工具库 │ ├── prisma/ # 数据库模型 │ └── tests/ # 后端测试 └── test/ # Flutter 测试 ``` ## 🚀 快速开始 ### 环境要求 - Flutter 3.16+ - Node.js 18+ - SQLite 3 ### 前端运行 ```bash # 安装依赖 flutter pub get # 生成数据库代码 dart run build_runner build # 运行 Windows 桌面应用 flutter run -d windows # 运行 Android 应用 flutter run -d android # 运行 Web 应用 flutter run -d chrome ``` ### 后端运行 ```bash cd backend # 安装依赖 npm install # 初始化数据库 npx prisma db push # 启动开发服务器 npm run dev # 运行测试 npm test ``` ### 配置 1. 复制环境变量模板 ```bash cd backend cp .env.example .env ``` 2. 编辑 `.env` 文件配置数据库和 JWT 密钥 ``` DATABASE_URL="file:./dev.db" JWT_SECRET="your-secret-key" ``` ## 📖 API 文档 启动后端服务后,访问 `http://localhost:3000/docs` 查看 Swagger API 文档。 ### 主要 API 端点 | 模块 | 端点 | 说明 | |------|------|------| | 认证 | `/api/auth/*` | 登录、注册、Token 刷新 | | 笔记 | `/api/notes/*` | 笔记 CRUD、搜索、批量操作 | | 文件夹 | `/api/folders/*` | 文件夹管理 | | 标签 | `/api/tags/*` | 标签管理 | | 链接 | `/api/links/*` | 笔记链接管理 | | 同步 | `/api/sync/*` | 数据同步 | ## 🧪 测试 ### Flutter 测试 ```bash flutter test test/unit/ ``` ### 后端测试 ```bash cd backend npm test ``` 当前测试覆盖:**54 个后端测试** + **前端单元测试** ## 📝 开发计划 - [ ] 国际化支持 (i18n) - [ ] 图片附件上传 - [ ] 协作编辑功能 - [ ] 移动端手势优化 - [ ] 桌面端系统托盘 - [ ] 插件系统 ## 🤝 参与贡献 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ## 📄 许可证 本项目基于 [Apache 2.0](LICENSE) 许可证开源。 ## 🙏 致谢 - [Flutter](https://flutter.dev/) - UI 框架 - [Riverpod](https://riverpod.dev/) - 状态管理 - [Drift](https://drift.simonbinder.eu/) - 数据库 - [Fastify](https://fastify.dev/) - 后端框架 --- ⭐ 如果这个项目对你有帮助,请给一个 Star!