本记账APP旨在简化财务管理流程,使用户能够轻松记录、分类和分析支出,帮助他们更好地掌握自己的财务状况,从而做出更加理智和科学的财务决策。
Introduction

记账APP (Money Tracker)

Logo

stars forks License

项目简介

记账APP是一款基于SpringBoot+Vue3+TypeScript前后端分离的个人财务管理应用。旨在帮助用户高效、便捷地管理日常账务,提供简洁的财务记录和分析功能。

核心特性

  • 多平台账单导入:支持微信、支付宝等平台账单导入,兼容CSV、ZIP格式文件
  • 账本管理:支持创建多个账本,家庭成员共同记账
  • 收支分类:灵活的分类管理,清晰了解资金流向
  • 账户管理:支持多账户管理,实时掌握资产状况
  • 数据报表:丰富的统计分析图表,助您洞察财务状况
  • 小程序支持:基于uni-app开发,兼容微信小程序等多平台

技术架构

前端技术栈

技术 说明
Vue 3 渐进式前端框架
TypeScript TypeScript类型安全
uni-app 跨平台应用框架
uCharts 数据可视化图表库
Pinia 状态管理
SCSS CSS预处理器

后端技术栈

技术 说明
Spring Boot 后端服务框架
MyBatis Plus ORM持久层框架
MySQL 关系型数据库
Redis 缓存数据库
MQTT 消息队列(实时通讯)

项目结构

money-tracker/
├── money-tracker-applet/     # 小程序前端代码
│   ├── src/
│   │   ├── api/              # API接口
│   │   ├── components/       # 公共组件
│   │   ├── pages/            # 页面组件
│   │   ├── plugins/          # 插件
│   │   ├── static/           # 静态资源
│   │   ├── store/            # 状态管理
│   │   ├── uni_modules/      # uni-app模块
│   │   └── utils/            # 工具函数
│   └── package.json

└── money-tracker-service/    # 后端服务代码
    ├── money-tracker-admin/  # 后端服务模块
    │   └── src/main/java/
    │       └── com/jcwl/admin/
    │           ├── account/  # 账户模块
    │           ├── book/     # 账本模块
    │           └── category/# 分类模块
    ├── deploy/               # 部署配置
    ├── doc/                  # 文档数据
    │   ├── data/             # 初始化数据
    │   ├── script/           # 脚本文件
    │   └── sql/              # SQL脚本
    └── pom.xml

功能模块

1. 用户模块

  • 用户注册/登录
  • 微信一键登录
  • 个人资料管理
  • 密码修改

2. 账本模块

  • 创建/编辑/删除账本
  • 账本成员管理
  • 邀请成员加入
  • 账本权限管理

3. 记账模块

  • 收入/支出记录
  • 分类选择
  • 账户选择
  • 备注说明
  • 附件上传

4. 账户模块

  • 账户类型管理
  • 账户余额管理
  • 账户流水统计

5. 账单导入

  • 支付宝账单导入(Excel/CSV/ZIP/JSON)
  • 微信账单导入(Excel/CSV/ZIP/JSON)
  • 自动识别交易分类

6. 数据报表

  • 日/月/年收支统计
  • 分类支出分析
  • 成员记账对比
  • 账户资产趋势

快速开始

前置要求

  • Node.js 16+
  • JDK 17+
  • MySQL 8.0+
  • Redis 6.0+

后端部署

  1. 创建数据库
CREATE DATABASE money_tracker DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 导入SQL脚本
# 导入数据库结构
mysql -u root -p money_tracker < doc/sql/money-tracker_structure_20241106.sql

# 导入初始数据
mysql -u root -p money_tracker < doc/sql/money-tracker_databases_20241106.sql
  1. 修改配置文件 编辑 money-tracker-service/money-tracker-admin/src/main/resources/application.yml 配置数据库和Redis连接信息。

  2. 编译运行

cd money-tracker-service/money-tracker-admin
mvn clean package
java -jar target/money-tracker-admin.jar
  1. Docker部署
cd money-tracker-service/money-tracker-admin
docker build -t money-tracker-admin .
docker run -d -p 8080:8080 money-tracker-admin

前端部署

  1. 安装依赖
cd money-tracker-applet
npm install
# 或使用 pnpm
pnpm install
  1. 配置API地址 修改 src/config.js 中的 baseUrl 为后端服务地址。

  2. 运行项目

# HBuilderX运行
# 使用HBuilderX打开项目,选择运行到对应平台

# 或使用命令行
npm run dev:h5    # 运行到H5
npm run dev:mp-weixin  # 运行到微信小程序

界面预览

首页 记账 账本
首页 记账 账本
报表 账单导入 我的
报表 账单导入 我的

账单导入说明

支付宝账单导入

支持格式:

  • CSV 文件
  • ZIP 压缩包(带密码保护)
  • Excel 文件
  • JSON 数据

导入步骤:

  1. 打开支付宝 -> 我的 -> 右上角设置 -> 通用 -> 顶部日期
  2. 选择时间范围并导出账单
  3. 选择 ZIP 格式并设置解压密码
  4. 在APP中选择导入支付宝账单

微信账单导入

支持格式:

  • CSV 文件
  • ZIP 压缩包

导入步骤:

  1. 打开微信 -> 我 -> 服务 -> 钱包 -> 右上角账单
  2. 右上角常见问题 -> 下载账单
  3. 选择时间范围并验证身份
  4. 在APP中选择导入微信账单

贡献指南

欢迎提交 Issue 和 Pull Request!

提交规范

<type>(<scope>): <subject>

- type: feat/fix/docs/style/refactor/test/chore
- scope: 影响范围
- subject: 简短描述

开发流程

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/xxx)
  3. 提交更改 (git commit -m 'feat: add xxx')
  4. 推送分支 (git push origin feature/xxx)
  5. 创建 Pull Request

许可证

本项目基于 Apache-2.0 许可证开源。

交流讨论


Made with ❤️ by Money Tracker Team

Achievement
5
Star
1
Fork
People(4)
2289815 myzixiao 1640671696
itzixiao
5543139 han zihao 1750984588
韩鑫
高琪
樊文俊

Search