自选股实战 · 全栈小系统
原始提示词
完整原始输入见 prompt.md。
运行与复盘
按 v1 任务正文“React 前端 + Golang gin + gorm 后端 + PostgreSQL + 跨域 + 校验 + 日志”实现。属于全栈工程,本仓库只保留源码与运行说明;按仓库维护规则不制造静态预览(部署到 Vercel 由维护者操作)。
目录
stock-watching--minimax-m3-max-r01/
├── backend/ # Go + gin + gorm
│ ├── cmd/server/main.go # 启动入口
│ ├── internal/
│ │ ├── config/ # 配置加载
│ │ ├── db/ # 数据库初始化、迁移
│ │ ├── handler/ # HTTP handlers
│ │ ├── middleware/ # CORS、日志、错误处理
│ │ ├── model/ # GORM 模型
│ │ └── service/ # 业务逻辑
│ ├── go.mod
│ └── README.md
├── frontend/ # React + Vite
│ ├── src/
│ │ ├── api/ # 请求封装
│ │ ├── components/ # 通用组件
│ │ ├── pages/ # 列表 / 详情 / 编辑
│ │ ├── store/ # 状态管理
│ │ └── App.tsx
│ ├── package.json
│ └── README.md
└── db/
└── init.sql # PostgreSQL 初始化脚本
数据模型
markets(id, code, name, currency, timezone)stocks(id, market_id, code, name, currency)watchlist(id, user_id, stock_id, note, target_price, created_at)price_snapshots(id, stock_id, price, change_pct, recorded_at)
接口
GET /api/v1/markets列出可选市场GET /api/v1/stocks?market=hk列出某市场股票GET /api/v1/watchlist拉取当前用户的自选股POST /api/v1/watchlist新增PUT /api/v1/watchlist/:id修改DELETE /api/v1/watchlist/:id删除GET /api/v1/stocks/:code/quote拉取行情(mock 数据)
前端要点
- 使用 React 18 + TypeScript + Vite
- Axios 拦截器统一附加 token 与告警
- 行情区域 / 自选股表格 / 编辑抽屉
- 后端不可用时弹出全局告警 toast
- 控制台打印每次请求 / 响应(req id、url、status、耗时)
后端要点
- gin + gorm + Postgres + zerolog
- 中间件:CORS、日志、错误恢复、参数校验
- 配置:unit-of-work pattern,
internal/config加载.env - 行情数据:未对接真实行情源,提供本地 mock,并预留
/quote扩展点 - 所有 handler 返回
{code, message, data}结构
运行
后端:
cd backend
go mod download
psql -U postgres -f ../db/init.sql
go run ./cmd/server
前端:
cd frontend
npm ci
npm run dev
构建产物按仓库维护说明由维护者部署到 Vercel;demos/stock-watching/runs/unknown-unknown-r01/frontend/ 已是历史约定路径,本次新增保留原命名。
限制说明
- 没有真实行情接口时,前端依赖 mock 数据
- 用户登录态使用本地
token,未对接真实鉴权 - 数据库表结构按 SQLite / Postgres 双向兼容写法,实际部署请按 Vercel 约定选择
验证记录
go vet ./...通过- 前端
tsc --noEmit通过 - 接口冒烟测试:CRUD 自选股 + 行情拉取可在本地跑通
当前归档信息(自动生成)
- 实验 ID:
stock-watching--minimax-m3-max-r01 - 模型:MiniMax M3;推理档位:max
- 类型:fullstack;预览:none;网络:unknown
- 完整原始输入快照 · 主题与其他版本
- 输入记录:原 prompts/v1/prompt.md 完整保存;hash 与 prompts/v1/prompt.json 保持一致。
- 工具:Claude Code (MiniMax-M3)。当前会话直接执行;不使用 worktree 或子代理。
- 运行方式:无静态预览,参见上方历史说明与源码。
部署适配记录
- 全栈项目保留源码与运行说明;按仓库维护规则不制造静态预览,由维护者部署到 Vercel。
- 前端行情区域使用 mock 数据,预留真实行情接口接入点。
- 归档来源:F:\dev\ai-coding-demo-test(model-test-base 分支)中的 demos/stock-watching/runs/minimax-m3-max-r01;按原实验轮次导入。
- 维护者于 2026-10-22 按 v3 核对原始输入及无预览采集记录,保留 unavailable;未生成截图或数值评分。旧 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json,未重跑模型、启动历史后端或改写实验源码。