"邪修厨房"是一款面向现代快节奏生活的烹饪应用,1.2 产品定位
首个系统化、安全可靠的"邪修做饭"垂直社区平台,专注于非常规但高效的烹饪技巧分享。
1.3 目标用户
用户群体 占比 核心需求 厨房小白 40% 简单易学、零基础入门 上班族 35% 省时省力、快速完成 学生群体 15% 工具简单、成本低廉 烹饪爱好者 10% 创意玩法、社交分享
1.4 核心价值主张
· 对用户:获得经过验证的高效烹饪技巧,节省时间成本 · 对创作者:获得内容曝光和社区影响力 · 对平台:构建独特的烹饪内容生态
市场分析
2.1 市场规模
· 中国在线菜谱市场规模:约50亿元 · 年轻用户占比:25-35岁用户占68% · 增长趋势:年增长率15%
2.2 竞品分析
2.2.1 直接竞品
无专门针对"邪修做饭"的垂直平台
2.2.2 间接竞品
竞品 优势 劣势 差异化机会 下厨房 内容丰富、用户基数大 内容传统、缺乏趣味性 专注非常规技巧 小红书 流量大、传播快 内容分散、缺乏系统化 结构化内容组织 抖音 视频形式生动 信息碎片化、难以检索 深度内容沉淀
2.3 用户痛点分析
- 信息分散:优质邪修内容散落各平台
- 安全风险:部分方法存在安全隐患
- 验证困难:效果真实性难以判断
- 检索不便:缺乏有效分类和搜索
产品功能详述
3.1 用户系统模块
3.1.1 注册登录功能
// 功能规格
- 支持手机号+验证码注册
- 第三方登录:微信、抖音、QQ
- 强制登录机制:浏览内容前需登录
- 个性化标签选择:注册时选择兴趣标签
// 业务规则
- 用户需同意《社区规范》和《安全须知》
- 新用户默认等级:邪修学徒(Lv.1)
- 初始权限:浏览、收藏、点赞、基础评论3.1.2 用户成长体系
// 等级体系
邪修学徒(Lv.1-3) → 邪修高手(Lv.4-6) → 邪修大师(Lv.7-9) → 厨魔(Lv.10)
// 成长规则
- 发布菜谱:+10经验
- 获得点赞:+2经验/个
- 菜谱被收藏:+5经验/次
- 连续登录:+5经验/天3.2 内容核心模块
3.2.1 首页推荐算法
-- 推荐权重分配
相关性权重:40%
- 用户标签匹配:20%
- 搜索历史匹配:20%
热度权重:35%
- 近期点赞数:15%
- 收藏数:10%
- 评论数:5%
- 分享数:5%
质量权重:25%
- 作者等级:10%
- 完成率:10%
- 安全评分:5%以暗黑修仙美学为主题,结合现代极简设计风格,为用户提供简单易学的烹饪秘籍。应用主打快速、低成本、易操作的菜谱,特别适合使用微波炉、电饭煲等现代厨具的用户。
该平台专注于"邪修做饭"这一独特的烹饪方式,即使用非常规但高效的烹饪方法,帮助用户节省时间成本,同时享受烹饪的乐趣。平台不仅提供菜谱分享,还建立了完整的用户成长体系和社交互动机制。
- 框架: React.js
- 状态管理: Redux Toolkit
- 路由: React Router v7
- 构建工具: Webpack
- UI库: 自定义组件库(符合暗黑修仙美学)
- 样式: CSS Modules
frontend/
├── public/ # 静态资源文件
├── src/ # 源代码主目录
│ ├── components/ # 可复用UI组件
│ ├── pages/ # 页面组件
│ ├── services/ # API服务层
│ ├── store/ # 状态管理
│ ├── utils/ # 工具函数
│ ├── App.js # 根组件
│ └── index.js # 应用入口
├── webpack.config.js # Webpack配置
└── package.json # 项目依赖和脚本
- 首页 - 推荐菜谱和搜索功能
- 菜谱详情页 - 展示菜谱详细信息
- 创作页面 - 用户创建和编辑菜谱
- 个人中心 - 用户信息和作品管理
- 分类页面 - 按流派分类浏览菜谱
- 语言: Node.js
- 框架: Express.js
- 数据库: MySQL(通过Sequelize ORM)
- 认证: JWT + HttpOnly Cookie
- 安全: Helmet.js, CORS, Compression, Rate Limiting
- 密码加密: Bcrypt.js
backend/
├── src/ # 源代码主目录
│ ├── config/ # 配置文件
│ ├── controllers/ # 控制器
│ ├── middleware/ # 中间件
│ ├── models/ # 数据模型
│ ├── routes/ # 路由
│ ├── scripts/ # 脚本文件
│ └── server.js # 应用入口
├── .env # 环境变量配置
└── package.json # 项目依赖和脚本
-
注册登录功能
- 支持邮箱+密码注册
- JWT令牌认证机制
- HttpOnly Cookie存储令牌,防范XSS攻击
- 用户等级体系(邪修学徒→邪修高手→邪修大师→厨魔)
- 经验值系统(发布菜谱、获得点赞、菜谱被收藏等获取经验)
-
用户信息管理
- 个人资料展示
- 头像上传
- 作品集管理
-
菜谱浏览
- 首页推荐算法(相关性、热度、质量权重)
- 分类浏览(按流派、标签等维度)
- 搜索功能(关键词搜索和多种排序方式)
- 季节性推荐
-
菜谱详情
- 结构化菜谱数据(标题、作者、封面图、材料、步骤等)
- 安全评级系统(低/中/高风险)
- 点赞、收藏、评论功能
- 评分系统
-
菜谱创作
- 菜谱创建和编辑
- 图片上传(封面图、步骤图)
- 发布权限控制(根据用户等级限制发布数量)
- 菜谱数据验证
-
评论系统
- 用户评论和回复
- 评论审核机制
- 频率限制防止刷评
-
收藏与点赞
- 菜谱收藏功能
- 点赞功能
- 收藏和点赞计数
- 五大流派
- 微波炉派:快速、简单、无明火
- 电饭煲党:一锅出、预约功能、保温
- 饮料替代流:创新、低成本、趣味性
- 空气炸锅派:无油、健康、酥脆
- 极简主义:步骤少、工具少、时间短
项目前端集成了LeanCloud服务,用于:
- 用户认证
- 数据存储
- 实时通信(计划中)
计划集成阿里云服务用于:
- 图片存储和CDN加速
- 内容安全审核
- 数据备份
项目采用MySQL作为主数据库,通过Sequelize ORM进行数据建模和操作。
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | INTEGER (主键) | 用户ID |
| username | STRING | 用户名 |
| STRING | 邮箱 | |
| password | STRING | 密码(加密存储) |
| level | STRING | 用户等级 |
| experience | INTEGER | 经验值 |
| avatar | STRING | 头像URL |
| createdAt | DATETIME | 创建时间 |
| updatedAt | DATETIME | 更新时间 |
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | INTEGER (主键) | 菜谱ID |
| title | STRING | 菜谱标题 |
| author_id | INTEGER | 作者ID |
| author_username | STRING | 作者用户名 |
| author_level | STRING | 作者等级 |
| author_avatar | STRING | 作者头像 |
| cover_image | STRING | 封面图URL |
| cooking_time | INTEGER | 烹饪时间 |
| difficulty | STRING | 难度等级 |
| cost_level | STRING | 成本等级 |
| servings | INTEGER | 份量 |
| tags | JSON | 标签数组 |
| safety_level | ENUM('low', 'medium', 'high') | 安全等级 |
| materials | JSON | 材料清单 |
| steps | JSON | 制作步骤 |
| likes | INTEGER | 点赞数 |
| collects | INTEGER | 收藏数 |
| rating | FLOAT | 评分 |
| rating_cnt | INTEGER | 评分人数 |
| season | STRING | 季节性推荐 |
| createdAt | DATETIME | 创建时间 |
| updatedAt | DATETIME | 更新时间 |
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | INTEGER (主键) | 评论ID |
| recipe_id | INTEGER | 菜谱ID |
| user_id | INTEGER | 用户ID |
| content | TEXT | 评论内容 |
| parent_id | INTEGER | 父评论ID(用于回复) |
| createdAt | DATETIME | 创建时间 |
| updatedAt | DATETIME | 更新时间 |
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | INTEGER (主键) | 点赞ID |
| recipe_id | INTEGER | 菜谱ID |
| user_id | INTEGER | 用户ID |
| createdAt | DATETIME | 创建时间 |
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | INTEGER (主键) | 收藏ID |
| recipe_id | INTEGER | 菜谱ID |
| user_id | INTEGER | 用户ID |
| createdAt | DATETIME | 创建时间 |
为提高查询性能,建立了以下索引:
- 用户表:email和username唯一索引
- 菜谱表:title、author_id、season和createdAt索引
- 评论表:recipe_id和user_id索引
- 点赞表:recipe_id和user_id复合索引
- 收藏表:recipe_id和user_id复合索引
- 采用JWT (JSON Web Token) 进行用户身份验证
- 使用HttpOnly Cookie存储JWT令牌,防范XSS攻击
- 密码使用bcrypt进行加密存储
- 实现了登录状态保持机制(30天有效期)
- 基于角色的访问控制 (RBAC)
- 公开路由:浏览菜谱、查看菜谱详情、用户注册登录
- 受保护路由:创建菜谱、编辑菜谱、删除菜谱、评论、点赞、收藏等
- 用户只能编辑和删除自己创建的菜谱
- 集成Helmet.js增强HTTP安全头
- 配置CORS中间件,明确允许前端域名跨域请求
- 实现请求频率限制(普通接口15分钟100次,认证接口15分钟5次)
- 密码强度验证(6-100字符)
- 用户名和邮箱唯一性验证
- 输入数据验证和清理
- 统一错误处理中间件
- 标准化错误响应格式
- 详细的错误日志记录
- 用户友好的错误提示
- 使用dotenv管理环境变量
- 分离开发环境和生产环境配置
- 敏感信息通过环境变量管理,禁止硬编码
- 前端:
npm start(开发模式)/npm run build(生产构建) - 后端:
node src/server.js(需先设置环境变量)
- 使用compression中间件压缩HTTP响应
- 数据库连接池配置
- 分页查询避免大数据量传输
- 合理的数据库索引设计
- 移动端应用 - 开发React Native移动应用
- 社交功能增强 - 关注系统、消息通知、私信功能
- 挑战系统 - 定期举办烹饪挑战活动
- 食材替换建议 - 基于AI的食材替换推荐
- 微服务架构 - 将单体应用拆分为微服务
- 缓存系统 - 集成Redis缓存热点数据
- 搜索引擎 - 集成Elasticsearch提升搜索体验
- 实时通信 - 集成WebSocket实现实时互动
"邪修厨房"通过独特的"邪修做饭"理念,为现代快节奏生活中的用户提供了一种全新的烹饪体验。项目采用现代化的前后端技术架构,实现了完整的用户系统、菜谱管理和社交互动功能。通过严格的权限验证和安全措施,确保了平台的安全性和稳定性。未来,项目将继续扩展功能,提升用户体验,致力于成为"邪修做饭"领域的垂直社区平台。