# bookkeeping **Repository Path**: superdu6/bookkeeping ## Basic Information - **Project Name**: bookkeeping - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-23 - **Last Updated**: 2026-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![输入图片说明](%E6%88%91%E7%9A%84%E9%A1%B5.png)![输入图片说明](%E7%BB%9F%E8%AE%A1%E9%A1%B5.png)![输入图片说明](%E8%AE%B0%E8%B4%A6%E9%A1%B5.png)![输入图片说明](%E9%A6%96%E9%A1%B5.png)# 自动记账系统 一套完整的自动记账解决方案,包含前端移动应用和后端API服务。 ## 项目简介 自动记账系统是一款帮助用户轻松管理财务的应用。通过智能识别技术,自动导入微信、支付宝、银行账单,让记账变得简单高效。 ### 核心特性 - ✅ **自动记账**:OCR识别、短信监听、账单导入 - ✅ **手动记账**:快速录入、智能分类 - ✅ **固定支出**:停车费、电话费等按月自动扣款 - ✅ **多账户管理**:现金、银行卡、微信、支付宝 - ✅ **统计分析**:可视化图表、趋势分析 - ✅ **数据安全**:本地存储优先、隐私保护 ## 技术架构 ### 前端技术栈 - **框架**: Vue 3.3 + uni-app 3.0 - **状态管理**: Pinia 2.1 - **HTTP客户端**: Axios - **日期处理**: Day.js - **样式**: SCSS **支持平台**: - Android App - iOS App - H5网页 - 微信小程序 - 支付宝小程序 ### 后端技术栈 - **框架**: Spring Boot 3.2.0 - **语言**: Java 17 - **架构**: DDD(领域驱动设计) - **数据库**: PostgreSQL 15+ - **缓存**: Redis 7+ - **认证**: JWT - **API文档**: Swagger/OpenAPI 3.0 ## 项目结构 ``` bookkeeping/ ├── bookkeeping-backend/ # 后端项目 │ ├── src/main/java/com/bookkeeping/ │ │ ├── interfaces/ # 接口层 │ │ ├── application/ # 应用层 │ │ ├── domain/ # 领域层 │ │ └── infrastructure/ # 基础设施层 │ ├── src/main/resources/ │ │ ├── application.yml │ │ └── db/migration/ # 数据库迁移脚本 │ └── pom.xml │ ├── bookkeeping-app/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── store/ # Pinia状态管理 │ │ ├── pages/ # 页面 │ │ ├── components/ # 组件 │ │ └── utils/ # 工具函数 │ ├── package.json │ └── manifest.json │ └── README.md # 项目文档 ``` ## 快速开始 ### 环境要求 **后端**: - JDK 17+ - Maven 3.8+ - PostgreSQL 15+ - Redis 7+ **前端**: - Node.js 22+ - npm 10+ ### 后端启动 1. **创建数据库**: ```sql CREATE DATABASE bookkeeping; ``` 2. **修改配置**: 编辑 `bookkeeping-backend/src/main/resources/application.yml`,配置数据库和Redis连接信息。 3. **启动服务**: ```bash cd bookkeeping-backend mvn clean install mvn spring-boot:run ``` 4. **访问API文档**: - Swagger UI: http://localhost:8080/api/swagger-ui.html ### 前端启动 1. **安装依赖**: ```bash cd bookkeeping-app npm install ``` 2. **启动开发服务器**: ```bash # H5开发 npm run dev:h5 # 微信小程序开发 npm run dev:mp-weixin # App开发 npm run dev:app ``` ## 核心功能模块 ### 1. 用户管理 - 用户注册/登录 - JWT认证 - 用户信息管理 ### 2. 账户管理 - 多账户管理(现金、银行卡、微信、支付宝) - 账户余额管理 - 默认账户设置 ### 3. 交易管理 - 手动记账 - 交易记录查询 - 交易分类 - 固定支出计划维护与自动扣款 ### 4. 自动记账(核心功能) - **截图OCR识别**:上传支付截图自动识别 - **短信监听**:Android专属,自动识别银行短信 - **账单导入**:导入微信、支付宝、银行账单文件 ### 5. 统计分析 - 收支汇总 - 趋势分析 - 分类统计 - 可视化图表 ### 6. 分类管理 - 系统默认分类 - 自定义分类 - 智能分类建议 ## 数据库设计 ### 核心表结构 - **users**: 用户表 - **accounts**: 账户表 - **transactions**: 交易记录表 - **categories**: 分类表 详见:`bookkeeping-backend/src/main/resources/db/migration/V1__init_schema.sql` ## API接口文档 ### 认证模块 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 ### 账户模块 - `GET /api/accounts` - 获取账户列表 - `POST /api/accounts` - 创建账户 - `PUT /api/accounts/{id}` - 更新账户 - `DELETE /api/accounts/{id}` - 删除账户 ### 交易模块 - `GET /api/transactions` - 查询交易记录 - `POST /api/transactions` - 创建交易记录 - `PUT /api/transactions/{id}` - 更新交易记录 - `DELETE /api/transactions/{id}` - 删除交易记录 ### 固定支出模块 - `GET /api/fixed-expenses` - 查询固定支出计划 - `POST /api/fixed-expenses` - 创建固定支出计划 - `PUT /api/fixed-expenses/{id}` - 更新固定支出计划 - `PUT /api/fixed-expenses/{id}/status` - 启用/暂停固定支出计划 - `DELETE /api/fixed-expenses/{id}` - 删除固定支出计划 ### 分类模块 - `GET /api/categories` - 获取分类列表 - `POST /api/categories` - 创建分类 ### 统计模块 - `GET /api/statistics/summary` - 收支汇总 - `GET /api/statistics/trend` - 趋势分析 - `GET /api/statistics/category` - 分类统计 ## DDD架构说明 后端采用标准的领域驱动设计(DDD)四层架构: ### 1. 接口层(Interfaces Layer) - 处理HTTP请求 - 参数校验 - DTO转换 ### 2. 应用层(Application Layer) - 编排领域对象 - 处理业务流程 - 事务管理 ### 3. 领域层(Domain Layer) - 核心业务逻辑 - 领域规则 - 实体、值对象、领域服务 ### 4. 基础设施层(Infrastructure Layer) - 持久化实现 - 外部服务集成 - 配置管理 ## 部署说明 ### 开发环境 - 后端:本地运行Spring Boot - 前端:使用uni-app开发服务器 - 数据库:本地PostgreSQL + Redis ### 生产环境 - 后端:Docker + Kubernetes - 前端:打包发布到应用商店或服务器 - 数据库:云数据库服务 ## 安全措施 - 密码BCrypt加密 - JWT Token认证 - HTTPS传输加密 - SQL注入防护 - XSS攻击防护 - 本地数据加密存储 ## 开发进度 ### 已完成 ✅ - [x] 项目架构设计 - [x] 后端项目框架搭建 - [x] 前端项目框架搭建 - [x] 数据库设计 - [x] 领域模型创建 - [x] API封装 - [x] 状态管理配置 - [x] 用户注册登录API实现 - [x] 账户管理API实现 - [x] 交易记录API实现 - [x] 固定支出维护与自动扣款实现 ### 进行中 🚧 - [ ] 统计分析API实现 ### 待开发 📋 - [ ] 截图OCR识别功能 - [ ] 短信监听功能(Android) - [ ] 账单文件导入功能 - [ ] 智能分类算法 - [ ] 单元测试 - [ ] 性能优化 ## 贡献指南 1. Fork本仓库 2. 创建功能分支(`git checkout -b feature/AmazingFeature`) 3. 提交更改(`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支(`git push origin feature/AmazingFeature`) 5. 提交Pull Request ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。 ## 联系方式 如有问题或建议,请提交Issue。 --- **注意**:本项目为学习和演示目的,生产环境使用请根据实际需求进行调整和优化。