Skip to content

Miduo666/bookstore_manager_system

Repository files navigation

图书销售管理系统

这是一个完整的图书销售管理系统,用于书店日常经营管理,包含前端和后端实现,实现了商品管理、销售、会员管理、库存管理等完整功能。

系统功能

销售管理

  • 图书零售:支持会员和非会员销售,自动计算折扣
  • 多种支付方式:支持现金、银行卡、微信、支付宝及会员余额支付
  • 退货处理:支持整单或部分商品退货,自动处理库存和积分
  • 订单查询:按日期、会员名称、订单号等多维度查询订单
  • 会员积分:销售时自动计算并记录积分

会员管理

  • 会员注册与审核:支持会员信息登记与审批流程
  • 会员分组:可自定义会员等级,设置不同折扣率和积分规则
  • 会员账户:管理会员余额、积分及交易记录
  • 消费统计:提供会员消费数据分析和可视化展示
  • 会员搜索:支持按姓名、手机号等信息快速查找会员

商品管理

  • 图书编目:支持图书基础信息录入与维护
  • 库存管理:记录图书进销存情况,支持库存预警
  • 多维度搜索:按书名、作者、出版社等多条件搜索
  • 商品分类:支持按类别(文学、科技、教育等)管理图书
  • 价格管理:灵活调整图书价格,支持折扣设置

数据统计与报表

  • 销售统计:按时间段、商品类别等维度统计销售情况
  • 库存报表:提供库存状态分析和预警提示
  • 会员统计:分析会员消费习惯和忠诚度
  • 数据导出:支持将销售数据导出为Excel格式
  • 可视化展示:通过图表直观展示经营数据

系统管理

  • 用户权限:区分管理员、操作员和会员不同角色权限
  • 系统设置:配置系统参数和业务规则
  • 操作日志:记录重要操作,便于审计和问题追踪

技术栈

前端

  • 框架:React 18 + TypeScript
  • UI组件:Ant Design 5
  • 状态管理:Redux Toolkit
  • 路由:React Router 6
  • 请求处理:Axios
  • 构建工具:React App Rewired

后端

  • 运行环境:Node.js
  • 框架:Express
  • 语言:TypeScript
  • 数据库ORM:TypeORM
  • 数据库:MySQL
  • 认证:JWT
  • 邮件服务:Nodemailer

项目结构

bookstore/
├── frontend/          # React前端项目
│   ├── src/
│   │   ├── components/  # 公共组件
│   │   ├── pages/       # 页面组件
│   │   │   ├── sales/     # 销售相关页面
│   │   │   ├── members/   # 会员管理页面
│   │   │   ├── products/  # 商品管理页面
│   │   │   ├── reports/   # 报表统计页面
│   │   │   └── returns/   # 退货管理页面
│   │   ├── services/    # API服务
│   │   ├── types/       # TypeScript类型定义
│   │   ├── utils/       # 工具函数
│   │   ├── hooks/       # 自定义React钩子
│   │   ├── store/       # Redux状态管理
│   │   └── router/      # 路由配置
│
├── backend/           # Node.js后端项目
│   ├── src/
│   │   ├── controllers/ # 控制器
│   │   │   ├── sale.controller.ts    # 销售控制器
│   │   │   ├── member.controller.ts  # 会员控制器
│   │   │   ├── product.controller.ts # 商品控制器
│   │   │   ├── return.controller.ts  # 退货控制器
│   │   │   └── auth.controller.ts    # 认证控制器
│   │   ├── entities/    # 数据实体
│   │   ├── routes/      # 路由
│   │   ├── middlewares/ # 中间件
│   │   └── config/      # 配置文件
│
├── 启动请点击.bat         # 快速启动脚本
├── 第一次请运行此脚本.bat   # 首次安装依赖脚本
└── 从0构建指引.txt        # 系统环境搭建指南

开始使用

环境要求

  • Node.js >= 14
  • MySQL >= 8.0
  • npm >= 7

初始安装

  1. 第一次使用时,请以管理员身份运行第一次请运行此脚本.bat安装所有依赖
  2. 如果从零开始搭建,请参考从0构建指引.txt进行环境配置以及一些细节

配置数据库

  1. 确保您的MySQL服务已启动
  2. 修改 backend/.env 文件中的数据库配置:
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=your_username
DB_PASSWORD=your_password
DB_DATABASE=bookstore

启动系统

直接双击启动请点击.bat即可同时启动前端和后端服务

访问系统

用户角色和权限

  • 管理员:拥有所有功能权限,可管理用户、系统设置等
  • 操作员:负责日常销售、库存管理等操作
  • 会员:查看商品、个人订单和积分记录等

关键业务流程

  1. 销售流程:选择商品 → 添加到购物车 → 选择会员(可选) → 计算折扣 → 选择支付方式 → 完成结算
  2. 退货流程:查询订单 → 选择退货商品 → 确认退货数量 → 处理退款 → 更新库存和积分
  3. 会员管理:注册会员 → 审核信息 → 分配会员等级 → 享受相应折扣和积分
  4. 库存管理:登记新书 → 记录库存 → 销售减库存 → 统计库存状态

特色功能

  1. 多种支付方式集成:支持现金、银行卡、电子支付等多种结算方式
  2. 灵活的会员体系:可自定义会员等级、折扣规则和积分政策
  3. 完善的退货流程:支持部分退货和全单退货,自动处理库存和财务
  4. 数据导出功能:支持将销售记录、库存数据等导出为Excel文件
  5. 邮件通知:重要操作可通过邮件通知相关人员

About

基于node.js以及typescript编写的数据库课程设计

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages