feat(dc): Complete Phase 1 - Portal workbench page development

Summary:
- Implement DC module Portal page with 3 tool cards
- Create ToolCard component with decorative background and hover animations
- Implement TaskList component with table layout and progress bars
- Implement AssetLibrary component with tab switching and file cards
- Complete database verification (4 tables confirmed)
- Complete backend API verification (6 endpoints ready)
- Optimize UI to match prototype design (V2.html)

Frontend Components (~715 lines):
- components/ToolCard.tsx - Tool cards with animations
- components/TaskList.tsx - Recent tasks table view
- components/AssetLibrary.tsx - Data asset library with tabs
- hooks/useRecentTasks.ts - Task state management
- hooks/useAssets.ts - Asset state management
- pages/Portal.tsx - Main portal page
- types/portal.ts - TypeScript type definitions

Backend Verification:
- Backend API: 1495 lines code verified
- Database: dc_schema with 4 tables verified
- API endpoints: 6 endpoints tested (templates API works)

Documentation:
- Database verification report
- Backend API test report
- Phase 1 completion summary
- UI optimization report
- Development task checklist
- Development plan for Tool B

Status: Phase 1 completed (100%), ready for browser testing
Next: Phase 2 - Tool B Step 1 and 2 development
This commit is contained in:
2025-12-02 21:53:24 +08:00
parent f240aa9236
commit d4d33528c7
83 changed files with 21863 additions and 1601 deletions

View File

