Skip to content

create-meng/AI-Competition-Assistant

Repository files navigation

AI 竞赛助手

面向高校竞赛场景的 AI 驱动信息整理平台,支持竞赛信息检索、AI 结构化提取、竞赛去重合并、个人竞赛看板与报名跟进。

项目亮点

  • 竞赛列表支持关键词、主办方、截止日期区间、分类、排序,并与 URL 参数同步,便于分享和复现筛选条件。
  • AI 提取支持网页、文本、文件等输入来源,可将非结构化材料整理成结构化竞赛数据。
  • 保存到竞赛库时支持重名检测、新旧字段对比、智能合并、覆盖更新与确认保存。
  • 竞赛详情页支持按角色跳转官方入口,并可直接加入个人看板。
  • 个人竞赛看板支持状态跟踪、提醒天数、个人备注,并在首页、列表页、详情页之间实时联动。

本轮已完成更新

1. 竞赛筛选闭环

  • 前后端参数完全对齐,已支持:
    • keyword
    • organizer
    • deadline_from
    • deadline_to
    • category
    • sort_by
    • sort_order
  • 筛选条件会同步到浏览器地址栏,刷新和分享后仍可还原当前视图。

2. AI 保存链路完善

  • AI 提取页统一走同一套 API 地址生成逻辑,避免前后端分离部署后流式接口失效。
  • 保存竞赛前会自动清洗日期字段,兼容 YYYY-MMYYYY年M月 等输入。
  • 重名竞赛弹窗新增:
    • 新旧字段对比
    • 合并预览三栏对比
    • 友好字段显示
  • 对比面板已修复以下字段的显示和类型问题:
    • 截止日期
    • 开始日期
    • 发布时间
    • 参赛形式
    • 最少人数
    • 最多人数
    • 指导老师
    • 适合对象
    • 官网链接 / 参赛入口 / 教师入口
    • 参赛要求 / 联系方式 / 奖项信息 / 补充说明

3. 个人竞赛看板

  • 后端新增用户竞赛跟踪能力。
  • 首页新增“我的竞赛看板”“即将截止”“待处理事项”“全部看板项目”。
  • 详情页支持:
    • 加入看板
    • 移出看板
    • 更新状态
    • 调整提醒天数
    • 填写个人备注
  • 列表页新增“已加入看板”状态标记。
  • 使用共享状态仓库驱动,页面间切换无需手动刷新。

4. 交互与提示修复

  • 修复了部分成功提示被乱码误判成报错的问题。
  • 统一了部分 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

快速开始

1. 启动后端

cd backend
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000

2. 启动前端

cd frontend
npm install
npm run dev

3. 访问地址

环境变量

后端 .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 日历提醒导出
  • 仅显示变更字段的差异视图
  • 系列赛事归档与知识图谱
  • 组队匹配与角色协作推荐

维护状态:持续迭代中

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors