基于Python的前后端分离响应式
医疗耗材出入库管理系统

答辩演示

小组成员:
喻力, 朱偲俊, 冯子维, 林杰雯, 钟梽霖, 陈星宇

日期:2025年6月5日

项目背景与需求分析

  • 传统医疗耗材管理方式:效率低下易出错,依赖手工或简单电子表格。
  • 现有系统痛点:界面陈旧,尤其不适应移动办公的需求。
  • 项目目标:开发一个高效、易用,并且能够跨设备友好访问的管理系统。
  • 核心需求:提高管理效率和准确性,确保耗材使用和补充及时高效,减少浪费,降低成本。

系统目标 (1/2)

  • 效率提升自动化库存更新实时监控,提高库存管理效率。
  • 成本控制:精确记录与分析,减少耗材浪费,避免过度采购。
  • 流程优化:直观易用界面,简化出入库流程,降低操作错误率。

系统目标 (2/2)

  • 管理强化:操作全程记录,提高透明度与可追溯性
  • 决策支持:提供数据报表,辅助管理层决策
  • 体验升级响应式设计确保PC、平板、手机等设备上均有良好用户体验

项目核心创新点

  • 架构创新:采用前后端分离的开发模式。
    • 后端:Python 及其主流Web框架 Django
    • 前端:现代JavaScript框架 Vue.js
  • 体验创新:实现响应式网页设计
    • 确保系统无论在PC大屏、平板还是手机小屏上,都能提供美观、便捷的用户体验
    • 解决了传统系统在移动场景下使用不便的痛点。

项目规划与职责 (喻力)

在项目中,喻力 同学主要负责:

  • 整体项目规划与需求分析。
  • 项目进度管理与风险控制。
  • 团队协调与沟通。
  • 制定详细开发计划,每周组织例会,确保各模块按时交付。
  • 协调解决跨模块的技术问题。

后端技术选型

  • 主要开发语言Python
    • 简洁的语法、强大的标准库和第三方库生态。
  • Web框架Django
    • 高效开发稳定可靠的后端服务。
    • Django ORM:便捷的数据库操作。
    • Django REST framework:用于快速构建RESTful API
  • 数据库:MySQL

系统架构图 (后端视角)

系统架构图

示意图:前端通过API与后端交互,后端包含应用层(Django)、数据访问层(ORM)和数据库(MySQL)。

架构特点:前后端分离,后端负责业务逻辑、数据持久化,并提供API接口。

RESTful API 设计原则

  • 遵循RESTful规范:接口清晰、语义明确。
  • 数据传输格式:统一使用JSON
  • 安全性
    • 所有API实现身份认证与权限校验 (如JWT)。
    • 关键操作记录日志。
  • 版本控制:考虑API版本管理 (如 /api/v1/...)。

核心功能API示例

  • 用户认证/auth/login, /auth/register
  • 耗材管理
    • GET /api/materials (列表), POST /api/materials (新增)
    • GET /api/materials/{id} (详情), PUT /api/materials/{id} (修改), DELETE /api/materials/{id} (删除)
  • 库存管理GET /api/inventory, GET /api/inventory/alerts (预警)
  • 入库操作POST /api/inbound
  • 出库操作POST /api/outbound
  • 历史记录GET /api/history (支持查询参数)

数据库交互与后端职责 (朱偲俊)

在项目中,朱偲俊 同学主要负责:

  • 后端Django框架的开发。
  • RESTful API的设计与实现。
  • 核心业务逻辑处理。
  • 通过Django ORM与MySQL数据库进行高效交互,实现数据持久化。
  • 编写后端单元测试,保障核心业务逻辑的稳定性和正确性。

前端技术选型 (1/2)

  • 核心框架Vue.js
    • 特性:轻量级、渐进式、组件化。
    • 优势:适合构建交互丰富的单页面应用 (SPA)。
  • 路由管理:Vue Router (实现前端路由,管理页面跳转)。
  • 状态管理:Vuex (集中管理应用共享状态,根据项目复杂度选用)。
  • HTTP通信:Axios (与后端API进行数据交互)。

前端技术选型 (2/2)

  • UI与响应式布局
    • BootstrapTailwind CSS
    • 目的:高效实现响应式布局和美观的用户界面。
    • 关键技术:栅格系统、工具类、媒体查询。
  • 数据可视化Chart.js (用于生成图表,展示统计数据)。

核心创新:响应式网页设计

利用现代前端技术,确保系统在不同设备上的最佳用户体验:

  • 流式布局 (Fluid Grids):页面元素宽度使用百分比。
  • 弹性图片/媒体 (Flexible Images/Media):资源随容器自动缩放。
  • CSS媒体查询 (Media Queries):针对不同屏幕尺寸应用不同样式,调整布局、字体大小、元素显隐。
    • 例如:PC端侧边导航栏在移动端自动收起为汉堡菜单或转换为底部标签栏。
  • 组件化开发 (Vue.js):结合Bootstrap/Tailwind CSS的栅格系统。

