# eshop-class1-group8 **Repository Path**: grade24-fullstack-class1/eshop-class1-group8 ## Basic Information - **Project Name**: eshop-class1-group8 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2026-07-21 - **Last Updated**: 2026-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电子商城(E-Shop)暑期企业级综合项目实战 > 班级:__1__ 组号:__8__ 组名:____ ## 一、项目简介 本项目为软件技术专业暑期企业级综合项目实战,目标是以小组协作方式,在 **4 周** 内完成一个功能完整、可演示、可部署的 **电子商城系统**,全程模拟企业真实研发流程:需求分析 → 系统设计 → 编码实现 → 测试 → 部署 → 验收答辩。 ## 二、小组成员与分工(模块负责制 + 自由接取) 本项目采用 **模块负责制**:不按前后端分工,每人认领业务模块,独立负责该模块的 **数据库表 + 后端接口 + 前端页面** 完整链路。 **分工方式:组长预留公共基建包 + 4 个业务模块由组员自由接取 + Day 3 兜底指派**: | 姓名 | 学号 | 角色 | 负责模块(全栈) | |------|------|------|------------------| | 郭小东 | 2444310101 | 组长/架构员 | **公共基建包**(项目脚手架、登录鉴权、公共组件、集成联调)+ 后台-订单管理(兜底接取) | | 全俊林 | _待填_ | 任务负责人 | **商品包** — 前台-商品模块(M02/M06-01/M08)+ 后台-商品管理 | | 冉彬璐 | _待填_ | 任务负责人 | **用户模块包** — 前台-用户模块(M03)+ 后台-用户管理 | | 陆杨阳 | _待填_ | 任务负责人 | **订单 + 购物车主包** — 前台-订单模块(M04)+ 前台-购物车(M05) | | 吕祥勇(seele) | _待填_ | 任务负责人 | **支付模块包** — 前台-支付模块(M07)+ 购物车 3 项下沉任务(任务 10/11/12,详见 §十) | > 当前接取状态详见 [§十、任务接取进度](#十-任务接取进度)(Gitee 看板快照 · 2026-07-28)。**测试部署包**目前仍在看板外(未挂出对应 Gitee 父模块),由组长按需兜底指派。 **接取规则**: 1. **组长预留**:公共基建包由组长(郭小东)独占,负责脚手架、登录鉴权、公共组件、集成联调;这是其他模块的前置依赖。 2. **默认按父模块接取(子任务可下沉)**:组员按 **Gitee 任务看板**上的**父模块粒度**声明接取(每个父模块 1 个 owner,同包跨父模块可 1 人多接),先到先得。**子任务下沉规则**:父模块 owner 优先拥有其下属子任务;当 owner 无法继续或超时未推进时,对应子任务可由其他组员公开接取兜底,**谁接谁负责、谁接谁答辩**,按所接范围端到端全链路实现。 3. **兜底指派**:周一 18:00 后仍未被接取的任务,由组长按 F01-F13 必做清单顺序指派,避免真空。 4. **进度追踪**:以 Gitee 任务看板为唯一真源;组长每日站会检查进度。 5. **Gitee 任务看板**:仓库 → 工作项 → 任务,涵盖前台(用户 / 商品 / 购物车 / 订单 / 支付)+ 后台(商品 / 订单 / 用户)+ 选做 + 挑战;组员认领后将任务负责人改为本人。 > 分工规则详见 `docs/00-项目要求/项目要求.md` 第三节,模块难度权重与考核挂钩。 > 4 人组时,测试与部署职责分摊到各模块负责人,选做功能由认领者负责。 ## 三、技术栈 > 正式技术方案详见 [`docs/02-设计文档/系统架构设计.md`](docs/02-设计文档/系统架构设计.md) 第三章“技术选型及理由”和第十三章“关键设计决策”。 | 分层 | 技术选型 | 版本 | |------|----------|------| | PC Web | Vue 3 + TypeScript + Vite + Tailwind CSS 4 + Pinia + Vue Router + Axios | Node.js 24.15.0 / pnpm 10.1.0 / Vue 3.5.x / TypeScript 5.6.x / Tailwind 4.x | | 后台管理 | Vue 3 + Element Plus 2.8 + 同上 | 复用 `packages/shared` | | 移动端 | Uni-app + Vue 3 + TypeScript + Pinia + uni-ui + SCSS | 一套代码输出 H5 / 微信小程序 / Android / iOS | | 桌面端 | Electron 33 + electron-builder 25 | Windows NSIS `.exe`,套 PC Web | | 后端 | ASP.NET Core 10 + EF Core 10 + Dapper + SignalR + JWT + Serilog | .NET SDK 10.0.301 / ASP.NET Core 10 / EF Core 10 | | 数据库 | PostgreSQL 16 + `pg_cron` / `pg_trgm` 扩展 | PostgreSQL 16.x(同时承担搜索与延迟任务) | | 缓存 | Redis 7 | maxmemory=256MB | | 文件存储 | MinIO | 商品图 / 头像 | | 测试 | xUnit + Vitest + Playwright + uni-automator + k6 | 脚手架初始化时锁定 | | 部署 | 每位成员独立 Docker Compose + Nginx 子域名 | Docker 29.6.1 / Compose;监控默认关闭 | ## 四、仓库目录结构 ``` ├── README.md # 项目说明(本文件) ├── docs/ # 项目文档 │ ├── 00-项目要求/ # 项目要求、验收标准、评分标准(教师发布,勿改) │ ├── 01-需求文档/ # 需求规格说明书、需求文档基础格式模板、子任务细化文档 │ ├── 02-设计文档/ # 架构设计、数据库设计、接口设计 │ ├── 03-测试文档/ # 测试计划、测试报告 │ ├── 04-会议记录/ # 小组会议纪要 │ └── 05-总结答辩/ # 项目总结报告、答辩材料 ├── reports/ # 日报周报 │ ├── daily/ # 日报(每人每天一份) │ └── weekly/ # 周报(每组每周一份,组长汇总) ├── frontend/ # 前端代码(自行创建) └── backend/ # 后端代码(自行创建) ``` ## 五、关键时间节点(4 周) | 阶段 | 时间 | 交付物 | |------|------|--------| | 第 1 周 | 需求与设计 | 需求规格说明书、架构/数据库/接口设计 | | 第 2 周 | 核心功能开发 | 用户、商品模块可演示 | | 第 3 周 | 完整功能开发 | 购物车、订单、支付(模拟)模块可演示;选做功能与挑战模块开发 | | 第 4 周 | 测试、部署与答辩 | 测试报告、挑战模块压测/边界验证、部署上线、总结报告、答辩 | ## 六、Git 协作规范 1. 主分支 `main` 只存放可运行代码,禁止直接 push。 2. 功能开发使用 `feature/功能名` 分支,完成后经组长 Code Review 合并。 3. 提交信息格式:`: <描述>`,type 取值:`feat` `fix` `refactor` `docs` `test` `chore`。 4. **每人每天至少一次有效提交**,提交记录将作为个人考核依据。 5. **交叉 Code Review**:每人的功能分支由相邻模块负责人审查后方可合并(审查人在合并说明中留名)。 ## 七、如何开始 1. 全组阅读 `docs/00-项目要求/` 下的全部文档。 2. 完成分工表、确定技术栈并填入本文件。 3. 按 [需求文档基础格式模板](docs/01-需求文档/需求文档基础格式模板.md) 开始编写需求文档(先读模板附录 E 使用指南)。 4. 每天下班前提交个人日报到 `reports/daily/`。 ## 八、快速开始(开发环境) ### 前置依赖 - Node.js 24.15.0(推荐用 `nvm` 管理) - pnpm 10.1.0(`npm install -g pnpm`) - .NET SDK 10.0.301 - Docker 29.6.1 + Docker Compose - (移动端开发)HBuilderX 4.x ### 首次启动 ```bash # 1. 启动后端中间件 cd backend docker compose up -d postgres redis minio cd .. # 2. 启动前端(apps/web) cd frontend pnpm install pnpm --filter @eshop/web dev # 3. 启动后端 API(新终端) cd backend dotnet run --project src/EShop.Api # 4. 访问 # 浏览器打开 http://localhost:5173 → PC Web # 浏览器打开 http://localhost:5000/swagger → API 文档 # 浏览器打开 http://localhost:9001 → MinIO 控制台 ``` ### 完整部署 每位成员按 `members/README.md` 操作。 ## 九、AI 使用规范 本项目 AI 使用规则以 [docs/AI使用规范.md](./docs/AI使用规范.md)(v1.0,生效日期 2026-07-26)为正式真源;精简执行版见 [CLAUDE.md §1](./CLAUDE.md)。 提交人须在首次使用 AI 前阅读两者,并能解释 AI 辅助生成内容的实现目的、关键逻辑、边界条件、影响范围与验证方式。 ## 十、任务接取进度 > **快照日期**:2026-07-28。**数据源**:Gitee 仓库 → 工作项 → 任务(截屏快照)。以 Gitee 看板为**唯一真源**,本节只供快速查阅。 > **接取规则**:详见 [`CLAUDE.md §1.6`](./CLAUDE.md) — 父模块 owner 默认拥有其下属子任务;当 owner 无法继续或超时未推进时,子任务由其他组员公开接取兜底(**谁接谁负责、谁接谁答辩**),按所接范围端到端全链路实现。 > **历史备忘**:第二次会议(2026-07-24)确定"周一认领各模块任务",见 [docs/04-会议记录/2026-07-24-第二次会议记录.md](docs/04-会议记录/2026-07-24-第二次会议记录.md);第一周周报(2026-07-22 ~ 07-24)记录"业务包没人接"的状态(见 [reports/weekly/第1周-周报.md](reports/weekly/第1周-周报.md))。本快照相比周报已**完成全 8 个父模块的 owner 认领**,但所有任务**状态仍为「待办」**——本周(08-04 ~ 08-10)必须推进到「进行中」以上,否则按 §1.6 第 3 条兜底指派。 > **Gitee 账号映射**:`seele` = **吕祥勇** 的 Gitee 账号(已在小组内确认)。 ### 1. 父模块与 owner(8 个 · 全部 严重) | Gitee ID | 父模块 | 严重度 | 当前 owner | 里程碑 | 子任务下沉给 | |----------|--------|--------|------------|--------|--------------| | #IK34AB | 后台 - 用户管理 | 严重 | 冉彬璐 | 07-22 ~ 08-10 | — | | #IK34A6 | 后台 - 订单管理 | 严重 | 郭小东 | 07-22 ~ 08-10 | — | | #IK349U | 后台 - 商品管理 | 严重 | 全俊林 | 07-22 ~ 08-10 | — | | #IK349J | 前台 - 支付模块 | 严重 | 吕祥勇(seele) | 07-22 ~ 08-10 | — | | #IK349O | 前台 - 订单模块 | 严重 | 陆杨阳 | 07-22 ~ 08-10 | — | | #IK3480 | 前台 - 购物车 | 严重 | 陆杨阳 | 07-22 ~ 08-10 | 吕祥勇(seele)(任务 10/11/12) | | #IK3487 | 前台 - 商品模块 | 严重 | 全俊林 | 07-22 ~ 08-10 | — | | #IK347Y | 前台 - 用户模块 | 严重 | 冉彬璐 | 07-22 ~ 08-10 | — | ### 2. 子任务清单(23 项 · 全部 待办 · 子任务截止 07-29) | 父模块 | 任务号 | 标题 | 当前指派 | 备注 | |--------|--------|------|----------|------| | 前台 - 用户模块 | 任务 1 | 用户注册 | 冉彬璐(继承) | — | | 前台 - 用户模块 | 任务 2 | 用户登录 | 冉彬璐(继承) | — | | 前台 - 用户模块 | 任务 3 | 用户退出与 Token 失效 | 冉彬璐(继承) | 与公共基建包 JWT 中间件强耦合,需提前对齐 | | 前台 - 用户模块 | 任务 4 | 个人信息维护 | 冉彬璐(继承) | — | | 前台 - 用户模块 | 任务 5 | 收货地址管理 | 冉彬璐(继承) | — | | 前台 - 商品模块 | 任务 6 | 商品分类管理 | 全俊林 | — | | 前台 - 商品模块 | 任务 7 | 商品列表与筛选 | 全俊林 | — | | 前台 - 商品模块 | 任务 8 | 商品关键词搜索 | 全俊林 | 依赖 `pg_trgm` 扩展(已启用) | | 前台 - 商品模块 | 任务 9 | 商品详情页 | 全俊林 | — | | 前台 - 购物车 | 任务 10 | 加入购物车 | **吕祥勇(seele)**(已下沉) | §1.6 子任务下沉 | | 前台 - 购物车 | 任务 11 | 购物车查询 | **吕祥勇(seele)**(已下沉) | §1.6 子任务下沉 | | 前台 - 购物车 | 任务 12 | 购物车结算 | **吕祥勇(seele)**(已下沉) | §1.6 子任务下沉;与订单模块联动 | | 前台 - 订单模块 | 任务 13 | 提交订单 | 陆杨阳 | — | | 前台 - 订单模块 | 任务 14 | 订单列表与详情 | 陆杨阳 | — | | 前台 - 订单模块 | 任务 15 | 取消订单 | 陆杨阳 | — | | 前台 - 支付模块 | 任务 16 | 模拟支付 | 吕祥勇(seele) | 模拟通道,无真实银联 | | 前台 - 支付模块 | 任务 17 | 支付状态流 | 吕祥勇(seele) | — | | 后台 - 商品管理 | 任务 18 | 商品编辑修改 | 全俊林 | — | | 后台 - 商品管理 | 任务 19 | 商品上下架 | 全俊林 | — | | 后台 - 商品管理 | 任务 20 | 商品分类管理 | 全俊林 | — | | 后台 - 订单管理 | 任务 21 | 订单列表与查询 | 郭小东 | 兜底接取(架构员额外补位) | | 后台 - 订单管理 | 任务 22 | 订单发货与状态流转 | 郭小东 | 兜底接取 | | 后台 - 用户管理 | 任务 23 | 用户列表与冻结 | 冉彬璐 | — | ### 3. 风险与下一步 | 类别 | 事项 | 负责人 | 截止 | |------|------|--------|------| | **跨包对齐** | 任务 3(用户退出 Token 失效)需与基建包 JWT 中间件联调,请 **郭小东** 在开工前在基建包留出 `auth/logout` 端点 / 黑名单通道 | 郭小东 | 08-01(周五)前完成端点 | | **跨包对齐** | 任务 12(购物车结算)→ 任务 13(提交订单)的接口契约,**吕祥勇(seele) ↔ 陆杨阳** 必须在 08-03 前完成联调字段对齐 | 吕祥勇(seele) + 陆杨阳 | 08-03(周日)前出 PR | | **数据归属** | 后台-订单管理由组长(郭小东)兜底接取,非该模块原计划的 owner;长期建议下沉到订单包 owner 陆杨阳 或新成员 | 郭小东 | 第 2 周周末前决策 | | **看板补全** | **测试部署包**未挂出对应 Gitee 父模块,请组长协调挂出(参考 [README §二](#二小组成员与分工模块负责制--自由接取)) | 郭小东 | 08-01 前 | | **状态推进** | 全部 23 项当前均为「待办」,08-04(周一)站会必须至少 50% 进入「进行中」 | 全部 owner | 08-04 站会检查 | > 看板同步:任何 owner / 状态变更,**先改 Gitee 看板 → 再同步本节**,不允许以本节覆盖看板(看板为唯一真源)。