面向高校竞赛场景的 AI 驱动信息整理平台,支持竞赛信息检索、AI 结构化提取、竞赛去重合并、个人竞赛看板与报名跟进。
- 竞赛列表支持关键词、主办方、截止日期区间、分类、排序,并与 URL 参数同步,便于分享和复现筛选条件。
- AI 提取支持网页、文本、文件等输入来源,可将非结构化材料整理成结构化竞赛数据。
- 保存到竞赛库时支持重名检测、新旧字段对比、智能合并、覆盖更新与确认保存。
- 竞赛详情页支持按角色跳转官方入口,并可直接加入个人看板。
- 个人竞赛看板支持状态跟踪、提醒天数、个人备注,并在首页、列表页、详情页之间实时联动。
- 前后端参数完全对齐,已支持:
keywordorganizerdeadline_fromdeadline_tocategorysort_bysort_order
- 筛选条件会同步到浏览器地址栏,刷新和分享后仍可还原当前视图。
- AI 提取页统一走同一套 API 地址生成逻辑,避免前后端分离部署后流式接口失效。
- 保存竞赛前会自动清洗日期字段,兼容
YYYY-MM、YYYY年M月等输入。 - 重名竞赛弹窗新增:
- 新旧字段对比
- 合并预览三栏对比
- 友好字段显示
- 对比面板已修复以下字段的显示和类型问题:
- 截止日期
- 开始日期
- 发布时间
- 参赛形式
- 最少人数
- 最多人数
- 指导老师
- 适合对象
- 官网链接 / 参赛入口 / 教师入口
- 参赛要求 / 联系方式 / 奖项信息 / 补充说明
- 后端新增用户竞赛跟踪能力。
- 首页新增“我的竞赛看板”“即将截止”“待处理事项”“全部看板项目”。
- 详情页支持:
- 加入看板
- 移出看板
- 更新状态
- 调整提醒天数
- 填写个人备注
- 列表页新增“已加入看板”状态标记。
- 使用共享状态仓库驱动,页面间切换无需手动刷新。
- 修复了部分成功提示被乱码误判成报错的问题。
- 统一了部分 API 错误展示逻辑,422 校验错误会显示具体字段位置。
- 修复竞赛详情页、跳转入口、看板联动中的若干边界问题。
- Vue 3
- Pinia
- Vue Router
- Axios
- Element Plus
- FastAPI
- SQLite
- Pydantic
- JWT 鉴权
main/
├─ backend/ # FastAPI 后端
│ ├─ models/ # 数据模型
│ ├─ routers/ # 路由与业务接口
│ ├─ utils/ # 工具与 AI 能力
│ └─ database.py # SQLite 初始化与迁移
├─ frontend/ # Vue 3 前端
│ ├─ src/api/ # API 封装
│ ├─ src/components/ # 组件
│ ├─ src/pages/ # 页面
│ └─ src/store/ # 状态管理
└─ README.md
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000cd frontend
npm install
npm run dev- 前端:http://localhost:3000 或 Vite 实际启动端口
- 后端:http://localhost:8000
- 接口文档:http://localhost:8000/docs
后端 .env 建议至少配置以下内容:
SECRET_KEY=your-secret-key
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
GOOGLE_API_KEY=
CLOUDFLARE_API_KEY=
CLOUDFLARE_ACCOUNT_ID=
CEREBRAS_API_KEY=如需修改数据库路径、日志级别、上传目录,可继续参考 backend/.env.example。
- AI 提取结果在保存前仍建议人工复核一次。
- 对于重复竞赛,优先使用“新旧对比 + 合并预览”确认字段变化后再保存。
- 首次启动新版本时,后端会自动补齐 SQLite 新增字段。
本轮改动已完成以下验证:
- 前端生产构建通过:
npm run build - 后端语法检查通过:
python -m compileall backend
.ics日历提醒导出- 仅显示变更字段的差异视图
- 系列赛事归档与知识图谱
- 组队匹配与角色协作推荐
维护状态:持续迭代中