4 人课程设计。公开版本已移除真实凭据和真实门店联系方式;仅用于学习、作品展示与代码复盘。
PetStore 是一个前后端分离的宠物商品商城课程项目,包含商品浏览、登录、购物车、结算、订单、个人中心、门店、视频和 AI 助手等功能。
项目分为三个端:
backend/:Spring Boot REST API。frontend/:Vue 3 Web 管理/用户端。mobile/:UniApp 移动端。
本项目为 4 人小组协作。我独立完成 UniApp 移动端 APP:项目基础结构、商品列表与详情、购物车与结算、订单管理与个人中心,以及 AI 助手、视频、门店地图页面接入、UI 适配和接口联调。
后端订单、JWT、数据持久化等模块属于小组项目代码。我会在作品展示和面试中如实说明该分工,不将团队成果包装为个人独立全栈项目。
| 层级 | 技术 |
|---|---|
| 后端 | Java 17、Spring Boot 3.2.5、Spring Web、Spring Data JPA、Validation、JWT |
| 主业务数据 | SQLite、Hibernate Community Dialects |
| 扩展模块 | MongoDB 地理信息、Redis 相关模块 |
| Web | Vue 3、Vite、Vue Router、Pinia、Axios、Element Plus |
| 移动端 | UniApp、Vue 3、Vite、Pinia |
商品浏览 -> 加入购物车 -> 结算 -> 后端校验用户/商品/库存
-> 创建订单与明细 -> 扣减库存 -> 清理购物车 -> 返回订单结果
订单服务使用 Spring @Transactional 处理订单、明细、库存和购物车写操作,避免部分成功。课程项目不应被表述为完整高并发秒杀或真实支付系统。
- JDK 17+
- Maven 3.9+
- Node.js 18+
- MongoDB、Redis:相关模块启用时需要
- UniApp/HBuilderX 或对应的 UniApp 开发环境:运行移动端时需要
复制 .env.example 内容到自己的本机环境、IDE 运行配置或部署平台密钥管理中。该项目不会自动读取 .env。
至少设置:
$env:JWT_SECRET = "replace-with-your-own-long-random-secret"可选功能再设置 ZHIPU_API_KEY、GITEE_CLIENT_ID、GITEE_CLIENT_SECRET 和 GITEE_REDIRECT_URI。不要把真实值提交 Git。
默认不创建演示账号。仅在可丢弃的本机数据库中,才显式设置 PETSHOP_SEED_DEMO_USERS=true,并通过运行环境提供演示账号密码;密码不写入源码。
移动端真机或部署环境通过 mobile/.env.example 中的 VITE_API_BASE_URL 配置服务地址;不要提交个人内网穿透地址。
Web 门店地图需要在 frontend/.env.example 中配置自己的受限高德地图 key 与安全密钥;移动端地图 key 需在本机 UniApp manifest 配置中填写,公开仓库保持为空。
Set-Location backend
mvn spring-boot:run默认服务端口:8080。
Set-Location frontend
npm install
npm run devSet-Location mobile
npm install
npm run dev:h5移动端 App 打包、真机调试请使用 UniApp 对应工具链。
- 公开仓库只保留虚构门店数据;不包含真实门店电话、地址或可用凭据。
application.yml通过环境变量读取 JWT、AI 与 OAuth 配置。.gitignore已忽略本机数据库、构建产物和本地密钥配置。- 原课程包中的视频素材不随公开仓库发布;如需演示,请仅放入自己拥有发布权的
.mp4文件。 - 外部 AI、OAuth、地图与真实支付均不应在没有密钥治理、隐私告知、失败处理和测试时直接部署。
公开版本未在此仓库声明性能指标、自动化测试数量或生产部署能力;外部 AI、OAuth、地图和真实支付功能需要使用者自行配置并完成额外验证。