Skip to content

Lx6uo/DB_Exp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

校园服务管理一体化系统(Dorm System)

一个基于 Go(Gin)与 Vue 3(Vite + Element Plus)的校园综合服务平台,面向学生、商家、宿管维保与管理员四类角色,支持商品浏览与下单、工单提交与处理、用户管理与审核、审计日志等核心功能,并提供「费用充值」学生专页。

目录

  • 项目亮点与功能
  • 技术栈与工程化
  • 项目结构
  • 环境准备与配置
  • 快速启动
  • 前后端架构与路由
  • 数据库与迁移/初始化
  • 测试与质量保障
  • 部署与运维建议
  • 常见问题与故障排查

项目亮点与功能

  • 多角色支持:学生、商家、宿管维保、管理员
  • 认证与守卫:JWT + 路由角色守卫(前端/后端双层)
  • 商品与订单:商品浏览、购物车、订单创建与我的订单
  • 工单闭环:学生提单、宿管处理、状态流转与评价
  • 审计记录:受保护接口统一审计中间件(基础字段)
  • 学生充值:专页 /student/recharge,网费/电费单位充值,含寝室/收货地址与备注
  • 体验优化:充值页使用本地 SVG 图标避免图片闪烁;商品页隐藏充值类产品

说明:统计看板、部分管理员模块等按设计文档规划中,代码已预留入口与结构。

技术栈与工程化

后端

  • 语言:Go 1.21
  • 框架:Gin
  • ORM:GORM(MySQL)
  • 认证:JWT(Authorization: Bearer <token>
  • 日志:标准库 log + GORM/Gin 日志

前端

  • 框架:Vue 3(Composition API)
  • 构建:Vite
  • UI:Element Plus
  • 状态:Pinia
  • 路由:Vue Router(角色与认证元信息)
  • 测试:Vitest、Playwright

项目结构

DB_Exp/
├── backend/                     # 后端 Go 服务
│   ├── cmd/                    # 应用入口(main、seed、migrate、integration)
│   ├── internal/               # 业务实现
│   │   ├── api/               # 路由与处理器
│   │   ├── config/            # 配置加载与注入
│   │   ├── database/          # 连接与自动迁移
│   │   ├── middleware/        # JWT、CORS、审计
│   │   ├── model/             # GORM 模型与响应结构
│   │   └── service/           # 业务服务
│   ├── go.mod                 # 模块与依赖
│   └── scripts/               # 辅助脚本(可选)
├── frontend/                   # 前端 Vue 应用
│   ├── public/                # 静态资源(icons、banners、products)
│   ├── src/
│   │   ├── api/              # 接口定义与 HTTP 客户端
│   │   ├── router/           # 前端路由与守卫
│   │   ├── stores/           # Pinia 状态
│   │   ├── views/            # 页面组件(含学生/商家/宿管/管理员)
│   │   └── components/       # 复用组件
├── docs/                      # 项目与设计文档
└── README.md                  # 项目说明(本文件)

环境准备与配置

依赖要求

  • Node.js:^20.19.0 || >=22.12.0
  • Go:1.21
  • MySQL:8.0+

后端 .env 配置项(可选,支持环境变量)

DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=dormitory_system

SERVER_PORT=8081
SERVER_MODE=debug        # 或 release

JWT_SECRET=your_jwt_secret
JWT_EXPIRE_HOURS=24

# 逗号分隔的允许前端来源,用于 CORS
CORS_ORIGINS=http://localhost:5173,http://127.0.0.1:5173

前端环境变量

  • VITE_API_BASE_URL=/api/v1(默认使用 Vite 代理转发到后端)

frontend/vite.config.ts 已配置:将前端 /api/* 代理到后端 http://localhost:8081

快速启动

后端

cd backend
go mod tidy
go run cmd/main.go
# 访问健康检查:GET http://localhost:8081/health

前端

cd frontend
npm install
npm run dev
# 默认 http://localhost:5173/(占用时自动切换端口)

前后端架构与路由

后端 API Base

  • 所有接口以 /api/v1 为前缀。

路由分组(示例)

  • /auth/*:注册、登录、个人信息、修改密码、退出登录
  • 受保护分组(需 JWT):
    • /users:管理员/宿管的用户管理与审核
    • /tickets/*:工单创建/处理/评价等
    • /orders/*:订单创建与学生订单查询,商家子订单等
    • /merchant/*:商家相关接口(商品与订单)
    • /admin/*:管理员相关接口(预留)

中间件:JWTAuth(认证)、RequireRole(角色)、Audit(基础审计)、CORS

前端路由

  • 未登录默认跳转 /login;登录后按角色跳转:/student/merchant/manager/admin
  • 学生端包含:
    • '/student/home':主页
    • '/student/shop':商品浏览(已隐藏充值类商品)
    • '/student/recharge':费用充值(网费/电费)
    • '/student/orders':我的订单
    • '/student/tickets':我的工单
    • '/student/profile':个人信息

数据库与迁移/初始化

后端启动时自动迁移核心表(users 等)及业务表(productsorders/sub_ordersticketsaudit_logs 等)。

可选:数据库迁移与种子数据

# 执行枚举或默认值修复等迁移
go run cmd/migrate/main.go

# 写入演示/联调所需的种子数据
go run cmd/seed/main.go

测试与质量保障

前端

  • 单元测试:npm run test:unit
  • 端到端测试:
    npx playwright install
    npm run build
    npm run test:e2e
  • 代码规范与格式:npm run lintnpm run format

后端

  • 建议使用 go test 编写与运行单元测试(当前仓库以集成入口演示交互流程:cmd/integration/main.go)。

部署与运维建议

  • 后端:SERVER_MODE=release,反向代理暴露 /api/v1,配置数据库连接与 JWT_SECRET
  • 前端:npm run build 产出静态资源,部署到 Nginx/静态托管,反向代理 /api 指向后端
  • 安全:开启 CORS 白名单、合理设置 JWT 过期、限制文件上传大小(按需求扩展)

常见问题与故障排查

  • 前端图片闪烁:充值页改用本地 SVG(public/images/icons/network.svgelectricity.svg
  • 充值商品干扰:学生/Shop.vue 中过滤「费用充值」分类与名称包含“充值”的商品
  • 跨域问题:确认后端 CORS_ORIGINS 包含前端来源;或检查反向代理配置
  • 接口 401:前端需携带 Authorization: Bearer <token>,登录态过期后重新登录
  • 开发端口占用:Vite 会自动切换端口(如 5173 → 5174),请关注控制台提示

推送到 GitHub

git add -A
git commit -m "docs: 重写完整 README"
git remote add origin https://github.com/<your-username>/<repo>.git  # 首次
git branch -M master  # 或 main
git push -u origin master

如出现认证提示,请使用 GitHub 登录或 PAT 令牌完成认证。

功能特性

  • 🔐 用户认证与授权
  • 👥 多角色管理(学生、商家、管理员)
  • 🍔 商品管理
  • 🛒 购物车功能
  • 📦 订单管理
  • 💰 支付集成
  • 📊 数据统计
  • 📱 响应式设计

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published