Commit Graph

9 Commits

Author SHA1 Message Date
charilezhou
90513e8278 feat: 实现完整的 OIDC Provider 功能
- 后端:基于 node-oidc-provider 实现 OIDC Provider
  - 支持 authorization_code、refresh_token、client_credentials 授权类型
  - Redis adapter 存储会话数据,Prisma adapter 存储持久化数据
  - 客户端管理 CRUD API(创建、更新、删除、重新生成密钥)
  - 交互 API(登录、授权确认、中止)
  - 第一方应用自动跳过授权确认页面
  - 使用 cuid2 生成客户端 ID

- 前端:OIDC 客户端管理界面
  - 客户端列表表格(支持分页、排序)
  - 创建/编辑弹窗(支持所有 OIDC 配置字段)
  - OIDC 交互页面(登录表单、授权确认表单)

- 共享类型:添加 OIDC 相关 TypeScript 类型定义

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 17:22:32 +08:00
charilezhou
3ae13fd512 feat: 添加教学管理模块(教师、学生、班级)
后端:
- 新增 Teacher、Student、Class 模块及 CRUD 接口
- 新增 ClassTeacher 多对多关系支持任课教师管理
- Student 支持班级关联查询
- Class 支持班主任一对一和任课教师多对多关系
- 更新 Prisma schema 和种子数据

前端:
- 新增教师、学生、班级管理页面
- 新增对应的 hooks 和 services
- 更新路由常量和 hooks 导出

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 15:39:10 +08:00
charilezhou
d9673e2ba3 chore: 更新配置和依赖
- 添加 MinIO 和邮件服务相关环境变量
- 添加 @nestjs-modules/mailer, minio, multer 等依赖
- 更新 app.module.ts 注册新模块
- docker-compose 添加 MinIO 服务配置

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 12:36:20 +08:00
charilezhou
df69eedcd9 refactor(api): 移除 barrel imports 改用直接导入
- 将所有模块的 barrel imports 改为直接导入具体文件
- 删除不再需要的 index.ts 文件(共 10 个)
- 更新 CLAUDE.md 添加禁止后端使用 barrel imports 的规范
- 避免循环依赖问题,提高代码可追溯性

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 14:39:33 +08:00
charilezhou
15d6e6e29e feat(api): 实现权限管理系统
- 添加 Menu、Role、Permission 数据模型及关联表
- 实现 PermissionModule 提供菜单、角色、权限 CRUD
- 扩展 AuthController 添加获取用户菜单权限接口
- PrismaService 支持新模型的软删除
- 添加数据库种子脚本

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 14:05:09 +08:00
charilezhou
c958271027 feat: 完善认证系统和前端 Demo 页面
- 添加图形验证码模块(登录/注册需验证码)
- 添加 refresh token 机制和 API 接口
- 认证响应返回 token 有效期
- 添加 Redis 模块支持验证码存储
- 添加前端验证码组件和用户管理 Demo 页面
- 添加 CRUD 基类和分页响应 DTO mixin
- 添加请求/响应加密模块(AES-256-GCM)
- 完善共享类型定义和前后端类型一致性
- 更新 CLAUDE.md 文档

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 19:17:11 +08:00
Charile Zhou
3567aaff4d feat: 切换 PostgreSQL 并实现软删除功能
- 数据库从 SQLite 切换到 PostgreSQL,添加 Docker Compose 配置
- 使用 dotenv-cli 支持 .env 和 .env.local 环境变量加载
- 使用 Prisma $extends 实现底层自动软删除机制
- 新增用户恢复和查询已删除用户的 API 接口
- 更新文档和类型定义
2025-12-31 20:24:54 +08:00
charilezhou
458348a1a3 chore: 升级 Next.js 16 和 ESLint 9
- Next.js 从 15.1.3 升级到 16.1.1
- ESLint 从 8.x 升级到 9.39,迁移到 flat config 格式
- 将 .eslintrc.js 替换为 eslint.config.mjs
- 更新 eslint-config-next 到 16.1.1
- 添加 eslint-plugin-react 支持
- 更新 CLAUDE.md 版本信息

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 15:37:43 +08:00
charilezhou
74ced8c0c6 chore: 初始化 monorepo 项目脚手架
- 配置 pnpm workspace + Turborepo
- 创建 Next.js 15 前端应用 (apps/web)
- 创建 NestJS 10 后端应用 (apps/api)
- 集成 Prisma ORM + Swagger + JWT 认证
- 添加共享包 (packages/shared, eslint-config, typescript-config)
- 添加项目文档 (README, CLAUDE.md, docs/design.md)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 14:51:40 +08:00