# SimplyFin **Repository Path**: liao_java/SimplyFin ## Basic Information - **Project Name**: SimplyFin - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-07 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SimplyFin - 简财 > Simplify Your Finance. 让每一分钱都清清楚楚。 ## 项目愿景 成为每个人管理个人财务最信赖的简单起点。 ## 技术栈 ### 前端 - **核心框架**:Vue 3 (组合式 API) - **构建工具**:Vite - **类型系统**:TypeScript - **UI 组件库**:Element Plus - **状态管理**:Pinia - **路由管理**:Vue Router 4 - **HTTP 客户端**:Axios - **CSS 预处理器**:Sass/SCSS - **代码规范**:ESLint + Prettier ### 后端 - **开发语言**:Java 17 (LTS 版本) - **核心框架**:Spring Boot 3.x - **构建工具**:Maven - **数据访问**:MyBatis Plus 3.x - **数据库迁移**:Flyway - **API 文档**:SpringDoc OpenAPI 3 - **安全框架**:Spring Security - **API 风格**:RESTful ### 数据库与基础设施 - **数据库**:MySQL 8.0+ - **连接池**:HikariCP - **开发环境**:Docker Compose - **版本控制**:Git - **代码托管**:GitHub ## 项目结构 ``` SimplyFin/ ├── frontend/ # Vue 3 前端项目 │ ├── public/ # 静态资源 │ ├── src/ # 源代码 │ │ ├── assets/ # 资源文件 │ │ ├── components/ # 组件 │ │ ├── router/ # 路由配置 │ │ ├── services/ # API 服务 │ │ ├── store/ # 状态管理 │ │ ├── views/ # 页面 │ │ ├── App.vue # 主组件 │ │ └── main.ts # 入口文件 │ ├── package.json # 前端依赖 │ └── vite.config.ts # Vite 配置 ├── backend/ # Spring Boot 后端项目 │ ├── src/ # 源代码 │ │ └── main/ # 主代码 │ │ ├── java/ # Java 代码 │ │ └── resources/ # 资源文件 │ │ ├── db/migration/ # 数据库迁移脚本 │ │ └── application.yml # 应用配置 │ └── pom.xml # Maven 配置 ├── docs/ # 项目文档 │ ├── plan/ # 规划文档 │ ├── design/ # 设计文档 │ ├── CONTRIBUTING.md # 贡献指南 │ ├── project-milestones.md # 项目里程碑 │ ├── structure.md # 项目结构文档 │ ├── tech-decisions.md # 技术决策文档 │ └── todo.md # 待办事项 ├── README.md # 项目总说明 └── .gitignore # Git 忽略配置 ``` ## 开发策略 ### MVP 开发策略 - **初期跳过用户验证**:所有 API 硬编码 `user_id = 1` - **单用户模式**:前端固定操作一个用户的数据 - **完整数据结构**:所有表包含 `user_id` 字段,为多用户准备 - **后续扩展**:验证通过后,添加登录界面和权限控制 ### API 设计规范 - **URL 格式**:`/api/v1/{资源名}` - **HTTP 方法**: - GET - 查询 - POST - 创建 - PUT - 全量更新 - PATCH - 部分更新 - DELETE - 删除 - **响应格式**:统一 JSON 格式 - **状态码**:遵循 HTTP 标准状态码 ## 数据库架构 ### 核心表结构 - **users**:用户信息(支持邮箱、手机号验证,双因素认证) - **accounts**:账户信息(支持多种账户类型和货币) - **categories**:交易分类(支持父子分类和系统预置分类) - **transactions**:交易记录(支持收入、支出、转账,多币种) - **budgets**:预算信息(支持月度、年度、自定义周期) - **tags**:标签(用于交易分类和筛选) - **recurring_transactions**:定期交易规则 - **attachments**:附件管理(支持收据等文件) - **audit_logs**:审计日志(记录系统操作) ### 数据特性 - 所有表使用 UUID 作为主键 - 支持多币种交易 - 完整的安全特性(密码哈希、验证状态) - JSON 字段用于半结构化数据 - 详细的审计日志 ## 快速开始 ### 开发环境要求 - **Node.js**:18.0+(前端) - **Java**:17+(后端) - **Maven**:3.8+(后端) - **MySQL**:8.0+(数据库) - **Docker**:最新版本(容器化部署) - **Docker Compose**:最新版本(多容器部署) - **Git**:最新版本 ### 本地开发模式 #### 前端开发 ```bash cd frontend npm install npm run dev ``` #### 后端开发 ```bash cd backend mvn spring-boot:run ``` #### 数据库配置 1. 创建 MySQL 数据库:`simplyfin` 2. 配置数据库连接信息(在 `backend/src/main/resources/application.yml`) 3. 启动后端服务,Flyway 会自动执行数据库迁移 ### Docker Compose 部署(推荐) #### 环境配置 1. 复制 `.env.example` 文件为 `.env`(如果不存在) 2. 根据需要修改 `.env` 文件中的配置参数 #### 启动服务 ```bash # 构建并启动所有服务 ./deploy.sh start # 查看服务状态 ./deploy.sh status # 停止服务 ./deploy.sh stop # 重启服务 ./deploy.sh restart ``` #### 访问地址 - **前端应用**:http://localhost - **后端 API**:http://localhost:8080/api/v1 - **API 文档**:http://localhost:8080/api/v1/swagger-ui/index.html - **监控服务**:http://localhost:9090 (Prometheus) - **可视化面板**:http://localhost:3000 (Grafana) #### Grafana 登录信息 - **用户名**:admin - **密码**:admin123 ## 项目状态 - ✅ 项目结构搭建完成 - ✅ 前端基础框架配置 - ✅ 后端基础框架配置 - ✅ 数据库架构设计完成 - ✅ 数据库迁移脚本创建 - ✅ 文档结构搭建 - ✅ 代码质量改进完成 - ✅ 测试覆盖率验证 - 🔄 核心功能开发中 ## 贡献指南 请查看 [CONTRIBUTING.md](docs/CONTRIBUTING.md) 获取详细信息。 ## 许可证 本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件。