一个智能化的图书管理系统,支持通过自然语言与AI对话进行图书管理操作。系统采用前后端分离架构,提供现代化的Web界面和强大的AI交互功能。
- 自然语言交互:通过自然语言进行图书管理操作
- 智能理解:支持多种表达方式的用户指令
- 操作记录:完整的AI对话历史记录
- 多语言支持:支持中文自然语言处理
- 图书入库:添加新图书,支持ISBN、作者、出版社等信息
- 图书出库:删除或下架图书
- 库存管理:实时跟踪图书库存状态
- 分类管理:图书分类和标签管理
- 位置管理:图书存放位置管理
- 用户注册/登录:支持用户注册和身份验证
- 角色权限:管理员、图书管理员、读者三种角色
- 个人信息:用户资料管理
- JWT认证:安全的身份验证机制
- 借书功能:用户借阅图书
- 还书功能:图书归还处理
- 借阅历史:完整的借阅记录查询
- 逾期管理:自动计算逾期状态
- 预约功能:图书预约管理
- 借阅统计:借阅量、热门图书等统计
- 库存分析:库存状态、周转率分析
- 用户活跃度:用户借阅行为分析
- 可视化图表:直观的数据展示
- 响应式设计:适配各种设备屏幕
- 美观界面:基于Ant Design的现代化UI
- 用户体验:流畅的交互体验
- 主题定制:支持主题切换
- Node.js - JavaScript运行时环境
- Express.js - Web应用框架
- MySQL - 关系型数据库
- JWT - 身份验证
- bcryptjs - 密码加密
- OpenAI API - 自然语言处理
- CORS - 跨域资源共享
- Helmet - 安全中间件
- Express Rate Limit - 请求频率限制
- React 18 - 用户界面库
- TypeScript - 类型安全的JavaScript
- Ant Design - UI组件库
- Tailwind CSS - 实用优先的CSS框架
- React Router - 客户端路由
- Axios - HTTP客户端
- React Hot Toast - 通知组件
- Lucide React - 图标库
- Concurrently - 并行运行多个命令
- Nodemon - 开发环境自动重启
- PostCSS - CSS后处理器
- Node.js >= 16.0.0
- MySQL >= 8.0
- npm >= 8.0.0
git clone https://github.com/your-username/ai-booksys.git
cd ai-booksysnpm run install-all
- 确保MySQL服务已启动
- 复制环境配置文件:
cd server
cp .env.example .env- 修改
server/.env中的数据库配置:
DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password DB_NAME=ai_booksys
- 初始化数据库:
npm run setup-db
在 server/.env 中配置OpenAI API:
OPENAI_API_KEY=your_openai_api_key_here OPENAI_BASE_URL=https://api.siliconflow.cn/v1 OPENAI_MODEL=Qwen/Qwen3-32B
cd ..
npm run dev访问 http://localhost:3000 开始使用
- 用户名: admin
- 密码: admin123
ai-booksys/
├── client/ # 前端React应用
│ ├── public/ # 静态资源
│ │ ├── components/ # 可复用组件
│ │ ├── pages/ # 页面组件
│ │ ├── contexts/ # React上下文
│ │ ├── utils/ # 工具函数
│ │ ├── App.tsx # 主应用组件
│ │ └── index.tsx # 应用入口
│ ├── package.json # 前端依赖配置
│ └── tsconfig.json # TypeScript配置
├── server/ # 后端Node.js服务
│ ├── src/
│ │ ├── routes/ # API路由
│ │ ├── services/ # 业务逻辑服务
│ │ ├── middleware/ # 中间件
│ │ ├── database/ # 数据库相关
│ │ └── app.js # 应用入口
│ ├── .env.example # 环境变量示例
│ └── package.json # 后端依赖配置
├── package.json # 根项目配置
└── README.md # 项目文档
npm run dev- 同时启动前后端开发服务器npm run server- 仅启动后端服务器npm run client- 仅启动前端开发服务器npm run build- 构建前端生产版本npm run install-all- 安装所有依赖npm run setup-db- 初始化数据库
npm start- 启动生产服务器npm run dev- 启动开发服务器(自动重启)npm run setup-db- 初始化数据库
npm start- 启动开发服务器npm run build- 构建生产版本npm test- 运行测试
系统支持多种自然语言表达方式,以下是一些示例:
- "帮我添加一本《三体》到图书馆"
- "我想添加一本新书,书名是《百年孤独》,作者是加西亚·马尔克斯"
- "删除《某本书》这本书"
- "查询一下《红楼梦》的库存情况"
- "显示所有已借出的图书"
- "张三想借《百年孤独》"
- "李四还了《1984》这本书"
- "王五预约了《三体》"
- "查看张三的借阅历史"
- "显示所有逾期未还的图书"
- "添加一个新用户,姓名是李明,角色是读者"
- "修改用户张三的信息"
- "查看所有用户列表"
- "显示本月的借阅统计"
- "查询最受欢迎的图书"
- "显示库存不足的图书"
POST /api/auth/register- 用户注册POST /api/auth/login- 用户登录GET /api/auth/profile- 获取用户信息
GET /api/books- 获取图书列表POST /api/books- 添加新图书PUT /api/books/:id- 更新图书信息DELETE /api/books/:id- 删除图书
GET /api/borrowings- 获取借阅记录POST /api/borrowings- 创建借阅记录PUT /api/borrowings/:id/return- 归还图书
POST /api/ai/chat- AI对话接口
GET /api/stats/overview- 获取统计概览GET /api/stats/borrowings- 借阅统计GET /api/stats/books- 图书统计
- JWT身份验证 - 安全的用户认证
- 密码加密 - bcryptjs加密存储
- CORS配置 - 跨域安全控制
- 请求频率限制 - 防止API滥用
- Helmet安全头 - 增强HTTP安全性
- 输入验证 - 防止恶意输入
- 构建前端应用:
npm run build
- 配置生产环境变量
- 启动后端服务:
cd server
npm start⭐ 如果这个项目对你有帮助,请给它一个星标!