# diary_system **Repository Path**: zhouqing963/diary_system ## Basic Information - **Project Name**: diary_system - **Description**: 个人日记本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-12-04 - **Last Updated**: 2025-12-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网上日记本系统 一个基于 Spring Boot 3 + Vue 3 的前后端分离日记本应用。 ## 📋 项目概述 - **后端**: Spring Boot 3.2 + MyBatis Plus + MySQL + JWT - **前端**: Vue 3 + TypeScript + Element Plus + Pinia + Vite - **功能**: 用户注册登录、日记管理、标签分类、数据统计等 ## 🚀 快速开始 ### 环境要求 - Java 17+ - Node.js 18+ - MySQL 8.0+ - Maven 3.6+ ### 1. 克隆项目 ```bash git clone cd ds ``` ### 2. 数据库配置 ```bash # 登录 MySQL mysql -u root -p # 创建数据库 CREATE DATABASE ds CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入数据库结构 mysql -u root -p ds < sql.sql ``` ### 3. 后端启动 ```bash # 进入后端目录 cd apps/api # 使用 Maven 启动 mvn spring-boot:run # 或者先编译再运行 mvn clean package java -jar target/diary-api-1.0.0.jar ``` **后端访问地址**: http://localhost:8888 ### 4. 前端启动 ```bash # 进入前端目录 cd apps/web # 安装依赖 npm install # 启动开发服务器 npm run dev # 或者构建生产版本 npm run build ``` **前端访问地址**: http://localhost:3000 ### 5. 访问应用 - **主页**: http://localhost:3000 - **注册页面**: http://localhost:3000/auth/register - **登录页面**: http://localhost:3000/auth/login - **API 文档**: http://localhost:8888/swagger-ui.html (如果启用) ## 📁 项目结构 ``` ds/ ├── apps/ # 应用目录 │ ├── api/ # 后端 API │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/com/diary/ │ │ │ │ ├── controller/ # 控制器 │ │ │ │ ├── service/ # 服务层 │ │ │ │ ├── maaper/ # 数据访问 │ │ │ │ ├── entity/ # 实体类 │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── utils/ # 工具类 │ │ │ │ └── config/ # 配置类 │ │ │ └── resources/ │ │ │ └── application.yml # 配置文件 │ │ └── test/ # 测试代码 │ └── web/ # 前端应用 │ ├── src/ │ │ ├── components/ # 组件 │ │ ├── views/ # 页面 │ │ ├── stores/ # 状态管理 │ │ ├── api/ # API 服务 │ │ ├── config/ # 配置文件 │ │ ├── types/ # TypeScript 类型 │ │ ├── utils/ # 工具函数 │ │ └── router/ # 路由配置 │ ├── tests/ # 测试文件 │ └── package.json ├── docs/ # 项目文档 │ ├── stories/ # 用户故事 │ ├── architecture/ # 架构文档 │ └── qa/ # 质量保证文档 ├── .bmad-core/ # BMAD 核心配置 ├── sql.sql # 数据库初始化脚本 ├── config.md # 项目配置说明 └── README.md # 项目说明文档 ``` ## 🔧 开发命令 ### 后端开发命令 ```bash # 进入后端目录 cd apps/api # 启动开发服务器(热重载) mvn spring-boot:run -Dspring-boot.run.profiles=dev # 编译项目 mvn clean compile # 运行测试 mvn test # 运行特定测试 mvn test -Dtest=AuthServiceTest # 打包项目 mvn clean package -DskipTests # 查看依赖树 mvn dependency:tree ``` ### 前端开发命令 ```bash # 进入前端目录 cd apps/web # 安装依赖 npm install # 启动开发服务器(热重载) npm run dev # 类型检查 npm run type-check # 代码格式化 npm run format # 代码检查 npm run lint # 运行单元测试 npm run test # 运行测试覆盖率 npm run test:coverage # 构建生产版本 npm run build # 预览生产构建 npm run preview ``` ### 数据库命令 ```bash # 备份数据库 mysqldump -u root -p ds > backup.sql # 恢复数据库 mysql -u root -p ds < backup.sql # 重置数据库(删除后重建) mysql -u root -p -e "DROP DATABASE IF EXISTS ds; CREATE DATABASE ds CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" mysql -u root -p ds < sql.sql ``` ## 📊 测试 ### 后端测试 ```bash # 运行所有测试 mvn test # 运行特定测试类 mvn test -Dtest=AuthServiceTest # 运行特定测试方法 mvn test -Dtest=AuthServiceTest#register_ValidRequest_Success # 生成测试报告 mvn surefire-report:report # 查看测试覆盖率 mvn jacoco:report ``` ### 前端测试 ```bash # 运行单元测试 npm run test # 运行测试并监听文件变化 npm run test:watch # 生成测试覆盖率报告 npm run test:coverage # 运行 E2E 测试 npm run test:e2e ``` ## 🐳 Docker 部署(可选) ```bash # 构建镜像 docker-compose build # 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` ## 📝 开发规范 - 后端遵循 RESTful API 设计规范 - 前端使用 TypeScript 进行类型安全开发 - 代码提交前必须通过测试 - 遵循项目编码规范(见 `docs/architecture/coding-standards.md`) ## 🔍 调试 ### 后端调试 - 在 IDE 中设置断点 - 使用 `mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"` - 访问 http://localhost:8888/actuator/health 查看健康状态 ### 前端调试 - 浏览器开发者工具 - Vue DevTools 扩展 - Console 日志输出 ## 📚 API 文档 启动后端服务后,访问: - Swagger UI: http://localhost:8888/swagger-ui.html - OpenAPI JSON: http://localhost:8888/v3/api-docs ## 🤝 贡献指南 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 或联系项目维护者。 --- **注意**: 确保在启动应用前,数据库和 Redis 服务已正确配置并运行。