## 第一章 概述 ### 1.1 课程设计目的 通过本课程设计的准备与总结,复习、领会、巩固和运用课堂上所学的软件开发方法和知识,为学生综合应用本专业所学习的多门课程知识创造实践机会,使每个学生了解软件工具与环境对于项目开发的重要性,并且重点深入掌握好几种较新或较流行的软件工具或计算机应用技术,提高学生今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。 本次课程设计通过开发一个完整的在线电脑DIY系统,让学生深入掌握现代Web开发技术栈,包括前端框架、后端开发、数据库设计、API设计等核心技能。 ### 1.2 课程设计任务 本课程设计的主要任务是开发一个功能完整、用户友好的在线电脑DIY系统。 #### 1.2.1 基础功能要求 系统需要实现以下基础功能: 1. **首页展示功能**:企业介绍和电脑配件(CPU、内存、硬盘、主板、显卡、机箱)的详情展示,无需登录即可浏览 2. **多品牌配件管理**:每种配件支持多个品牌,不同价格层次满足用户需求 3. **用户权限管理**:包含管理员和普通用户两种角色,需要登录后才能进行核心操作 4. **管理员功能模块**: 配件类型管理、商品信息管理、用户信息浏览、订单查看和管理 5. **用户功能模块**: 用户注册和登录、个人信息修改、配件选购和购物车管理、装机单配置(每种配件选择1个)、订单提交和结算(模拟付款)、个人订单查看 6. **数据统计功能**: - 按消费金额倒排的前十用户列表 - 按销售量倒排序的前十配件列表 - 统计结果的图形化展示 #### 1.2.2 创新功能实现 在满足基础要求的基础上,本系统还实现了以下创新功能: 1. **AI智能助手**: - 集成Claude AI模型,提供专业的配件咨询服务 - 支持自然语言查询配件信息 - 智能推荐适合的配件组合 - 基于预算和需求的个性化建议 2. **Tool工具调用系统**: - 实现了query-components工具,支持按类型、品牌、价格等条件智能查询 - 实现了show-components工具,以卡片形式展示配件详情 - 支持流式响应,提供实时的交互体验 ### 1.3 使用技术及开发环境 #### 1.3.1 技术栈概述 本项目采用了现代化的全栈开发技术栈,充分体现了当前软件开发的最佳实践和技术趋势。 ##### 前端技术栈 - **Next.js 15**:作为核心React框架,提供服务端渲染(SSR)、静态站点生成(SSG)、文件系统路由等现代化特性 - **React 19**:最新版本的React库,提供组件化开发和状态管理 - **TypeScript 5**:提供类型安全和更好的开发体验 - **Tailwind CSS 4:原子化CSS框架,快速构建现代化UI界面 ##### 后端技术栈 - **Next.js API Routes**:基于Next.js的API路由系统,实现RESTful API - **Prisma 6.10.1**:现代化的数据库ORM工具,提供类型安全的数据库操作 - **PostgreSQL**:关系型数据库,存储用户、商品、订单等核心数据 - **JSON Web Token (JWT)**:用户身份认证和授权机制 - **bcryptjs 3.0.2**:密码加密和验证 ##### AI集成技术 - **Anthropic Claude API**:集成Claude AI模型,提供智能对话功能 - **@anthropic-ai/sdk 0.54.0**:Anthropic官方SDK,处理AI API调用 ##### 开发工具和环境 - **Bun**:高性能的JavaScript运行时和包管理器 - **Visual Studio Code**:主要开发IDE ## 第二章 需求分析 ### 2.1 功能分析 #### 2.1.1 系统概述 在线电脑DIY系统是一个面向电脑爱好者和DIY玩家的综合性电商平台。系统不仅提供传统的商品浏览、购买功能,更创新性地集成了AI智能助手,为用户提供专业的配件选择建议和装机指导。系统采用B2C模式,支持多角色用户管理,具备完整的商品管理、订单处理、数据统计等功能模块。 #### 2.1.3 功能模块详细分析 ##### 2.1.3.1 用户管理模块 **基础功能:** - **用户注册**:支持邮箱注册,验证用户名唯一性 - **用户登录**:基于JWT的安全认证机制 - **个人信息管理**:用户可修改个人资料、联系方式 - **密码管理**:安全的密码修改功能 **技术实现特点:** - 采用bcrypt加密存储密码,确保数据安全 - JWT无状态认证,支持分布式部署 - 前端表单验证与后端数据校验双重保障 ##### 2.1.3.2 商品管理模块 **配件分类管理:** - **配件类型**:CPU、内存、硬盘、主板、显卡、机箱六大类 - **品牌管理**:每类配件支持多品牌,如Intel、AMD、NVIDIA等 - **规格参数**:详细的技术规格和兼容性信息 **库存管理:** - **实时库存**:支持库存数量的实时更新 ##### 2.1.3.3 购物车与订单模块 **购物车功能:** - **商品添加**:支持快速添加配件到购物车 - **数量调整**:灵活的数量增减操作 - **实时计算**:动态显示总价和优惠信息 - **持久化存储**:登录用户购物车数据持久保存 **订单处理流程:** - **订单创建**:从购物车生成订单,分配唯一订单号 - **库存扣减**:下单时自动扣减库存,防止超卖 - **订单状态管理**:待确认 → 已确认 → 处理中 → 已发货 → 已送达 - **订单取消**:支持用户主动取消和管理员取消 **装机单功能:** - **配件选择约束**:确保每种配件类型只能选择一个 - **兼容性检查**:AI助手提供兼容性建议 - **价格统计**:实时显示装机单总价 - **一键下单**:将完整装机单转换为订单 ##### 2.1.3.4 AI智能助手模块 **核心对话引擎:** - **自然语言理解**:理解用户的配件需求和预算 - **多轮对话**:支持上下文保持的连续对话 - **专业知识库**:内置丰富的硬件知识和兼容性信息 **工具调用系统:** - **query-components工具**:支持按类型、品牌、价格范围查询配件 - **show-components工具**:以卡片形式展示配件详细信息 **对话管理:** - **对话历史**:完整记录用户与AI的对话内容 - **对话分类**:按时间和主题自动分类 - **对话导出**:支持对话记录的导出和分享 ##### 2.1.3.5 管理后台模块 **数据统计分析:** - **用户排行榜**:按消费金额排序的前十用户 - **商品排行榜**:按销售量排序的前十配件 - **销售趋势**:时间维度的销售数据分析 - **图表展示**:使用柱状图、饼图等可视化数据 **订单管理:** - **订单列表**:分页显示所有订单信息 - **订单详情**:查看订单的详细配件和用户信息 - **状态更新**:批量或单个订单状态修改 - **订单搜索**:按订单号、用户、状态等条件筛选 **商品管理:** - **商品CRUD**:完整的商品增删改查功能 - **批量导入**:支持Excel/CSV格式的批量数据导入 - **图片管理**:商品图片的上传和管理 - **分类管理**:配件分类的维护和调整 #### 2.1.4 功能结构图 ```mermaid graph LR A[在线电脑DIY系统] --> B[用户管理模块] A --> C[商品管理模块] A --> D[购物车订单模块] A --> E[AI智能助手模块] A --> F[管理后台模块] B --> B1[用户注册登录] B --> B2[个人信息管理] B --> B3[权限控制] C --> C1[配件分类管理] C --> C2[商品信息管理] C --> C3[库存管理] C --> C4[价格管理] D --> D1[购物车功能] D --> D2[订单处理] D --> D3[装机单配置] D --> D4[支付结算] E --> E1[自然语言对话] E --> E2[配件查询工具] E --> E3[配件展示工具] E --> E4[对话历史管理] F --> F1[数据统计分析] F --> F2[订单管理] F --> F3[商品管理] F --> F4[用户管理] ```
专业的电脑配件在线选购平台,让您轻松打造梦想主机
{component.brand} | {component.model}
购物车是空的
选择每种配件,组装您的专属电脑
{/* 配置进度 */}| 配件信息 | 价格/库存 | 类型 | 操作 |
|---|