# couple-menu **Repository Path**: coderzcr/couple-menu ## Basic Information - **Project Name**: couple-menu - **Description**: 一个专为情侣设计的点餐管理系统,支持菜单管理、订单管理、情侣绑定等功能。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-01 - **Last Updated**: 2026-03-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Couple Menu - 情侣点餐系统 一个专为情侣设计的点餐管理系统,支持菜单管理、订单管理、情侣绑定等功能。 ## 功能特性 - 用户注册/登录 - 情侣绑定(通过邀请码) - 角色切换(菜单管理员/下单方) - 菜品分类管理 - 菜品管理(含图片上传) - 订单管理 - 个人信息管理 ## 技术栈 ### 后端 - Spring Boot 3.2.0 - SQLite(无需安装数据库) - MyBatis-Plus 3.5.5 - Sa-Token 1.37.0(认证授权) - Knife4j(API文档) ### 前端 - Vue 3 - Vite 5 - Vant 4(移动端UI组件库) - Pinia(状态管理) - Vue Router ## 项目结构 ``` couple-menu/ ├── backend/ # 后端项目 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/com/couplemenu/ │ │ │ │ ├── config/ # 配置类 │ │ │ │ ├── controller/ # 控制器 │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ ├── entity/ # 实体类 │ │ │ │ ├── mapper/ # MyBatis Mapper │ │ │ │ ├── service/ # 服务层 │ │ │ │ └── vo/ # 视图对象 │ │ │ └── resources/ │ │ │ ├── db/ # 数据库初始化脚本 │ │ │ └── application.yml # 配置文件 │ │ └── test/ │ └── pom.xml ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # 状态管理 │ │ ├── styles/ # 样式文件 │ │ └── views/ # 页面组件 │ ├── index.html │ ├── package.json │ └── vite.config.js └── README.md ``` ## 快速开始 ### 环境要求 - JDK 17+ - Node.js 18+ - Maven 3.6+ ### 后端启动 ```bash cd backend mvn spring-boot:run ``` 后端启动后访问: - API地址:http://localhost:8080 - API文档:http://localhost:8080/doc.html ### 前端启动 ```bash cd frontend npm install npm run dev ``` 前端启动后访问:http://localhost:3000 ## 配置说明 ### 后端配置(application.yml) ```yaml server: port: 8080 # 服务端口 spring: datasource: driver-class-name: org.sqlite.JDBC url: jdbc:sqlite:./data/couple_menu.db # SQLite数据库路径 servlet: multipart: max-file-size: 10MB # 最大文件上传大小 file: upload-path: ./uploads # 文件上传路径 ``` ### 前端配置(vite.config.js) ```javascript server: { port: 3000, # 前端端口 proxy: { '/api': { target: 'http://localhost:8080', # 后端地址 changeOrigin: true } } } ``` ## 使用说明 ### 1. 注册账号 首次使用需要注册账号,填写用户名、密码和昵称。 ### 2. 绑定情侣 1. 一方在"情侣绑定"页面生成邀请码 2. 另一方在"情侣绑定"页面输入邀请码完成绑定 ### 3. 角色说明 - **菜单管理员**:可以管理菜品分类、添加/编辑菜品 - **下单方**:可以浏览菜单、下单 绑定情侣后,双方可以通过"切换角色"功能互换身份。 ### 4. 菜单管理 菜单管理员可以: - 添加/删除菜品分类 - 添加/编辑/删除菜品 - 上传菜品图片 ### 5. 订单管理 - 下单方可以创建订单 - 双方都可以查看订单状态 - 菜单管理员可以更新订单状态 ## API接口 | 接口 | 方法 | 说明 | |------|------|------| | /api/user/register | POST | 用户注册 | | /api/user/login | POST | 用户登录 | | /api/user/info | GET | 获取用户信息 | | /api/user/invite-code | POST | 生成邀请码 | | /api/user/bind-couple | POST | 绑定情侣 | | /api/user/switch-role | POST | 切换角色 | | /api/category/list | GET | 获取分类列表 | | /api/category | POST | 添加分类 | | /api/category/{id} | DELETE | 删除分类 | | /api/dish/list | GET | 获取菜品列表 | | /api/dish | POST | 添加菜品 | | /api/dish/{id} | PUT | 更新菜品 | | /api/dish/{id} | DELETE | 删除菜品 | | /api/file/upload | POST | 上传文件 | | /api/file/{filename} | GET | 获取文件 | | /api/order/list | GET | 获取订单列表 | | /api/order | POST | 创建订单 | | /api/order/{id} | GET | 获取订单详情 | | /api/order/{id}/status | PUT | 更新订单状态 | ## License MIT