Files
eryao/.trellis/tasks/archive/2026-04/04-17-feat-user-feedback/task.json
T

76 lines
2.5 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "feat-user-feedback",
"title": "用户反馈投送功能",
"type": "feature",
"priority": "medium",
"dev_type": "fullstack",
"created_at": "2026-04-17",
"status": "completed",
"worktree": "feat-user-feedback",
"branch": "worktree/feat-user-feedback",
"description": "实现用户反馈投送功能:前端反馈表单 + 后端数据存储 + 图片上传。Phase 2 实现定时报告生成和邮件推送。",
"prd": "prd.md",
"phase": {
"current": 1,
"total": 3,
"description": "Phase 1: 前端反馈 + 后端存储 + 图片上传"
},
"tech_stack": {
"backend": {
"language": "Python",
"framework": "FastAPI",
"orm": "SQLAlchemy",
"task_queue": "Taskiq",
"xlsx_lib": "openpyxl"
},
"frontend": {
"language": "Dart",
"framework": "Flutter",
"storage": "Supabase Storage"
}
},
"features": {
"anonymous_feedback": true,
"image_upload": true,
"max_images": 3,
"max_content_length": 500,
"report_generation": false,
"email_notification": false
},
"constraints": {
"schema_strict": "所有字段使用 Pydantic Schema 强约束,extra=forbid",
"no_contact_email": "删除 contact_email 字段,不存储用户联系方式",
"no_admin_routes": "暂不实现管理员路由",
"config_via_settings": "客服邮箱和推送时间通过 Settings 环境变量配置"
},
"checklist": {
"backend": [
"添加 openpyxl 依赖",
"创建 user_feedback 表迁移(含 images JSONB 字段)",
"创建 Supabase Storage feedback bucket",
"创建 Pydantic Schema(强约束,extra=forbid",
"创建 Feedback 模型",
"创建 FeedbackRepositoryCRUD 操作)",
"创建 FeedbackService(业务逻辑)",
"创建 POST /api/v1/feedback 接口",
"添加错误码到协议文档"
],
"frontend": [
"创建 Feedback 数据模型",
"创建 FeedbackApi",
"创建 FeedbackRepository",
"创建 FeedbackScreen(含图片上传组件)",
"在 SettingsScreen 添加反馈入口",
"添加 l10n keys(中/英/繁)"
]
},
"notes": [
"Phase 1 只实现前端反馈 + 后端存储 + 图片上传",
"Phase 2 实现定时报告生成和邮件推送",
"使用 Python openpyxl 生成 xlsx 报告(技术栈统一)",
"Schema 使用 extra=forbid 禁止模糊字段",
"客服邮箱通过 FEEDBACK_REPORT_EMAIL 环境变量配置",
"推送时间通过 FEEDBACK_REPORT_CRON 环境变量配置"
],
"completedAt": "2026-04-20"
}