医科高校 AI 学习中心 · 前端(三端)
基于 Next.js 14(App Router)+ TypeScript + Tailwind CSS 的三端前端,与 NestJS 后端真实联调。
三端
- 学生端
/student:学习空间、能力画像、职业规划、课程对练、临床对话对练、研究资料查询、AI 协同训练 - 导师端
/mentor:题目审核、成果点评、带教学生画像 - 管理端
/admin:技能治理、权限与合规
登录后按账号角色自动进入对应工作台;AppShell 做角色访问守卫,跨角色访问会被拦截。
与后端联调
- 所有请求走
/api/*,由next.config.mjs的 rewrites 代理到后端(默认http://localhost:3000),避免浏览器跨域。 - 鉴权:登录/注册成功后将 JWT 存入
localStorage,后续请求自动附加Authorization: Bearer <token>。 - 错误:后端统一错误体(
AppError.toJSON())由ApiError承载,UI 展示message。
可用环境变量 BACKEND_URL 覆盖后端地址(如部署时)。
本地运行
# 1) 先启动后端(仓库根目录)
npm run start:dev # 监听 3000,需 .env 中 DB_ENABLED 与 PostgreSQL(可选)
# 2) 启动前端(frontend 目录)
cd frontend
npm install
npm run dev # 监听 4000
打开 http://localhost:4000 ,注册一个账号(可选角色:学生 / 导师 / 管理员)后即可进入对应工作台。
构建
npm run build && npm run start
目录
src/
app/ # App Router 页面(login / student / mentor / admin)
components/ # AppShell(外壳+守卫)与基础 UI 组件
lib/
api.ts # fetch 封装:鉴权头、错误解析(ApiError)
auth-context.tsx # 登录态上下文(login/register/logout/me)
services.ts # 按后端模块组织的 API 服务函数
types.ts # 与后端对齐的类型与枚举