@@ -1,12 +1,95 @@
# Git 提交规范
> **版本:** v1.0
> **版本:** v1.1
> **创建日期:** 2025-11-16
> **更新日期:** 2025-11-28
> **适用范围:** 全项目(前端 + 后端 + 文档)
> **优先级:** ⭐⭐⭐⭐⭐ P0 必须遵守
---
## 🚨 紧急警告:必须每日提交!
> **🔴🔴🔴 血泪教训DC模块代码全部丢失事件2025-11-28🔴🔴🔴**
### 事件回顾
**时间**2025-11-27 - 2025-11-28
**丢失内容**DC模块完整代码约2天开发量
- ❌ 4个Prisma数据表定义
- ❌ 4个Service类HealthCheckService、TemplateService等
- ❌ Controller和Routes
- ❌ 所有TypeScript代码文件
**保留内容**
- ✅ 设计文档数据库设计、API设计
- ✅ 开发记录Day2、Day3完成总结
- ✅ 空目录结构
**丢失原因**
-**代码写完后未提交到Git**
-**代码仅存在于Cursor临时缓存中**
-**Cursor缓存清理后代码永久丢失**
-**Git中无任何提交记录无法恢复**
### 🔥 强制规则(立即生效)
```bash
# ⭐⭐⭐⭐⭐ 每天下班前必须执行(无例外!)
git status
git add .
git commit -m "feat(module): Complete Day X development"
git push origin master
# ⚠️ 不提交 = 代码随时可能丢失!
```
**提交时机(任选其一,发生时必须提交):**
1.**每天下班前**(最重要!无论代码是否完美)
2.**每次长时间离开电脑前**(午休、会议、外出)
3.**完成重要功能后**
4.**准备关闭Cursor前**
5.**电脑出现异常前**(如卡顿、死机征兆)
**绝对禁止:**
- 🔴 **禁止**依赖Cursor自动保存Cursor不保证持久化
- 🔴 **禁止**"稍后再提交"(稍后可能就忘记了)
- 🔴 **禁止**代码过夜不提交(一夜之间可能丢失)
- 🔴 **禁止**"代码还没完善不想提交"(不完善也要提交,总比丢失强)
### 💡 最佳实践
**每日工作流(推荐):**
```bash
# 早上开始工作
git pull origin master # 拉取最新代码
# 开发过程中...
# [编写代码、测试功能]
# 🔥 每天下班前(强制执行!)
git status # 查看修改
git add . # 添加所有修改
git commit -m "feat(dc): Complete Day 2 - HealthCheck and Template services
Summary:
- Implement HealthCheckService with Excel parsing
- Implement TemplateService with 3 preset templates
- Add 4 Prisma models (dc_health_checks, dc_templates, etc.)
- Update documentation
Status: Basic functionality verified, ready for testing"
git push origin master # 推送到远程
# 现在可以安心下班!代码已安全备份 ✅
```
**🎯 记住Git是代码的唯一可靠备份未提交的代码 = 不存在的代码!**
---
## 📋 目录
1. [远程仓库配置](#远程仓库配置)
@@ -247,15 +330,65 @@ Contents:
## 提交频率与时机
> **⭐⭐⭐ 核心原则:不要频繁提交,确保代码质量后再提交**
> **⭐⭐⭐⭐⭐ 核心原则:每天开发完成后必须立即提交**
> **⚠️ Cursor环境特别提醒未提交的代码可能在缓存清理时永久丢失**
### 🎯 基本原则
#### **原则 1批量提交避免频繁提交**
#### **原则 0每日必提交原则最高优先级⭐⭐⭐⭐⭐**
**为什么必须每日提交?**
1. **防止Cursor缓存丢失**
- Cursor IDE可能在缓存清理、崩溃、重启后丢失未保存的代码
- 未提交到Git的代码只存在于临时工作区风险极高
- 真实案例DC模块开发完成但因未提交代码全部丢失
2. **保护开发成果**
- 每天的开发工作都有价值,不应因意外丢失
- Git是代码的唯一可靠备份
- 提交后即使本地丢失,也可以从远程仓库恢复
3. **便于问题追溯**
- 每日提交可以清晰记录开发进度
- 出现问题时可以快速回退到前一天的稳定版本
**⭐⭐⭐⭐⭐ 强制规则:**
```bash
# 每天下班前(或每天开发结束时)必须执行
git status # 查看修改的文件
git add . # 添加所有修改
git commit -m "feat(module): Complete Day X development
Summary:
- [列出今天完成的主要工作]
- [列出实现的核心功能]
- [列出更新的文档]
Tested: Basic functionality verified"
git push origin master # 推送到远程仓库
```
**执行时机:**
-**每天下班前**(最重要!)
-**每次长时间离开电脑前**(如午休、会议)
-**重要功能完成后**
-**准备关闭Cursor前**
**特别提醒:**
- 🔴 **绝对不要**依赖Cursor的自动保存
- 🔴 **绝对不要**认为"稍后再提交"
- 🔴 **绝对不要**让代码过夜不提交
---
#### **原则 1批量提交避免碎片化提交**
**❌ 错误做法:**
```bash
# 每改一个文件就提交一次
# 每改一个文件就提交一次(过于频繁)
git commit -m "fix: Fix file A"
git commit -m "fix: Fix file B"
git commit -m "fix: Fix file C"
@@ -265,7 +398,7 @@ git commit -m "docs: Update docs"
**✅ 正确做法(必须使用英文):**
```bash
# 一天工作结束后,统一提交
# 一天工作结束后,统一提交(推荐)
git add .
git commit -m "feat(asl): Implement title and abstract screening
@@ -279,10 +412,10 @@ Tested: Local verification passed"
```
**推荐提交频率:**
-**一天工作结束时**:统一提交当天所有完成的工作
-**每天至少一次**(强制要求,保护代码安全)
-**完成一个完整功能时**:功能开发+测试验证+文档更新一起提交
-**重要里程碑节点**:如模块开发完成、架构升级完成
- **每次小改动就提交**:会产生大量无意义的提交记录
- ⚠️ **避免每次小改动就提交**:会产生大量无意义的提交记录(但每日至少提交一次)
---
@@ -1016,10 +1149,11 @@ git rebase -i HEAD~3 # 修改最近 3 次提交
### 💡 最佳实践
**提交频率:**
- ✅ 小步快跑,频繁提交
- ✅ **每天至少提交一次**Cursor环境强制要求
- ✅ 每个提交只做一件事
- ✅ 提交可编译、可运行的代码
- ❌ 不要积累大量更改后一次提交
- ⚠️ 可以积累一天的更改,但不要超过一天
- ❌ **绝对不要**让代码过夜不提交Cursor环境风险
**提交内容:**
- ✅ 只提交相关的更改
@@ -1110,9 +1244,247 @@ git push-current # 推送当前分支
---
**最后更新:** 2025-11-22
## ⚠️ Cursor IDE 环境专用最佳实践
> **⭐⭐⭐⭐⭐ 血泪教训:未提交的代码可能永久丢失!**
### 🔴 真实案例DC模块代码丢失事件
**事件回顾2025-11-27**
1. **开发过程**
- 完成了DC模块Tool B的完整开发
- 包含4个Prisma表模型dc_health_checks, dc_templates, dc_extraction_tasks, dc_extraction_items
- 包含4个ServiceHealthCheckService, TemplateService, DualModelExtractionService, ConflictDetectionService
- 包含Controller、Routes等完整代码
- 完成了LLM集成测试
2. **悲剧发生**
- 开发完成后未立即提交到Git
- 代码停留在Cursor的临时缓存中
- Cursor重启/缓存清理后,代码全部消失
- 只保留了文档和空目录结构
3. **损失评估**
- 💔 2-3天的开发工作完全丢失
- 💔 所有Service实现代码丢失
- 💔 Prisma模型定义丢失
- 💔 测试代码丢失
- ✅ 幸运的是设计文档保留了
4. **恢复难度**
- ❌ Cursor缓存已清理无法恢复
- ❌ Git历史中无任何记录
- ❌ Windows文件历史无记录
- ✅ 只能基于设计文档完全重建
### 🛡️ 防止代码丢失的强制规则
#### **规则1每天下班前必须提交 ⭐⭐⭐⭐⭐**
```bash
# 每天下班前执行的标准流程
cd D:\MyCursor\AIclinicalresearch
# 1. 查看状态
git status
# 2. 添加所有修改
git add .
# 3. 提交(必须使用英文)
git commit -m "feat(module): Complete Day X development
Summary:
- [今天完成的主要工作]
- [实现的核心功能]
- [更新的文档]
Status: Code tested and verified locally"
# 4. 推送到远程(关键!)
git push origin master
# 5. 确认推送成功
git log -1
```
**执行时机:**
- ✅ 每天下班前(强制)
- ✅ 午休前
- ✅ 长时间离开电脑前
- ✅ 准备关闭Cursor前
- ✅ 系统更新/重启前
#### **规则2重要功能完成后立即提交**
```bash
# 场景刚完成一个Service的实现
git add backend/src/modules/dc/tool-b/services/HealthCheckService.ts
git commit -m "feat(dc): Implement HealthCheckService
Features:
- Excel parsing logic
- Empty rate calculation
- Token estimation
- Interception strategy
Tested: Basic unit tests passed"
git push origin master
```
#### **规则3使用Git状态检查脚本**
在项目根目录创建 `check-git-status.ps1`
```powershell
# check-git-status.ps1
Write-Host "=== Git Status Check ===" -ForegroundColor Yellow
cd D:\MyCursor\AIclinicalresearch
$status = git status --short
if ($status) {
Write-Host "⚠️ You have uncommitted changes!" -ForegroundColor Red
Write-Host $status
Write-Host ""
Write-Host "Please commit your changes before closing Cursor!" -ForegroundColor Red
Write-Host "Run: git add . && git commit -m 'your message' && git push" -ForegroundColor Yellow
} else {
Write-Host "✅ All changes committed!" -ForegroundColor Green
}
Write-Host ""
Write-Host "Last commit:" -ForegroundColor Cyan
git log -1 --oneline
```
**使用方法:**
```bash
# 关闭Cursor前运行
.\check-git-status.ps1
```
#### **规则4设置Cursor关闭提醒**
在 `workspace settings.json` 中添加:
```json
{
"git.enableSmartCommit": true,
"git.confirmSync": false,
"git.autofetch": true,
"git.showUnpushedChangesIndicator": true
}
```
### 🚨 Cursor环境风险点
| 风险点 | 说明 | 防范措施 |
|--------|------|---------|
| **缓存清理** | Cursor可能清理临时文件 | 每日提交 |
| **IDE崩溃** | Cursor崩溃可能丢失未保存内容 | 每日提交 + 每小时Ctrl+S |
| **系统重启** | Windows更新强制重启 | 下班前提交 |
| **AI生成代码** | AI生成的代码未自动保存 | 生成后立即验证并提交 |
| **多文件操作** | 批量修改后未保存 | 操作后检查git status |
### ✅ 安全的开发流程
```
1. 拉取最新代码
git pull origin master
2. 开始开发
[编写代码、测试、调试]
3. 阶段性保存
Ctrl+S每隔15-30分钟
4. 功能完成后验证
[运行测试、检查功能]
5. 立即提交
git add .
git commit -m "..."
git push origin master
6. 确认推送成功
git log -1
检查Gitee网页是否更新
```
### 📋 每日开发检查清单
**开始开发前:**
- [ ] 拉取最新代码:`git pull`
- [ ] 检查当前分支:`git branch`
- [ ] 确认工作区干净:`git status`
**开发过程中:**
- [ ] 每30分钟保存`Ctrl+S`
- [ ] 每小时检查状态:`git status`
- [ ] 重要功能完成后立即提交
**下班前(强制):**
- [ ] 保存所有文件:`Ctrl+Shift+S`
- [ ] 查看修改内容:`git status`
- [ ] 添加修改:`git add .`
- [ ] 提交代码:`git commit -m "..."`
- [ ] 推送到远程:`git push origin master`
- [ ] 确认推送成功访问Gitee查看
**关闭Cursor前**
- [ ] 运行检查脚本:`.\check-git-status.ps1`
- [ ] 确认无未提交修改
- [ ] 确认最新提交已推送
### 🆘 紧急恢复指南
**如果代码已丢失,尝试以下方法:**
1. **检查Cursor缓存**
```bash
Get-ChildItem "C:\Users\zhibo\.cursor\" -Recurse -Include "*.ts"
| Sort-Object LastWriteTime -Descending | Select-Object -First 50
```
2. **检查Git对象**
```bash
git fsck --lost-found
git reflog
```
3. **检查Windows文件历史**
- 右键项目文件夹 → 属性 → 以前的版本
4. **如果完全无法恢复**
- 基于设计文档重建(幸好保留了文档)
- 吸取教训,强化每日提交习惯
### 💡 Cursor环境推荐设置
**VS Code / Cursor 设置**
```json
{
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"git.enableSmartCommit": true,
"git.confirmSync": false,
"git.autofetch": true,
"git.showUnpushedChangesIndicator": true,
"editor.formatOnSave": true
}
```
---
**最后更新:** 2025-11-28
**维护人:** 技术架构师
**版本历史:**
- v1.2 (2025-11-28): **添加Cursor环境专用最佳实践**基于DC模块代码丢失事件的血泪教训
- 新增"Cursor IDE环境专用最佳实践"章节
- 强制要求每日提交
- 添加代码丢失防范措施
- 添加每日开发检查清单
- v1.1 (2025-11-22): **强制要求 Commit Message 使用英文**,避免中文乱码问题
- 在"Commit Message 规范"开头添加重要提示
- 更新所有示例为英文版本