一个基于 Vue 3 + TypeScript + Supabase 的现代化记账应用,支持语音记录、智能分类、预算管理和固定支出等功能。
- 支出记录: 手动输入或语音录入支出信息
- 智能分类: 自动分类支出项目,支持自定义分类
- 统计分析: 可视化图表展示支出趋势和分类占比
- 预算管理: 设置月度预算,实时监控支出情况
- 固定支出: 管理房租、电费等定期支出,自动生成记录
- 多种登录方式: 邮箱注册登录 + 游客模式
- 语音识别: 支持语音输入支出信息
- 深色模式: 完整的深色/浅色主题切换
- 响应式设计: 完美适配移动端和桌面端
- 离线支持: 游客模式下本地数据存储
- Vue 3 - 渐进式 JavaScript 框架
- TypeScript - 类型安全的 JavaScript 超集
- Vite - 快速的前端构建工具
- Vue Router - 官方路由管理器
- Pinia - 状态管理库
- Tailwind CSS - 实用优先的 CSS 框架
- Recharts - 数据可视化图表库
- Supabase - 开源的 Firebase 替代方案
- PostgreSQL 数据库
- 实时订阅
- 用户认证
- 行级安全 (RLS)
- ESLint - 代码质量检查
- Prettier - 代码格式化
- PostCSS - CSS 后处理器
- Node.js >= 18.0.0
- npm 或 pnpm
- 克隆项目
git clone <your-repo-url>
cd ai-test- 安装依赖
npm install
# 或
pnpm install- 配置环境变量
cp .env.example .env编辑 .env 文件,填入你的 Supabase 配置:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- 启动开发服务器
npm run dev
# 或
pnpm dev- 访问应用
打开浏览器访问
http://localhost:5173
- GitHub 账号
- Vercel 账号(可使用 GitHub 登录)
- 推送代码到 GitHub
# 如果还没有推送到 GitHub
git add .
git commit -m "Ready for deployment"
git push origin main- 连接 Vercel
- 访问 Vercel
- 使用 GitHub 账号登录
- 点击 "New Project"
- 选择你的 GitHub 仓库
- 配置环境变量 在 Vercel 项目设置中添加环境变量:
VITE_SUPABASE_URL: 你的 Supabase 项目 URLVITE_SUPABASE_ANON_KEY: 你的 Supabase 匿名密钥
- 部署
- 点击 "Deploy" 按钮
- 等待构建完成
- 获取部署 URL
- 安装 Vercel CLI
npm install -g vercel- 登录 Vercel
vercel login- 部署项目
# 在项目根目录运行
vercel
# 首次部署时会询问项目配置,按提示操作
# 后续部署只需运行 vercel 即可- 设置环境变量
# 添加生产环境变量
vercel env add VITE_SUPABASE_URL
vercel env add VITE_SUPABASE_ANON_KEY
# 重新部署以应用环境变量
vercel --prod项目已包含 vercel.json 配置文件,包含以下设置:
- 静态构建配置
- SPA 路由支持
- 环境变量配置
- 构建输出目录设置
-
环境变量安全
- 确保
.env文件已在.gitignore中 - 在 Vercel 中设置环境变量,不要在代码中硬编码
- 确保
-
域名配置
- Vercel 会自动分配一个域名
- 可以在项目设置中配置自定义域名
-
自动部署
- 推送到 main 分支会自动触发部署
- 可以在 Vercel 仪表板中查看部署状态
- 在 Supabase 创建新项目
- 在项目设置中获取 URL 和 anon key
- 运行数据库迁移文件(位于
supabase/migrations/目录)
src/
├── components/ # 可复用组件
│ ├── AppLayout.vue # 应用布局组件
│ ├── BottomNavigation.vue # 底部导航
│ ├── ExpenseOverview.vue # 支出概览
│ └── VoiceRecorder.vue # 语音录制组件
├── pages/ # 页面组件
│ ├── HomePage.vue # 首页
│ ├── RecordPage.vue # 记录页面
│ ├── StatisticsPage.vue # 统计页面
│ ├── BudgetPage.vue # 预算页面
│ ├── RecurringExpensePage.vue # 固定支出页面
│ ├── SettingsPage.vue # 设置页面
│ └── LoginPage.vue # 登录页面
├── stores/ # 状态管理
│ └── index.ts # Pinia stores
├── lib/ # 工具库
│ ├── supabase.ts # Supabase 客户端
│ └── utils.ts # 工具函数
├── composables/ # 组合式函数
│ └── useTheme.ts # 主题管理
└── types/ # 类型定义
└── speech.d.ts # 语音识别类型
categories- 支出分类expenses- 支出记录budgets- 预算设置recurring_expenses- 固定支出
- 开发者: 邱少
- 技术支持: qiushaotest@qq.com
-
✨ 新增功能
- 设置页面添加返回按钮,提升导航体验
- 优化页面布局,减少模块间距,提升视觉效果
- 重构设置页面结构,将原设置页面改为"我的"页面
- 创建独立的设置页面,整合所有设置和导出功能
-
🎨 界面优化
- 记账页面标题大小调整,布局更加紧凑
- 统计页面图表显示问题修复,添加测试数据
- 语音输入交互优化,增加动画效果和视觉反馈
- 整体UI设计更加现代化和用户友好
-
🔧 技术改进
- 路由配置更新,支持新的页面结构
- 底部导航调整,"设置"改为"我的"
- 代码结构优化,提升维护性
- 🚀 项目部署
- 成功部署到 Vercel 平台
- 配置生产环境变量和构建设置
- 添加完整的部署文档和说明
- 🎉 初始版本发布
- 完整的记账功能实现
- 用户认证和数据管理
- 响应式设计和深色模式支持
-
数据导出功能
- 支持导出 CSV/Excel 格式
- 按时间范围导出
- 按分类导出
-
数据备份与同步
- 自动云端备份
- 跨设备数据同步
- 数据恢复功能
-
高级统计功能
- 年度支出报告
- 支出趋势预测
- 分类支出对比分析
- 自定义时间段统计
-
用户体验优化
- 添加支出记录时的快捷分类建议
- 支出记录的批量操作(删除、编辑、分类)
- 更丰富的图表类型(饼图、折线图、柱状图)
- 支出记录的搜索和筛选功能
-
通知与提醒
- 预算超支提醒
- 固定支出到期提醒
- 每日/每周支出总结推送
- 自定义提醒规则
-
多语言支持
- 英文界面
- 繁体中文支持
- 语言切换功能
-
社交功能
- 支出记录分享
- 家庭账本共享
- 支出挑战和目标设定
-
高级功能
- 收入记录管理
- 投资记录跟踪
- 债务管理
- 财务目标设定和跟踪
-
集成功能
- 银行卡消费自动导入
- 支付宝/微信支付记录导入
- 第三方记账应用数据迁移
-
性能优化
- 图片懒加载
- 虚拟滚动优化长列表
- PWA 支持(离线使用)
- 缓存策略优化
-
代码质量
- 单元测试覆盖
- E2E 测试
- 代码分割和懒加载
- TypeScript 严格模式
-
安全性
- 数据加密存储
- API 访问频率限制
- 用户权限细化
- 语音识别在某些浏览器上的兼容性问题
- 深色模式下部分图表颜色适配
- 移动端横屏适配优化
MIT License
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request