响应式效果:登录界面

电脑端 (PC)

登录界面 PC

移动端 (Mobile)

登录界面 Mobile

响应式效果:主界面

电脑端 (PC)

主界面 PC

移动端 (Mobile)

主界面 Mobile

响应式效果:耗材入库界面

电脑端 (PC)

耗材入库 PC

移动端 (Mobile)

耗材入库 Mobile

响应式效果:数据可视化

电脑端 (PC)

库存/报表 PC

移动端 (Mobile)

库存/报表 Mobile

用户体验优化 (UX) - 设计与交互

  • 界面设计风格
    • 简洁直观,现代扁平化设计
    • 色彩专业舒适,注重信息层级与可读性。
  • 关键交互细节
    • 前端表单实时校验与友好错误提示。
    • 异步操作加载提示 (如Loading动画)。
    • 操作结果清晰反馈 (成功/失败信息)。

用户体验优化 (UX) - 导航与操作

  • 导航优化 (响应式)
    • PC端:清晰的侧边栏/顶部导航。
    • 移动端:汉堡菜单或底部标签栏,节省空间。
  • 触控优化 (移动端)
    • 按钮和可点击区域尺寸适中,间距合理。
    • 方便手指准确触摸操作。
  • 数据交互流畅性:Axios与后端API高效通信,实现动态数据展示与实时更新。

前端职责 (冯子维)

在项目中,冯子维 同学主要负责:

  • 用户界面的设计与开发,使用Vue.js构建前端应用。
  • 重点负责实现响应式布局,确保跨设备兼容性。
  • 优化用户体验 (UX),关注交互细节。
  • 处理前端与后端的数据交互逻辑。
  • 利用Bootstrap和Tailwind CSS等框架高效构建界面。

数据库选型与核心表 (1/2)

  • 数据库系统:选用MySQL (关系型数据库)。
  • 核心数据表
    • 用户表 (users):用户信息、认证、权限。
    • 耗材表 (materials):耗材基本信息、分类。
    • 库存表 (inventory):实时库存量、预警值。

数据库核心表 (2/2) 与关系

  • 核心数据表 (续)
    • 入库记录表 (inbound_records):入库操作详情。
    • 出库记录表 (outbound_records):出库操作详情。
    • 历史记录表 (history):汇总所有出入库记录 (可选,或通过视图实现)。
  • 表间关系
    • 通过主键、外键建立表间关联。
    • 确保数据的一致性与参照完整性。

数据库E-R图

数据库E-R图

系统数据库E-R图

关键数据表结构 (示例)

用户表 (users)

用户表结构

用户表(users)结构

耗材表 (materials)

耗材表结构

耗材表(materials)结构

其他表结构如库存表、出入库记录表等,均详细设计 。

数据完整性保障

  • 核心措施
    • 设置主键、外键约束以维护数据间关联。
    • 对关键字段进行非空 (NOT NULL)校验。
    • 对需要唯一的字段实施唯一性 (UNIQUE)约束。

数据安全措施

  • 关键点
    • API接口层面进行严格的权限控制
    • 数据库层面配置精细的用户访问权限
    • 用户密码等敏感数据进行哈希加密存储 (e.g., bcrypt)。
    • 制定并执行定期的数据库备份计划。
    • 启用 HTTPS 加密。

数据库性能优化与职责 (林杰雯)

在项目中,林杰雯 同学主要负责:

  • 数据库的设计与建模 (E-R图、表结构)。
  • 数据库性能优化
    • 对慢查询进行分析。
    • 对常用查询字段建立索引,提升数据检索效率。
    • 关注数据库连接池的配置,确保高并发场景下的稳定性。
  • 制定数据备份与恢复策略
  • 保障数据的完整性与安全性
  • 参与后端的性能监控。

测试流程与主要类型

测试流程图
  • 前端单元测试 (组件), E2E测试, 响应式测试, 可用性测试。
  • 后端单元测试 (逻辑/模型), 集成测试 (API)。
  • 整体:功能符合性, 用户验收 (UAT), 性能, 安全测试。

核心测试:功能测试要点

  • 数据交互:确保前后端数据传输、格式正确无误。
  • 模块功能
    • 用户认证、权限控制是否按预期工作。
    • 耗材管理 (增删改查) 功能完整性。
    • 库存管理 (查询、更新、预警) 准确性。
    • 出入库操作流程及数据记录正确性。
    • 历史记录查询与展示。
  • 业务逻辑:验证核心业务流程的正确性与完整性。

核心测试:响应式测试 (重点)

  • 测试范围
    • 跨设备:真实手机、平板、PC。
    • 跨浏览器:Chrome, Firefox, Safari, Edge等。
    • 模拟器:浏览器开发者工具模拟不同尺寸与分辨率。
  • 关注点
    • 界面兼容性:无错位、重叠、内容截断。
    • 布局美观性:元素排布合理,信息清晰。
    • 用户体验:操作流畅,交互便捷。

