一个简单、纯粹的,AI驱动的移动端记账工具。
- 🛡️ AI记账日期边界保护: 添加日期边界保护逻辑,防止日期选择异常
- 🗂️ 历史性能记录清理: 添加历史性能记录清理计划任务,优化数据库性能
- 🛠️ 备份恢复工具: 增加对象存储备份的恢复工具,提升数据安全性
- ⚙️ LLM健康检查优化: 添加统一调度器模式下的LLM健康检查逻辑,跳过独立检查
- 📳 振动反馈增强: 仪表盘的返回顶部按钮添加振动反馈,提升用户体验
- 📅 结转记录排序: 修复结转历史记录没有按照月份顺序排序的问题
- 🌐 记账日期时区: 修复记账日期确定存在时区问题
- ✏️ 文本输入优化: 修复文本输入控件无法插入文字,只能顺序输入的问题
- 💾 备注保存问题: 修复手动添加记账的时候,备注文字无法保存的问题
- 🔄 备注编辑问题: 修复AI记账后,记账记录的备注文字无法修改保存的问题
- 📋 v0.9.0 更新日志 - 统一计划任务调度器、仪表盘无限加载、一键返回顶部、自动备份功能等
- 📋 v0.8.0 更新日志 - 图片识别多记录选择导入、安卓快捷记账、分摊功能、火山方舟大模型等
- 📋 v0.7.0 更新日志 - 图片查看器优化、iOS Apple充值、智能记账增强等
"只为记账"是一个专注于移动端体验的记账应用,采用B/S架构,支持多用户访问和家庭账本共享。应用通过AI技术提供智能化的财务管理体验,帮助用户更好地理解自己的消费模式,优化预算管理。
- 记账功能: 支持收入、支出记账,自定义分类管理
- 标签管理: 灵活的标签系统,支持多维度记账分类
- 预算管理: 个人和家庭预算设置,支持预算透支顺延
- 家庭账本: 多用户共享账本,支持未注册用户(如孩子)的支出记录
- AI驱动: 智能记账分类,消费模式分析,预算建议,集成火山方舟等多种大模型
- 多模态记账: 支持文字、语音、图片多种记账方式,图片识别支持多记录选择导入
- 日历视图: 直观的日历界面查看每日记账情况
- 附件管理: 为记账记录添加图片附件,支持快速预览
- 对象存储: 集成S3协议兼容存储,支持自定义头像和附件存储
- 微信集成: 支持微信公众号智能记账,包含语音和图片识别
- 统计分析: 多维度数据分析,包含支出预算分布和预算统计分析等丰富图表
- 会员系统: 完整的会员体系和记账点计费机制,支持签到功能和分摊计算
- 版本管理: 完整的应用版本管理系统,支持版本检查、更新日志和用户状态跟踪
- 数据管理: 支持数据导入导出,用户头像设置,账户注销等完整功能
- 移动客户端: 原生iOS和Android应用,完整的移动端体验,支持振动反馈和快捷记账功能
- 前端: React + Next.js, Tailwind CSS
- 移动端: React Native, React Native Paper
- 后端: Node.js
- 数据库: PostgreSQL
- 对象存储: S3协议兼容存储 (MinIO/AWS S3)
- AI服务: 多模态AI集成 (语音识别、图像识别)
- 认证: JWT (JSON Web Tokens)
- 项目结构: Monorepo (Yarn Workspaces)
本项目采用Monorepo结构,使用Yarn Workspaces管理多个包:
zhiweijz/
├── packages/ # 共享包
│ ├── core/ # 核心业务逻辑和类型定义
│ ├── web/ # Web端特定组件和功能
│ └── mobile/ # 移动端特定组件和功能
├── apps/ # 应用
│ ├── web/ # Web应用
│ ├── android/ # Android应用
│ └── ios/ # iOS应用
├── server/ # 后端服务
├── docker/ # Docker部署配置
├── docs/ # 项目文档
└── package.json # 根配置
如果您希望使用最简单的方式进行部署,仅需要使用 docker-compose.yml 和 .env.example 文件:
- Docker 20.10.0+
- Docker Compose 2.0.0+
- 至少 2GB 可用内存
- 至少 5GB 可用磁盘空间
# 1. 克隆项目
git clone https://github.com/zj591227045/zhiweijz.git
cd zhiweijz/docker
# 2. 复制并配置环境变量
cp .env.example .env
# 3. 启动所有服务
docker-compose up -d
# 4. 等待服务启动完成(约2-3分钟)
docker-compose logs -f在 .env 文件中,您可以根据需要修改以下关键配置:
# 项目名称
PROJECT_NAME=zhiweijz
# 数据库配置
DB_NAME=zhiweijz
DB_USER=zhiweijz
DB_PASSWORD=zhiweijz123 # 建议修改为更安全的密码
# JWT密钥
JWT_SECRET=your-super-secret-jwt-key-change-in-production-please # 必须修改
# 端口配置(如果有端口冲突,可以修改这些端口)
POSTGRES_EXTERNAL_PORT=5433 # PostgreSQL外部端口
NGINX_HTTP_PORT=80 # Web应用HTTP端口
NGINX_HTTPS_PORT=443 # Web应用HTTPS端口
MINIO_API_PORT=9000 # MinIO API端口
MINIO_CONSOLE_PORT=9001 # MinIO管理界面端口
# MinIO对象存储配置
MINIO_ROOT_USER=zhiweijz
MINIO_ROOT_PASSWORD=zhiweijz123456 # 建议修改为更安全的密码
# 镜像版本(可根据需要切换版本)
BACKEND_IMAGE_VERSION=0.9.1
FRONTEND_IMAGE_VERSION=0.9.1
NGINX_IMAGE_VERSION=0.9.1部署成功后,您可以通过以下地址访问:
- 主应用: http://localhost
- MinIO管理界面: http://localhost:9001
- API文档: http://localhost/api
- 健康检查: http://localhost/health
# 查看所有服务状态
docker-compose ps
# 查看服务日志
docker-compose logs -f [service_name]
# 重启特定服务
docker-compose restart [service_name]
# 停止所有服务
docker-compose down
# 停止并删除所有数据(谨慎使用)
docker-compose down -v
# 更新到最新版本
docker-compose pull
docker-compose up -d常见问题及解决方案:
- 端口冲突:修改
.env文件中的端口配置 - 服务启动失败:检查 Docker 日志
docker-compose logs [service_name] - 数据库连接问题:确保 PostgreSQL 服务健康
docker-compose ps postgres - 内存不足:确保系统有足够的可用内存
健康检查:
# 检查所有服务是否健康
docker-compose ps
# 检查特定服务健康状态
docker-compose exec backend curl -f http://localhost:3000/api/health
docker-compose exec frontend curl -f http://localhost:3001/如果您需要更完整的部署体验,包括自动配置和优化,可以使用我们提供的部署脚本:
# 1. 克隆项目
git clone https://github.com/zj591227045/zhiweijz.git
cd zhiweijz
# 2. 进入docker目录
cd docker
# 3. 一键启动
./start.sh部署完成后,脚本会自动显示访问地址:
- Web应用: http://localhost (或自定义端口)
- API接口: http://localhost/api
- 数据库: localhost:5432
升级到v0.9.1的步骤:
# 1. 获取最新代码
cd zhiweijz
git pull
# 2. 备份数据库(可选但推荐)
cp scripts/database/db_backup/config.conf.template scripts/database/db_backup/config.env
# 编辑配置文件,设置数据库用户名和密码
vim scripts/database/db_backup/config.env
./scripts/database/db_backup/backup.sh full
# 3. 拉取最新docker镜像并更新
cd docker
docker-compose -p zhiweijz pull
docker-compose -p zhiweijz up -dv0.9.1版本重要提醒:
- 修复了多个关键的用户体验问题,包括备注保存、文本输入、时区处理等
- 新增历史性能记录清理任务,优化数据库性能
- AI记账功能增强,添加日期边界保护逻辑
- 建议在升级前备份数据库
v0.9.0版本重要提醒:
- 整合统一计划任务调度器,提升系统稳定性
- 仪表盘记账记录支持无限加载,优化大数据量浏览体验
- 新增一键返回顶部功能,提升用户操作便利性
- 集成自动备份功能,支持数据库和对象存储一键备份
- 修复10个关键问题,包括用户删除、UI样式、统计异常等
- 建议在升级前备份数据库
v0.8.0版本重要提醒:
- 新增图片识别多记录选择导入功能
- Android客户端新增快捷记账功能
- 集成火山方舟大模型,提供更强AI能力
- 新增分摊计算功能,支持多人共同支出
- 优化签到功能,提升用户体验
- 修复多个关键问题,提升系统稳定性
- 建议在升级前备份数据库
v0.7.0版本重要提醒:
- 图片查看器交互优化,改为长按操作
- iOS Apple充值功能完整对接
- 智能记账功能大幅增强,支持多条记录识别
- 修复了大量用户反馈的问题,提升整体稳定性
- 建议在升级前备份数据库
v0.6.0版本重要提醒:
- 新增版本管理系统,支持应用版本检查和更新日志
- 统计分析功能增强,新增预算统计分析
- 移动端体验优化,增加振动反馈
- 建议在升级前备份数据库
v0.5.0版本重要提醒:
- 新增对象存储功能,首次启动会自动配置MinIO
- 会员系统和记账点功能需要数据库迁移
- 建议在升级前备份数据库
# 停止服务
./stop.sh
# 清理所有数据
./stop.sh --clean
# 查看日志
docker-compose -p zhiweijz logs -f
# 更新应用
docker pull zj591227045/zhiweijz-frontend:latest
docker pull zj591227045/zhiweijz-backend:latest
./start.sh详细的Docker部署文档请参考: Docker部署指南
详细的项目文档位于 docs 目录:
专为"只为记账"设计的微信自动化工具,支持批量处理微信消息和记账:
🔗 项目地址: wxauto4zhiweijz
主要功能:
- 📱 微信消息自动化处理
- 🤖 智能识别和记账
- 📊 批量数据处理
- 🔄 自动同步到记账系统
强大的数据导入工具,支持从各种记账软件导入数据:
🔗 项目地址: zhiweijz_import_records
支持格式:
- 📄 Excel/CSV文件导入
- 💳 银行流水导入
- 📱 其他记账软件数据迁移
- 🔧 自定义数据格式适配
- Node.js 18+
- Yarn 1.22+
- React Native环境(用于移动端开发)
- Android Studio(Android开发)
- Xcode(iOS开发,仅macOS)
# 安装所有依赖
yarn install核心包开发:
# 构建核心包
yarn workspace @zhiweijz/core build
# 开发模式(监视文件变化)
yarn workspace @zhiweijz/core devWeb应用开发:
# 启动Web开发服务器
yarn workspace @zhiweijz/web-app dev
# 构建Web应用
yarn workspace @zhiweijz/web-app buildAndroid应用开发:
# 启动Metro服务器
yarn workspace @zhiweijz/android-app start
# 在模拟器或设备上运行
yarn workspace @zhiweijz/android-app android
# 构建发布版APK
yarn workspace @zhiweijz/android-app buildiOS应用开发(仅macOS):
# 启动Metro服务器
yarn workspace @zhiweijz/ios-app start
# 在模拟器或设备上运行
yarn workspace @zhiweijz/ios-app ios
# 构建应用
yarn workspace @zhiweijz/ios-app build微信集成开发:
# 进入服务器目录
cd server
# 启动微信集成开发环境(包含环境检查)
npm run wechat:dev
# 运行微信集成测试
npm run wechat:test
# 清理微信消息日志
npm run wechat:cleanup
# 检查微信服务状态
curl http://localhost:3000/api/wechat/health-
业务逻辑共享:
- 将共享的业务逻辑、API服务和类型定义放在
packages/core中 - 确保核心包不依赖于特定平台的API
- 将共享的业务逻辑、API服务和类型定义放在
-
UI组件:
- Web特定组件放在
packages/web中 - 移动端特定组件放在
packages/mobile中 - 组件应遵循相同的接口设计,便于跨平台使用
- Web特定组件放在
-
新功能开发流程:
- 先在核心包中实现平台无关的业务逻辑
- 然后在Web和移动端分别实现UI层
- 使用相同的数据模型和状态管理
✅ 项目已正式发布:
- Web端功能完整
- iOS和Android客户端已正式发布
- 微信公众号集成完成
- 私有部署版本功能齐全
📱 移动端应用:
- iOS App已上架App Store
- Android APK支持直接下载安装
🔧 持续优化:
- 定期功能更新和性能优化
- 用户反馈驱动的功能改进
本项目遵循以下许可条款:
- 个人使用: 完全免费使用,无任何限制
- 代码修改: 允许修改源代码以满足个人需求
- 二次分发: 允许分享和分发修改后的版本
- 作者商业权利: 仅原作者保留商业使用权利
- 第三方商业使用: 除作者外,禁止任何形式的商业使用
- 二次开发商业化: 基于此项目的二次开发项目如需商业使用,必须获得作者授权
如需商业使用授权,请联系项目作者讨论授权条款。
详细的法律条款请参见 LICENSE 文件。