7.4 KiB
7.4 KiB
[Warning] 此文件为只读,禁止 AI 工具修改此文件
一、作业考核核心目标
- 掌握 gRPC 两层服务架构调用,只拆分 Web 服务、Logic 业务服务,架构轻量化易上手。
- 熟练使用 Gin 开发标准接口,
实现 JWT 双角色登录、权限精准隔离管控。 - 完成私有 OSS 全流程对接,使用签名 URL 安全完成简历上传、下载,保障文件访问安全。
- 基于 Eino 框架实现前端 AI 对话,联动查询 MySQL 真实业务数据,全程不做向量、不做 RAG、不做简历智能匹配。
- 本次不考察docker,前端技术栈随意。
- key相关不提交(真实业务中是不需要提交的),提交了也不扣分,做好保护即可。
二、前后端开发硬性要求
1. 两套独立前端页面工程
- HR 管理端前端:专属独立路由,包含岗位全量管理、候选人台账查看、AI 智能对话问答窗口。注意:有多个HR账号,随意注册HR或者候选人。一个用户只有一种角色。
- 候选人用户端前端:专属独立路由,包含岗位浏览、账号注册登录、个人资料编辑、简历OSS上传、岗位一键投递。
- 前端仅负责页面渲染、交互操作、接口请求,所有权限校验、文件处理、AI 逻辑、业务数据读写全部封装在后端,前端禁止写核心业务逻辑。
2. HR 管理端核心功能细节
- 独立账号密码登录,后端统一签发、校验 JWT 令牌,无令牌禁止访问后台功能。
- 自主新增、编辑、下架个人发布的招聘岗位,仅能管理本人创建岗位,无权操作他人岗位。
- 分页查看所有岗位对应的投递候选人、结构化个人档案、OSS 云端简历记录。
- 前端内置常驻 AI 对话窗口,支持自然语言问答,可查询投递总人数、单岗位投递统计、符合条件候选人筛选、岗位热度数据等MySQL后台真实数据。
- AI 对话自动留存聊天记录入库,页面刷新后自动加载历史对话上下文,不丢失交互记录。
3. 候选人用户端功能
- 游客免登录权限:无需注册、无需登录,即可直接浏览全平台公开岗位列表,无任何权限门槛。
- 投递强制校验规则:仅注册并成功登录后,才会展示岗位投递按钮;未完善结构化个人资料、未上传合规简历,直接拦截投递请求,弹窗提示补齐资料。
- 结构化个人档案:必填填写姓名、联系电话、最高学历、毕业院校、工作/项目经历、核心技能标签,所有信息实时存入MySQL,支持用户随时前端编辑、后端同步更新。可选功能:简历解析自动填充相关字段。
- 简历文件格式强限制:仅支持 PDF、DOC、DOCX 三种标准办公格式,后端严格校验文件后缀与文件头,拦截图片、压缩包、TXT 等非法格式。简历此次只考察OSS上传,不与AI交互。
- 合规简历直传私有OSS,生成签名访问链路,本地不缓存、不留存任何简历源文件。
三、技术架构硬性要求
- Web 服务(Gin 网关层):仅负责接收前端 HTTP 请求、全局跨域处理、JWT 统一鉴权、请求参数合法性校验,不编写任何核心业务代码,所有能力全部通过 gRPC 远程调用 Logic 服务。
- Logic 核心业务服务:集中承载全量后端逻辑,包含用户权限管控、岗位业务处理、私有OSS签名调度、MySQL全量数据读写、Eino AI对话封装,独立部署运行。
- 通信强制规范:Web 服务与 Logic 服务之间,只允许 gRPC 远程跨服务调用,禁止同工程本地函数直连调用,守住微服务分层考点。
- 数据存储:采用MySQL数据库、岗位数据、候选人结构化档案、岗位投递关联数据、AI对话历史记录。
- 文件存储:所有合规简历文件仅归档至私有OSS Bucket,严禁本地文件夹临时存储兜底。
四、私有 OSS 硬性落地规范
- 学生自主完成OSS平台注册,手动创建专属私有Bucket,彻底关闭匿名访问、公开读权限,保障简历隐私安全。
- OSS密钥、访问域名、Bucket名称等敏感配置,统一写入独立配置文件,禁止硬编码写入业务代码提交仓库。
五、Eino 框架使用规范+AI对话增强细节
- 轻量化使用:仅调用Eino基础Chat对话组件。
- AI业务问答固定流程:HR输入自然语言提问 → 后端解析意图查询MySQL真实业务数据 → 拼接标准业务上下文+用户问题 → 调用Eino推送大模型 → 返回规范自然语言统计回答。
- 对话持久化增强:每一条HR提问、AI回复自动成对存入MySQL对话历史表,绑定HR管理员账号ID。
- 前端会话联动:HR重新进入AI对话页面,自动从MySQL加载过往全部聊天上下文,延续历史问答交互。
- 底线要求:必须完整引用Eino框架依赖编程,禁止裸写HTTP接口直连大模型完成AI功能糊弄验收。
六、标准化目录结构
所有代码放到:git根目录/final_homework/ (注意没有homework这一层)
- 📁 hr-frontend 文件夹:存放完整HR管理端前端全部源码
- 📁 user-frontend 文件夹:存放候选人用户端前端全部源码
- 📁 web-gin-service 文件夹:完整Gin Web网关服务工程代码
- 📁 logic-grpc-service 文件夹:完整Logic核心业务gRPC服务代码
- 📄 api.md:项目接口说明文档,统一规范所有前后端对接接口
- 📄 db.md:数据库设计文档,包含所有数据表结构、字段说明、关联关系
- 📄 README.md:项目完整启动部署文档,写明环境配置、服务启动顺序、OSS密钥配置方式,项目亮点等
六、作业提交与视频录制规范要求
1. 视频硬性录制要求
- 视频:禁止额外剪辑拼接、后期特效包装,保证原生实操画面真实有效。
- 视频必录核心内容:完整演示系统全链路核心实操功能;口述讲解本次作业两大核心技术点:两层gRPC服务调用逻辑、私有OSS签名URL安全上传下载;可自愿补充Eino基础对话实操要点、个人开发优化思路,无额外无关冗余内容。
- 全程实操配合:后台服务启动、前端页面操作、接口联调等全流程,同步搭配实时语音讲解,禁止无声黑屏静默录制。
2. 统一提交格式与提交入口
- 视频文件命名强制规范:严格按照格式命名,姓名_学号_全栈大作业.mp4,禁止私自修改命名格式、随意缩写信息。
- 固定提交地址:统一线上填报提交,提交入口:https://f.kdocs.cn/g/Qvi7GT0p/,进入【2027届全栈开发实战:大作业提交】WPS表单,按页面提示逐项填写信息、上传视频与配套源码材料。
- 表单填报必填项:如实填写本人姓名、对应技术方向、所属学校、完整学号,规范上传合规演示视频,据实填写本次作业收获与开发难点,无特殊疑问正常提交即可。
七、拓展设计方案思考题(必答,无需编码实现)
- 额外新建文件:answer.md,专门用来写本题答案。
- 设计题目:未来所有的系统都应该可以和AI Agent进行交互和对话。如果需要对接集成到 OpenClaw或者Hermes等三方AI Agent 平台中,请你详细写出完整接入实施方案,只写设计思路与流程,不需要写任何代码实现。
- 答题要求:逻辑清晰、步骤完整,所有细节都有考虑到。