Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ask DeepWiki

BookAI

一个智能化的图书管理系统,支持通过自然语言与AI对话进行图书管理操作。系统采用前后端分离架构,提供现代化的Web界面和强大的AI交互功能。

✨ 功能特性

🤖 AI智能对话

  • 自然语言交互:通过自然语言进行图书管理操作
  • 智能理解:支持多种表达方式的用户指令
  • 操作记录:完整的AI对话历史记录
  • 多语言支持:支持中文自然语言处理

📚 图书管理

  • 图书入库:添加新图书,支持ISBN、作者、出版社等信息
  • 图书出库:删除或下架图书
  • 库存管理:实时跟踪图书库存状态
  • 分类管理:图书分类和标签管理
  • 位置管理:图书存放位置管理

👥 用户管理

  • 用户注册/登录:支持用户注册和身份验证
  • 角色权限:管理员、图书管理员、读者三种角色
  • 个人信息:用户资料管理
  • JWT认证:安全的身份验证机制

📖 借阅管理

  • 借书功能:用户借阅图书
  • 还书功能:图书归还处理
  • 借阅历史:完整的借阅记录查询
  • 逾期管理:自动计算逾期状态
  • 预约功能:图书预约管理

📊 数据统计

  • 借阅统计:借阅量、热门图书等统计
  • 库存分析:库存状态、周转率分析
  • 用户活跃度:用户借阅行为分析
  • 可视化图表:直观的数据展示

🎨 现代化UI

  • 响应式设计:适配各种设备屏幕
  • 美观界面:基于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

1. 克隆项目

git clone https://github.com/your-username/ai-booksys.git
cd ai-booksys

2. 安装依赖

npm run install-all

3. 配置数据库

  1. 确保MySQL服务已启动
  2. 复制环境配置文件:
cd server
cp .env.example .env
  1. 修改 server/.env 中的数据库配置:
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=ai_booksys
  1. 初始化数据库:
npm run setup-db

4. 配置AI服务

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

5. 启动应用

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 - 运行测试

🤖 AI对话示例

系统支持多种自然语言表达方式,以下是一些示例:

图书管理

  • "帮我添加一本《三体》到图书馆"
  • "我想添加一本新书,书名是《百年孤独》,作者是加西亚·马尔克斯"
  • "删除《某本书》这本书"
  • "查询一下《红楼梦》的库存情况"
  • "显示所有已借出的图书"

借阅管理

  • "张三想借《百年孤独》"
  • "李四还了《1984》这本书"
  • "王五预约了《三体》"
  • "查看张三的借阅历史"
  • "显示所有逾期未还的图书"

用户管理

  • "添加一个新用户,姓名是李明,角色是读者"
  • "修改用户张三的信息"
  • "查看所有用户列表"

统计查询

  • "显示本月的借阅统计"
  • "查询最受欢迎的图书"
  • "显示库存不足的图书"

📡 API接口

认证相关

  • 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 - 归还图书

AI对话

  • POST /api/ai/chat - AI对话接口

数据统计

  • GET /api/stats/overview - 获取统计概览
  • GET /api/stats/borrowings - 借阅统计
  • GET /api/stats/books - 图书统计

🔒 安全特性

  • JWT身份验证 - 安全的用户认证
  • 密码加密 - bcryptjs加密存储
  • CORS配置 - 跨域安全控制
  • 请求频率限制 - 防止API滥用
  • Helmet安全头 - 增强HTTP安全性
  • 输入验证 - 防止恶意输入

🚀 部署

生产环境部署

  1. 构建前端应用:
npm run build
  1. 配置生产环境变量
  2. 启动后端服务:
cd server
npm start

⭐ 如果这个项目对你有帮助,请给它一个星标!

About

一个智能化的图书管理系统,支持通过自然语言与AI对话进行图书管理操作。系统采用前后端分离架构,提供现代化的Web界面和强大的AI交互功能

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages