# delicacies **Repository Path**: kyleweb/delicacies ## Basic Information - **Project Name**: delicacies - **Description**: 大千食界 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-06 - **Last Updated**: 2022-02-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 大千食界项目 ## 功能划分 ### 顶部搜索 + 地区搜索 : 选择地区特产 可以根据地区全局搜索, 也可以全国搜索 点击输入框后 切换到另一个页面, 点击返回可以返回之前的页面 ### 首页: 食品展示功能 - banner - 美食展示模块 > 卡片 > > 点赞 收藏 浏览 评论 - banner下 按照全国的美食热度进行展示 ### 美食广场 - 发表美食 > 点赞 收藏 浏览 评论 美食列表的展示 , 可以选择地区, 查看对美食的展示 ### 聊天界面 > 我的好友 按钮 > > 我的聊天 界面 ### 个人中心 #### 个人信息展示 - 我的收藏 - 我的点赞 - 我的评论 - 我的预览 - 个人信息修改 > 个人签名 > > 头像修改 > > 地区修改 > > 昵称修改 - 密码修改 > 发送邮箱或手机号 验证码 用于验证用户身份信息 - 邮箱修改 > 验证当前邮箱是不是本人 发送邮箱验证 - 手机号修改> 验证当前手机号是不是本人 发送邮箱验证 #### 问题: 用户的地区与美食地区关联 耦合性高, 如果需要修改改动极大。 - 可以当用户发表美食时,让用户自行填写地区,美食的所属地区 ### #### 登陆模块 - 登陆 - 找回密码 - 手机号登陆 - 邮箱 登陆 - 用户名登陆 ### #### 注册模块 - 填写用户名 - 填写密码 - 填写所在地区 > 地区 如果用户发表的时候默认选择当前的地区 - 必须 填写手机号 > 发送短信验证码 > 填写验证码 ## 数据库选型 mysql ---> 开发时数据库管理工具: Xampp ## 后端技术选型 - nodeJS - 压缩中间件: compression: "^1.7.4", - 处理请求: express: "^4.17.1", - 发送token:jsonwebtoken: "^8.5.1", - 操作日期: moment: "^2.29.1", - 操作mysql :mysql: "^2.18.1", - 邮件发送: nodemailer: "^6.7.2" - session : 设置 session:express-session - express: 脚手架 ## 前端技术选型 - vue: ---> vue-cli --> vue router --> vuex --> scss - axios ---> - vant UI ---> - 浏览器内存存储空间 : `sessionStorage` - 浏览器磁盘存储空间: `localStorage` ## 聊天实时技术需要用到webSocket技术 - 需要共同学习了解......... - 逻辑实现 - 当用户1给用户2发信息的时候, - 需要在后端 给用户2 把消息发送过去 实现实时的响应 ## 设计数据表 #### 美食表 | id | int key auto | | 主键 | | ----------- | ------------ | --------------------------- | ------------ | | title | VARCHAR(128) | 存储分析的美食标题 | 美食标题 | | img_path | VARCHAR(255) | 存储小图路径 | 缩略图路径 | | detail | TEXT | 存储食物描述信息 | 食物描述 | | jianjie | VARCHAR(255) | 食物简介 | 食物的简介 | | like_me_len | INT | 存储给我点赞的数量 | 点赞数量 | | look_me_len | INT | 存储浏览数量 | 浏览数量 | | comment_len | INT | 评论数量 | 评论数量 | | uid | INT | 美食分享的用户ID,关联用户表 | 用户ID | | region_id | INT | 所在地区ID | 地区记录的id | - 标注 - 给我点赞的数量,需要前端和后端进行 点赞交互的时候进行添加操作 - 浏览的数量,需要前端进行 请求查询接口的时候进行添加操作 - 评论数量,需要用户对美食进行评论的时候进行添加操作 #### 美食图集表 - 一个美食可以有多张图片:这些图片不能同时属于两个美食 | id | int key auto | | 主键 | | ----- | ------------ | ------ | -------- | | msId | INT | 美食id | 美食 | | title | VARCHAR(155) | 标题 | 存储标题 | | path | VARCHAR(255) | 路径 | 图片路径 | #### 地区省份表 - 一个地区可以有多个美食,一个美食被多地区拥有 | id | INT KEY AUTO | | 主键 | | ------------- | ------------ | -------------- | ------------ | | name | VARCHAR(155) | 存储地区名 | 地区名 | | regionBriefly | VARCHAR(255) | 地区特产简介 | 地区特产简介 | | searchCount | INT | 存储搜索的数量 | 地区搜索数量 | - 标注 - 地区搜索数量,需要前端进行 请求查询接口的时候进行添加 - 用户分享的时候 name字段默认插入 用户所在地区的 用户表中的u_area 字段的信息 - 地区可以设置为静态数据,到时候可以在用户所在地区 用id去指向地区表 #### 点赞表 - 一个用户可以对多个美食点赞, 一个美食也可以被多个用户点赞: 多对多 | id | INT KEY AUTO | | 主键 | | ---- | ------------ | ------ | ------------ | | uid | INT | 用户id | 点赞的用户 | | msid | INT | 美食id | 被点赞的美食 | #### 评论表:根评论表 - 一个用户可以对多个美食进行评论, 一个美食也可以被多个用户评论 多对多 | id | INT KEY AUTO | | 主键 | | ---------- | ------------ | ---------------------------------------- | ------------ | | cContent | VATCHAR(255) | 存储用户评论的内容 | 评论内容 | | uid | INT | 评论美食的用户 | 评论的用户ID | | msid | INT | 美食记录的id | 美食ID | | createTime | BIGINT | 评论时间 | 评论时间 | | parent_id | INT | 自关联,有就不是根评论
否则是根评论 | 根评论ID | - 表设计思路 ![image-20211206191207286](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211206191207286.png) - 模拟效果 用于设计表 image-20211206174448319 #### 收藏表--- - 一个用户可以收藏一个美食, 一个美食也可以同时被多个用户收藏: 多对多 | id | | | 主键 | | ---- | ---- | -------------- | ------ | | msid | INT | 美食id | 美食id | | uid | INT | 收藏美食的用户 | 用户 | #### 用户表 ......存储个人数据 | ID int key auto 存储用户id 主键 | | ------------------------------------------------------------ | | u_id INT 用 户i d 唯一主键 | | u_name varchar(20) 用 户 名 登录用户名 | | u_pwd varchar() 用户密码 登 录 密码 | | u_phone char(11) 用户电话 用户手机号(不可重复) | | u_email varchar(25) 用户邮箱 用户邮箱(不可重复) | | u_nikename varchar(10) 用户昵称 | | u_area varvchar(20) 用户地区 用户所在地区 | | u-time datetime YYYY-MM-DD HH:MM:SS 用户注册的时间 | | isAdmin 默认 false 是否是管理员 | | isEffective 默认有效 账号是否有效 | | avatar varchar(255) 头像 头像路径 | | signature varchar(255) 签名 用户个人简介 | | | | 用户所在地区 VHR(255) 地区 | #### 好友绑定关系表 | ID | INT KEY AUTO 存储 | 描述 | | | | ---- | ------------------------------------------------------------ | ------------------ | ---- | ---- | | uid | INT 我的id | 我的页面下自己的id | | | | uid2 | INT 我的好友的id | 好友的id | | | - 好友验证状态表 | id | | | 主键 | | ----- | ------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | uid | INT | 请求添加好友的用户 | 发送好友验证的用户id | | uid2 | INT | 接收好友申请的用户 | 接收好友验证的用户id | | state | VHRCHAR | 是否同意
默认0未作出响应, 如果同意,则向请求添加好友的用户发送响应,字段数据修改为1

字段设置为2 表示不同意 如果不同意则发送 `对方不同意`, 默认为null 接收申请的好用未作出响应 | 是否同意

0没有响应
1 同意好友验证
2不同意好友验证 | - 实现思路 ![image-20211206200518202](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211206200518202.png) #### 聊天表 | char_id | INT KEY AUTO | | 主键 | | ------- | ------------ | ---------- | ------ | | content | VARCHAR(255) | 聊天的内容 | 内容 | | time | bigint | 存储时间戳 | 时间戳 | 聊天关联表 - 用户聊天的关联表 char2user2user | id | INT KEY AUTO | | 主键 | | ----------- | ---------------- | ---- | ---------- | | uid | 聊天用户id | | 用户id | | target_uid2 | 聊天的目标用户id | | 目标用户id | | chat_id | 聊天内容id | | | ## 后端开发模块划分 ## 个人模块 - 注册 > 用户名 > > 密码 > > 填写地区 > > 填写 手机号 > > 手机号 发送验证码 > > 填写 邮箱 - 登录 > 手机号登录 > > 邮箱登录 > > 用户名登录 > > 找回密码 (手机号 邮箱验证码验证) - 展示信息修改 > 头像 > > 资料 > > 地区 > > 昵称 - 隐私信息修改 > 密码 ( 验证码) > > 邮箱(验证码) > > 手机号 (验证码) - 点赞 - 收藏 - 好友 > 发送好友验证功能 > > 好友状态返回功能 > > 好友显示界面 > > 聊天功能实现 ## 美食广场 按照个人选择地区 美食点赞量降序排列 - 分享美食时 > 上传封面 (小图) > > 美食描述(文案的意思) > > 上传大图 > > 描述 > > 时间 - 广场主页面 > 文章跳转详情页 - 详情页 > 用户表 > > 点赞 > > 收藏 > > 评论 ## 文档设计说明