# book **Repository Path**: ALONE_WORK/book ## Basic Information - **Project Name**: book - **Description**: AI 生成个人开支管理系统 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-28 - **Last Updated**: 2026-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 个人开支管理系统 ## 项目结构 ``` /third_party # 第三方依赖库(Git 子模块管理) /server # 服务端源码 /client/desktop # 桌面客户端源码 /client/web # 网页客户端源码 /cmake # CMake 公共配置 /docs # 接口文档、设计文档 ``` ## 技术栈 - **服务端**:C++ / Boost 1.76.0 / nlohmann/json - **桌面客户端**:C++ / Qt 5.15.2 / QML - **网页客户端**:HTML5 / CSS3 / JavaScript / Bootstrap 5 ## 构建步骤 ### 1. 拉取代码和子模块 ```bash git clone --recursive 项目地址 cd 项目目录 ``` ### 2. 构建服务端 ```bash mkdir build cd build cmake .. cmake --build . ``` ### 3. 运行服务端 ```bash ./server/expense_server ``` 服务端将在 `http://localhost:7788` 上运行。 ### 4. 运行桌面客户端 使用 Qt Creator 打开 `client/desktop/expense_desktop.pro` 文件,然后构建并运行。 ### 5. 运行网页客户端 使用浏览器打开 `client/web/index.html` 文件。 ## 功能说明 ### 服务端接口 - `/api/register` - 用户注册 - `/api/login` - 用户登录 - `/api/categories` - 获取分类列表 - `/api/category/add` - 新增分类 - `/api/category/update` - 更新分类 - `/api/category/delete` - 删除分类 - `/api/accounts` - 获取账号列表 - `/api/account/add` - 新增账号 - `/api/account/update` - 更新账号 - `/api/account/delete` - 删除账号 - `/api/expense/add` - 新增开支 - `/api/expenses` - 获取开支列表 - `/api/expense/update` - 更新开支 - `/api/expense/delete` - 删除开支 - `/api/statistics` - 获取统计数据 ### 客户端功能 1. **注册/登录** - 用户认证 2. **开支管理** - 新增、编辑、删除开支 3. **分类管理** - 新增、编辑、删除分类(系统默认分类不可删除) 4. **账号管理** - 新增、编辑、删除账号 5. **统计分析** - 按日/周/月/年统计开支,支持按分类、子分类、账号维度统计 6. **设置** - 用户信息展示和退出登录 ## 数据存储 所有数据以 JSON 文件形式存储在 `./data/` 目录下: - `type.json` - 系统默认开支分类 - `user.json` - 用户注册/登录信息 - `{userID}_account.json` - 单个用户的支付账号 - `{userID}_{year}_expense.json` - 按年份分隔的开支记录 ## 注意事项 1. 服务端需要 Boost 1.76.0 库支持 2. 桌面客户端需要 Qt 5.15.2 支持 3. 首次运行时会自动创建数据目录和默认数据文件 4. 服务端运行后会监听 0.0.0.0:7788 端口 5. 客户端需要配置服务端 IP 地址(默认为 localhost)