afcd18c54f
Backend: - Add NotFoundException + BusinessException, return correct HTTP status (404/400) - Add @Index on reports.project_id and reports.upload_time - Add fileSize column to reports, populate on upload, return in DTO - Cascade delete: deleting project now removes all reports (DB + files + PDFs) - Delete report: also clean up pre-rendered PDF - File upload MIME validation (extension + Content-Type) - Remove duplicate @ExceptionHandler from ReportController - Switch from System.err to SLF4J logger - Handle MethodArgumentNotValid, MissingServletRequestPart, etc. Frontend: - Remove all Docker files (project uses 宝塔 panel deployment) - Upgrade axios 1.6.8 -> 1.7.7 (CVE-2024-39338) - Remove unused @vue-office/pptx + vue-demi (see CHANGELOG for rationale) - Fix vite proxy port 37821 -> 30081 - Remove mock data fallback in production - Add upload report UI (button + modal in ProjectDetail) - Add create project UI (button + modal in ProjectList) - Add filename search box in ProjectDetail - New useApi methods: createProject, uploadReport, deleteProject, deleteReport - FilePreview/ReportCard: show fileSize (was undefined before) Docs: - Add README.md (overview, quick start, structure) - Add CHANGELOG.md (full change log + pptx removal rationale) - Include EVALUATION_REPORT.md and blog-vibe-coding.md Tests: - All 73 backend tests pass - All 43 frontend tests pass - Updated test fixtures for new API contract
2.0 KiB
2.0 KiB
Publish — AI 日报分发平台
私有化部署的日报/周报管理与分发平台。后端 Spring Boot + SQLite,前端 Vue 3 + Vite。
快速开始
开发
# 后端(需要 Java 21)
./mvnw.cmd spring-boot:run
# 前端
pnpm install
pnpm dev # → http://localhost:41733
部署
本项目使用宝塔面板部署(不是 Docker)。
powershell -File deploy/package.ps1
# 生成 deploy/publish_deploy.zip
# 上传到服务器 /usr/local/publish_dishboard/ 解压覆盖
完整部署步骤见 deploy/README.md
文档
- API.md — 完整 API 文档
- CHANGELOG.md — 更新日志
- deploy/README.md — 部署说明
项目结构
publish/
├── src/main/java/com/reportdist/ # Spring Boot 后端
│ ├── controller/ # REST API
│ ├── service/ # 业务逻辑
│ ├── repository/ # JPA 仓储
│ ├── entity/ # 数据库实体
│ ├── dto/ # 数据传输对象
│ └── exception/ # 异常处理
├── src/ # Vue 3 前端
│ ├── pages/ # 页面
│ ├── components/ # 组件
│ ├── composables/ # 组合式 API
│ └── router/ # 路由
├── deploy/ # 部署脚本与说明
├── pom.xml # Maven 配置
└── package.json # 前端依赖
技术栈
- 后端:Spring Boot 3.2.5 + Spring Data JPA + SQLite + Apache POI + PDFBox
- 前端:Vue 3.4 + Vite 5 + TailwindCSS 4 + Axios
- 构建:Maven + pnpm
- 部署:宝塔面板 (Java 21 + Node.js)
端口约定
| 服务 | 端口 |
|---|---|
| 后端 (Spring Boot) | 30081 |
| 前端 (Node.js static server) | 30080 |
| 开发模式 - Vite | 41733 |
许可证
私有项目