fix: evaluation report P0/P1/P2 fixes, remove Docker, add upload UI
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
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Publish — AI 日报分发平台
|
||||
|
||||
私有化部署的日报/周报管理与分发平台。后端 Spring Boot + SQLite,前端 Vue 3 + Vite。
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 开发
|
||||
|
||||
```bash
|
||||
# 后端(需要 Java 21)
|
||||
./mvnw.cmd spring-boot:run
|
||||
|
||||
# 前端
|
||||
pnpm install
|
||||
pnpm dev # → http://localhost:41733
|
||||
```
|
||||
|
||||
### 部署
|
||||
|
||||
本项目使用**宝塔面板**部署(不是 Docker)。
|
||||
|
||||
```bash
|
||||
powershell -File deploy/package.ps1
|
||||
# 生成 deploy/publish_deploy.zip
|
||||
# 上传到服务器 /usr/local/publish_dishboard/ 解压覆盖
|
||||
```
|
||||
|
||||
完整部署步骤见 [deploy/README.md](deploy/README.md)
|
||||
|
||||
## 文档
|
||||
|
||||
- [API.md](API.md) — 完整 API 文档
|
||||
- [CHANGELOG.md](CHANGELOG.md) — 更新日志
|
||||
- [deploy/README.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 |
|
||||
|
||||
## 许可证
|
||||
|
||||
私有项目
|
||||
Reference in New Issue
Block a user