QFace 是一个从 iFace 固定题库延伸出来的中文面试题学习与问答社区。它保留题库本身,但不导入、不展示 iFace 里的 AI 生成答案;每道题都以“固定问题 + 用户作答 + 讨论沉淀”的方式组织。
核心理念: 与其只看一份不一定好读的标准答案,不如先写出自己的理解,再参考其他人的回答、详解和讨论,把八股题真正变成能表达、能复盘、能长期积累的知识。
- 固定题库:题目来自 iFace,覆盖前端、AI Agent、Golang、Java 等方向
- 高效筛选:支持按岗位、模块、难度、关键词筛选,并记住上次学习位置
- 用户作答:每道题支持「回答」和「详解」两份草稿,本地实时保存
- Markdown 编辑:支持快捷工具栏、编辑态高亮、预览、代码高亮和全屏双栏编辑
- 社区讨论:公开回答可被点赞、点踩、回复和采纳,逐步沉淀更好的人类答案
- 面经帖子:发布面试经历,支持面试日期、顶/踩、回复,并把面试题快速关联回 QFace 题库
- 学习进度:三颗星掌握度、做过题数、模块完成进度和本地收藏
- 数据导出:笔记页导出 Markdown,账号面板备份 / 导入 JSON
- 低运维部署:Cloudflare Pages + Pages Functions + D1,无需自购服务器
线上版本:
支持 GitHub 登录。未登录也可以在本地写作答、标记掌握度和收藏题目。
# 克隆仓库
git clone https://github.com/dogxii/QFace.git
cd QFace
# 安装依赖
bun install
# 生成题库数据
bun run content:generate
# 启动开发服务器
bun run dev如需完整 API、OAuth 和 D1 环境:
bun run build
bun run db:migrate:local
bun run pages:dev复制环境变量模板:
cp .env.example .env需要配置:
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
COOKIE_SECRET=replace-with-a-long-random-secret
SITE_URL=http://localhost:8788
VITE_QFACE_REPO_URL=https://github.com/dogxii/QFaceCOOKIE_SECRET 用于签名 OAuth state 和 session cookie,生产环境请使用足够长的随机字符串。
- 打开任意题目详情页
- 在「回答」里写适合面试时直接表达的版本
- 在「详解」里补充原理、例子、代码和易错点
- 需要公开时再点击发布;草稿不会自动进入社区流
- 右上角头像进入账号面板,可查看学习进度、备份和导入 JSON
- 进入「笔记」页可搜索自己的作答,并导出 Markdown
- 收藏仅保存在本地,适合做轻量题目书签
- 进入「面经」页,点击「写面经」
- 填写标题,可选设置面试日期
- 粘贴真实面试问题和过程,按 Markdown 习惯空一行分段
- 使用「关联题目」按岗位搜索,并插入带题目标题的
[↗]题库链接 - 也可以点击「自动匹配题库」,快速把常见八股问题连回题库
默认读取相邻的 ../iFace/public/questions:
bun run content:generate如果 iFace 路径不同,可指定目录:
IFACE_QUESTIONS_DIR=/path/to/iFace/public/questions bun run content:generate生成物只包含题面、分类、模块、难度、标签、来源和内容哈希;iFace 的 answer 字段不会进入 QFace。
| 模块 | 方案 |
|---|---|
| 前端 | React 19 + Vite + TanStack Router |
| 编辑器 | CodeMirror + Markdown / GFM / highlight.js |
| API | Cloudflare Pages Functions |
| 数据库 | Cloudflare D1 |
| 登录 | GitHub OAuth + HttpOnly session cookie |
| 本地状态 | localStorage |
| 工具链 | Bun + TypeScript + Biome + Vitest + Wrangler |
bun run check # Biome + TypeScript
bun run check:content # 校验题库生成结果
bun run test # 单元测试
bun run build # 生产构建部署说明见 docs/DEPLOYMENT.md。
产品与技术方案见 docs/QFACE_PRODUCT_AND_TECH_PLAN.md。
如果觉得这个项目对你有帮助,欢迎请我喝咖啡 ☕️
采取自愿原则,收到的赞赏将用于提高开发者积极性和开发环境。



