initial commit

This commit is contained in:
2025-06-07 23:17:40 +08:00
commit 6561991a9e
36 changed files with 5849 additions and 0 deletions

78
memory-bank/progress.md Normal file
View File

@ -0,0 +1,78 @@
# 进展追踪 (Progress)
## 1. 已完成的功能 (What Works)
- **项目规划**:
- [x] 核心需求定义 (`projectbrief.md`)
- [x] 产品背景和目标确立 (`productContext.md`)
- [x] 技术栈选型 (`techContext.md`)
- [x] 系统架构设计 (`systemPatterns.md`)
- [x] 初始化计划制定 (`activeContext.md`)
## 2. 当前状态
- **阶段**: 功能完善。
- **描述**: 所有核心功能,包括 TOTP 管理和两种格式JSON, TXT的数据导入/导出,均已完成。
## 3. 未完成的功能 (What's Left to Build)
### 阶段一: 基础架构
- [x] 初始化 Vite + React + TypeScript 项目。
- [x] 安装所有 npm 依赖项。
- [x] 配置 Tailwind CSS。
- [x] 建立基本的文件夹结构 (`src/pages`, `src/components`, `src/services`, `src/hooks`, `src/types`)。
- [x] 设置 IndexedDB 服务 (`db.ts`)。
- [x] 设置基础路由 (`react-router-dom`)。
### 阶段二:核心 TOTP 功能
- [x] **数据录入**:
- [x] 创建 "添加新账户" 页面和表单。
- [x] 实现表单验证。
- [x] 将新账户数据存入 IndexedDB。
- [x] **数据展示**:
- [x] 从 IndexedDB 读取所有账户。
- [x] 在首页以卡片形式展示每个账户。
- [x] **实时功能**:
- [x] 计算并显示实时 TOTP 密码。
- [x] 实现密码自动刷新的倒计时进度条。
- [x] 实现一键复制密码功能。
- [x] **数据删除**:
- [x] 添加删除账户的按钮。
- [x] 实现从 IndexedDB 中删除指定账户的功能。
### 阶段三: 导入/导出功能
- [x] **导出**:
- [x] 实现将所有数据导出为 JSON 文件的功能。
- [x] 实现将所有数据导出为 `rsc/2fa` 兼容的文本格式的功能。
- [x] **导入**:
- [x] 实现通过上传/粘贴 JSON 文件来导入数据的功能。
- [x] 实现通过上传/粘贴 `rsc/2fa` 格式文本来导入数据的功能。
- [x] 处理导入时的冲突(例如,覆盖或合并)。
## 4. 已知问题 (Known Issues)
- 尚无。
## 5. 决策日志 (Decision Log)
- **2025-06-06**:
- 决定使用 Vite + React + TypeScript + Tailwind CSS 技术栈。
- 决定支持 JSON 和 `rsc/2fa` 两种导入/导出格式。
- 决定使用 `idb``otpauth` 作为核心库。
### 阶段四: URI 支持
- [x] **URI 解析**:
- [x] 实现一个可以解析 `otpauth://` URI 的函数。
- [x] 提取所有相关参数 (secret, issuer, algorithm, digits, period)。
- [x] **表单集成**:
- [x] 在添加账户表单中,允许用户粘贴 URI。
- [x] 自动填充表单字段。
- [x] **导入/导出扩展**:
- [x] 实现导出为多行 `otpauth://` URI 的文本文件。
- [x] 实现从多行 `otpauth://` URI 的文本文件导入。
- [x] **测试**:
- [x] (手动) 已完成核心功能验证。