Bug管理流程

  • Bug管理要点
    • 使用缺陷管理工具 (如Jira, Trello, 或简单表格) 跟踪发现的Bug。
    • 记录Bug的详细信息、复现步骤、优先级和状态。
    • 在Bug修复后进行严格的回归测试,确保问题已解决且未引入新问题。

测试总结与职责 (钟梽霖)

在项目中,钟梽霖 同学主要负责:

  • 制定测试计划和编写测试用例
  • 执行系统各项测试:
    • 功能测试集成测试
    • 针对项目创新点的响应式设计测试
    • 基础的性能测试和安全测试 (如SQL注入、XSS防范验证)。
  • Bug的发现、报告、跟踪与回归测试
  • 确保系统质量,推动系统稳定运行,各项功能符合设计要求。

系统部署架构概览

部署架构图
  • Web服务器/反向代理Nginx (处理HTTP请求, 静态资源, 转发)。
  • WSGI服务器Gunicorn (运行Django应用)。
  • 应用:Django后端 + Vue.js前端 (静态文件)。
  • 容器化 (可选)Docker (环境一致性, 便捷部署)。
  • OS:Linux (推荐)。

部署环境准备

  • 硬件资源
    • 开发服务器、测试服务器、生产服务器 (或模拟环境)。
    • 满足性能需求的CPU、内存、磁盘空间。
  • 软件环境
    • 操作系统 (如 CentOS, Ubuntu)。
    • 数据库服务 (MySQL Server)。
    • Web服务器 (Nginx)。
    • 运行时:Python (及相关库), Node.js (用于前端构建)。

关键配置项

  • Nginx配置
    • Server blocks (虚拟主机)。
    • 反向代理设置 (proxy_pass to Gunicorn)。
    • 静态文件服务路径。
    • SSL证书配置 (HTTPS)。
  • Gunicorn配置:工作进程数, 绑定IP与端口, 日志路径。
  • Django配置 (settings.py):数据库连接, SECRET_KEY, ALLOWED_HOSTS, 静态/媒体文件设置。
  • 数据库配置:用户账户与权限, 网络访问设置。
  • 域名解析 (若对外提供服务)。

系统监控

  • 监控方面
    • 服务器资源监控 (CPU、内存、磁盘)。
    • Web服务器日志分析 (Nginx访问/错误日志)。
    • 应用日志监控 (Django日志)。
    • API性能监控 (响应时间、错误率)。

安全运维

  • 关键安全措施
    • 应用层安全 (输入验证, XSS/CSRF防护, 权限控制)。
    • 数据库安全 (访问控制, 敏感数据加密)。
    • 服务器层面安全:
      • 配置防火墙规则
      • 启用HTTPS加密传输
    • 定期数据备份。
    • 及时进行系统更新与安全补丁。

项目总结 (1/2)

  • 成果:成功设计并实现了一个基于Python DjangoVue.js前后端分离响应式医疗耗材出入库管理系统。
  • 核心价值
    • 提高了耗材管理的自动化水平和数据准确性。
    • 通过响应式设计,显著提升了系统在多设备上的可用性和用户体验
    • 解决了传统系统在移动办公场景下的不便。

项目总结 (2/2)

  • 团队协作:通过有效的团队协作和沟通,攻克了开发过程中的技术难点。
  • 技术实践:深入实践了前后端分离架构、响应式设计、API开发、数据库管理、系统测试与部署等关键技术。

未来展望 - 功能增强

  • 操作便捷性
    • 引入扫码入库/出库功能 (如通过手机摄像头或扫码枪)。
    • 优化移动端操作流程。
  • 管理精细化
    • 完善库存预警机制 (如邮件/短信/系统内通知)。
    • 更细粒度的权限管理与审计日志。
    • 耗材批次管理、效期管理。

未来展望 - 智能化与技术优化

  • 智能化提升
    • 引入大数据分析:分析耗材消耗趋势、采购周期,辅助决策。
    • 探索AI预测:基于历史数据预测未来耗材需求。
  • 技术架构优化
    • 持续优化系统性能与安全性
    • 根据业务发展,探索微服务架构的可能性。
    • PWA (Progressive Web App) 探索,提升移动体验。

个人职责 (陈星宇)

在项目中,陈星宇 同学主要负责:

  • 系统运行环境的搭建 (开发、测试、生产模拟)。
  • 应用的部署上线流程制定与执行。
    • 包括Nginx、Gunicorn、Django应用、Vue静态文件的配置与部署。
  • 后续的系统监控与故障处理
  • 相关的配置管理和服务器安全设置 (如防火墙、HTTPS)。
  • 项目总结与未来展望的整理。

感谢观看!