# Mrecord **Repository Path**: dachengzi1/Mrecord ## Basic Information - **Project Name**: Mrecord - **Description**: MRecord is a monthly snapshot-based personal finance bookkeeping system supporting multi-user usage, enabling monthly asset and liability recording, year-on-year & month-on-month analysis, data management, reminders, export, and admin management. - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: https://mr.660066.xyz - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-11 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Netcatty

Mrecord

每月快照账簿、资产负债全景浏览 & 同比环比智能分析平台
访问Mrecord

一个基于 Java、Vue3 构建的快照式月度记账服务。
多用户、多账簿、环比同比数据分析、一键导出、月度提醒

License

English · 简体中文

--- [![Mrecord 主界面](README/promotion.png)](README/promotion.png) --- # 目录 - [Mrecord 是什么](#mrecord-是什么) - [为什么是 Mrecord](#为什么是-Mrecord) - [功能特性](#功能特性) - [部署指南](#部署指南) - [构建与打包](#构建与打包) - [技术栈](#技术栈) - [参与贡献](#参与贡献) - [贡献者](#贡献者) - [Star 历史](#star-历史) - [开源协议](#开源协议) --- # Mrecord是什么 **Mrecord**是一款主打月度账户快照的极简记账App,告别繁琐流水记录,专为需要轻松管理个人及家庭财务、精准掌握资产状况的用户设计,以每月余额为核心,让财务管理更高效、更省心。 - **Mrecord 是便捷的月度账户快照工具**,打破传统流水记账的繁琐模式,每月只需记录各账户的资产、负债余额,无需逐笔录入收支,3秒即可完成月度财务盘点,省时又省力,让记账不再成为负担。 - **Mrecord 是专业的财务数据分析助手** ,基于每月记录的账户余额数据,自动生成直观的财务分析报告,清晰呈现资产负债变化趋势、收支结构占比,帮你快速洞察财务状况,轻松掌握财富流向,为消费规划和理财决策提供参考依据。 - **Mrecord 支持灵活的数据导出功能**,可将月度账户余额、财务分析结果一键导出备份,支持多种导出格式,方便你随时留存数据、跨设备查看或与其他财务工具联动,实现数据自主掌控,无需担心数据丢失或迁移不便。 - **Mrecord 支持贴心的每月提醒功能**,可自定义月度记账提醒时间,到点自动推送通知,帮你养成定期记录账户余额的习惯,避免遗漏,确保每一期财务数据完整,让财务管理更具规律性和连贯性,彻底告别忘记记账的烦恼。 - **Mrecord 不是传统流水记账工具**,它以“月度余额快照”为核心,不强调逐笔收支记录,专注于资产负债的定期盘点与数据分析,让你跳出繁琐记账,聚焦核心财务状况,轻松实现财务可视化管理。 --- Mrecord # 为什么是 Mrecord Mrecord 是你的专属月度财务管理助手,告别繁琐,轻松管控资产负债: - **月度快照核心** —— 无需逐笔录入,每月仅记各账户资产负债余额,快速完成财务盘点。 - **多维度数据管理** —— 账户分类、清晰视图+搜索拖拽,资产状况一目了然。 - **贴心辅助功能** —— 支持数据导出备份,搭配每月记账提醒,避免遗漏。 --- # 功能特性 ### 🗂️ 账户与账本管理 - **多账本支持** —— 可创建多个独立账本,分类管理不同场景财务(如个人、家庭、备用金等),清晰区分,互不干扰。 ### 📊 数据分析统计 - **数据统计模块** —— 基于每月账户余额数据,自动完成数据分析,清晰呈现资产负债变化趋势,助力精准掌握财务状况。 - **多维度分析** —— 直观展示账户余额波动、账本收支关联,为财务规划和理财决策提供参考。 ### 📁 数据导出 - **批量/自定义导出** —— 支持批量导出多账本数据,或自定义选择导出范围,灵活备份,数据管理更自主。 - **便捷编辑** —— 内置编辑功能,快速修改账户余额及账本信息,操作简单高效。 --- # 部署指南 ### 下载 从 [GitHub Releases](https://github.com/BaseOrange/Mrecord/releases/latest) 下载适合您平台的最新版本,或在 [GitHub Releases](https://github.com/BaseOrange/Mrecord/releases) 浏览所有版本。 | 操作系统 | 支持情况 | |:------------------------------------|:------------| | **MacOS** / **Windows** / **Linux** | x64 / arm64 | > 目前服务端为Java17开发,远期规划将使用Rust重构后端,数据库数据会尽可能保证兼容。 > > 待Rust服务端发布后,会根据情况,决定后续是否继续维护Java版本服务端。 ### 前置条件 - Node.js 18+ 和 npm - MacOS、Windows 10+ 或 Linux ### 构建与打包 #### 前端 ```bash # 克隆仓库 git clone https://github.com/BaseOrange/Mrecord.git cd Mrecord/mrecord-vue # 安装依赖 yarn install # 开发模式启动 yarn dev # 生产构建 yarn build ``` #### 后端(Java 版,当前主力) ```bash cd Mrecord/mrecord-java # 安装依赖并打包(需 JDK 17 环境) mvn clean install ``` #### 后端(Rust 版,**重构中,暂不可用**!) ```bash cd Mrecord/mrecord-rust # 开发模式运行 cargo run # 生产构建 cargo build --release ``` #### Docker 部署 ```bash # 在项目根目录构建镜像 docker build -t mrecord -f dockerfile . # 运行容器 docker run -d -p 2333:2333 -v ./mrecord-data:/app/data --name mrecord mrecord ``` ### 项目结构 ``` Mrecord/ ├── README.md # 项目主文档 ├── LICENSE # MIT 开源协议 ├── dockerfile # Docker 容器构建文件 ├── .gitignore # Git 忽略规则 ├── README/ # 文档图片资源 │ ├── logo1.jpg │ └── promotion.png │ ├── mrecord-java/ # 后端服务 - Java 版(Spring Boot,当前主力) │ ├── pom.xml # Maven 构建配置 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/com/dcz/mrecord/ │ │ │ │ ├── Application.java # 应用入口 │ │ │ │ ├── bo/ # 业务对象 (Business Object) │ │ │ │ ├── common/ # 通用组件与响应封装 │ │ │ │ ├── config/ # Spring 配置类 │ │ │ │ ├── constant/ # 常量与枚举定义 │ │ │ │ ├── controller/ # 控制器层 (REST API) │ │ │ │ ├── dto/ # 数据传输对象 (DTO) │ │ │ │ ├── entity/ # 数据库实体类 │ │ │ │ ├── exception/ # 全局异常处理 │ │ │ │ ├── interceptor/ # 请求拦截器(认证、日志等) │ │ │ │ ├── mapper/ # MyBatis 数据访问层 │ │ │ │ ├── service/ # 业务逻辑层 │ │ │ │ └── util/ # 工具类 │ │ │ └── resources/ │ │ │ ├── application.yaml # 主配置文件 │ │ │ ├── application-dev.yaml # 开发环境配置 │ │ │ ├── application-sit.yaml # 测试环境配置 │ │ │ ├── mail/ # 邮件模板 │ │ │ └── mapper/ # MyBatis XML 映射文件 │ │ └── test/ # 单元测试 │ └── target/ # Maven 构建输出目录 │ ├── mrecord-rust/ # 后端服务 - Rust 版(axum + sea-orm,重构中) │ ├── Cargo.toml # Rust 项目配置 │ ├── Cargo.lock # 依赖锁定文件 │ ├── data.db # SQLite 数据库文件 │ ├── migration/ # 数据库迁移模块 │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── lib.rs # 迁移入口 │ │ ├── m20240604_000001_create_record.rs │ │ ├── m20240604_000002_create_core_tables.rs │ │ ├── m20240604_000003_create_sys_tables.rs │ │ └── m20240604_000004_create_backup_tables.rs │ └── src/ │ ├── main.rs # 应用入口 │ ├── config.rs # 配置管理 │ ├── db.rs # 数据库连接 │ ├── error.rs # 错误类型定义 │ ├── common/ # 通用模块 │ │ ├── mod.rs │ │ ├── res_code.rs # 响应状态码 │ │ └── result.rs # 统一响应体 │ ├── constant/ # 常量与状态枚举 │ │ ├── mod.rs │ │ ├── export_task.rs │ │ ├── template_item.rs │ │ └── user_status.rs │ ├── entity/ # ORM 实体定义 (sea-orm) │ │ ├── mod.rs │ │ ├── fin_book.rs │ │ ├── fin_month_item_record.rs │ │ ├── fin_month_record.rs │ │ ├── fin_template_item.rs │ │ ├── record.rs │ │ ├── sys_backup_book.rs │ │ ├── sys_backup_month_item_record.rs │ │ ├── sys_backup_month_record.rs │ │ ├── sys_backup_template_item.rs │ │ ├── sys_config.rs │ │ ├── sys_export_task.rs │ │ ├── sys_user.rs │ │ └── sys_user_operate_log.rs │ ├── handler/ # 请求处理器 (路由逻辑) │ │ ├── mod.rs │ │ └── record.rs │ ├── middleware/ # 中间件 │ │ └── mod.rs │ ├── model/ # 请求/响应模型 (DTO) │ │ ├── mod.rs │ │ ├── email.rs │ │ ├── finance.rs │ │ ├── id_dto.rs │ │ ├── page_info.rs │ │ ├── record.rs │ │ ├── site.rs │ │ └── user.rs │ └── router/ # 路由注册 │ └── mod.rs │ ├── mrecord-vue/ # 前端应用(Vue 3 + TypeScript) │ ├── package.json # 项目依赖配置 │ ├── yarn.lock # Yarn 依赖锁定 │ ├── vite.config.ts # Vite 构建配置 │ ├── index.html # 入口 HTML │ ├── tsconfig.json # TypeScript 配置 │ ├── auto-imports.d.ts # 自动导入类型声明 │ ├── components.d.ts # 组件类型声明 │ ├── .env # 环境变量 │ ├── .env.development # 开发环境变量 │ ├── .env.production # 生产环境变量 │ ├── doc/ # 前端文档 │ │ ├── ENV_GUIDE.md │ │ ├── QUICK_REFERENCE.md │ │ └── SECURITY.md │ ├── public/ # 静态资源(不经过编译) │ │ ├── favicon.svg │ │ └── icons.svg │ └── src/ │ ├── App.vue # 根组件 │ ├── main.ts # 入口脚本 │ ├── style.css # 全局样式 │ ├── api/ # API 接口封装 │ │ ├── index.ts │ │ ├── modules/ # 按模块拆分的 API │ │ └── types.ts # API 类型定义 │ ├── assets/ # 静态资源(图片、Markdown 等) │ ├── components/ # 公共组件 │ │ ├── AgreementPopup.vue │ │ ├── AuthLayout.vue │ │ ├── BookCard.vue │ │ ├── HelloWorld.vue │ │ ├── IconPicker.vue │ │ ├── PageHeader.vue │ │ └── TrendChart.vue │ ├── router/ # Vue Router 路由配置 │ ├── stores/ # Pinia 状态管理 │ ├── types/ # TypeScript 类型声明 │ ├── utils/ # 工具函数 │ └── views/ # 页面视图 │ ├── Home.vue │ ├── Login.vue │ ├── Register.vue │ ├── Layout.vue │ ├── BookPage.vue │ ├── RecordPage.vue │ ├── StatsPage.vue │ ├── ExportPage.vue │ ├── ProfilePage.vue │ ├── AdminPage.vue │ └── ... # 更多页面组件 │ ├── mrecord-sql/ # 数据库脚本 │ ├── README.md │ ├── all/ # 完整脚本(初次部署使用) │ │ ├── DDL/ │ │ │ └── ddl.sql # 完整数据库表结构 │ │ └── DML/ # 初始数据 │ └── add/ # 增量脚本(版本升级使用) │ ├── DDL/ │ └── DML/ │ └── mrecord-portal/ # 静态门户/落地页 ├── index.html # 门户首页 ├── 404.html # 自定义 404 页面 ├── logo.jpg └── xct.png ``` --- # 技术栈 | 分类 | 技术 | |------------|----------------------------------| | 后端技术栈Java版 | JDK17、Spring Boot 4、MyBatis Flex | | 后端技术栈Rust版 | Rust、axum 0.8、sea-orm、tokio(重构中) | | 后端构建工具 | Maven 3.9 / Cargo | | 前端技术栈 | Vue 3、TypeScript、Pinia、Varlet UI | | 前端构建工具 | Vite 8、Node.js 20.19 | | 数据库 | SQLite | | 容器化 | Docker | --- # 参与贡献 欢迎贡献!请随时提交 Pull Request。 1. Fork 本仓库 2. 创建你的功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交你的更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 打开一个 Pull Request --- # 贡献者 感谢所有参与贡献的人! --- # 开源协议 本项目采用 **MIT 协议** 开源 - 查看 [LICENSE](LICENSE) 文件了解详情。 --- # Star 历史 Star History Chart ---

作者的文采实在是太差,所以Readme模板是抄的Netcatty项目的哈哈哈哈。

我特喜欢Netcatty,媲美Termius欢迎大家去Start一下他的项目

项目地址:https://github.com/binaricat/Netcatty