文章

用 Cursor 开发全栈 Web 应用:Nextjs + Supabase 全流程实战

见字如面,与大家分享实践中的经验与思考。

通过 Cursor 结合 MCP 可以轻松开发一款全栈 Web 应用,这里将使用 Next.js + Supabase 作为主要技术栈。即使你没有深入了解技术原理和细节,只要准备好基础配置,通过本文提供的实战指南和提示词模板,也能轻松完成项目开发。

视频教程

https://www.bilibili.com/video/BV1dCTjzkEsD

准备工作

环境配置

1. Cursor 最新版本

下载地址:https://github.com/flyeric0212/cursor-history-links

2. Supabase 项目设置

实战开发

本文以一个美食转盘应用为例进行演示,你可以直接参考使用或替换成任意你想要开发的创意项目。

01 准备开发需求文档

将以下内容保存为:开发需求.md 文件。

# 今日吃啥转盘应用开发需求
​
## 项目目标
​
开发一个响应式"今日吃啥"转盘网页应用,帮助用户随机决定吃什么。用户可以添加自定义菜谱或从推荐菜谱中选择,通过旋转转盘随机选出一个结果。
​
## 技术栈
​
- **前端框架**: Next.js (App Router)
- **开发语言**: TypeScript
- **样式处理**: Tailwind CSS
- **数据存储**: Supabase
​
## 功能需求
​
1. **菜谱管理**
   - 系统预置流行菜谱列表
   - 用户可添加自定义菜谱
   - 用户可从流行菜谱列表中选择添加到转盘
   - 用户可删除转盘中的菜谱
   - 每个转盘最多支持12个菜谱
​
2. **转盘功能**
   - 根据用户添加的菜谱动态生成转盘
   - 每个菜谱使用不同颜色区分
   - 点击按钮触发转盘旋转动画
   - 旋转结束后显示随机选中的结果
​
3. **用户系统**
   - 免登录设计,使用UUID生成唯一用户ID
   - 用户ID存储在LocalStorage中实现持久化
   - 首次访问自动生成用户ID并初始化
​
4. **响应式设计**
   - 适配移动端、平板和桌面设备
   - 不同设备有合适的布局和交互方式
​
## 数据存储设计
​
### 主要数据结构
​
- **用户表(users)**:存储用户的唯一标识和创建时间
- **流行菜谱表(popular_recipes)**:系统预置的菜谱列表,包含菜谱ID和名称
- **用户自定义菜谱表(user_custom_recipes)**:用户自己创建的菜谱,包含用户ID和菜谱名称
- **用户转盘项目表(user_wheel_items)**:用户添加到转盘的菜谱,包含用户ID、菜谱名称、来源类型和颜色
​
### 数据关系说明
​
1. **流行菜谱**:系统预置,所有用户共享,用户不能修改
2. **自定义菜谱**:每个用户可以创建自己的菜谱
3. **转盘项目**:用户可以将流行菜谱或自定义菜谱添加到自己的转盘中
4. **唯一性规则**:同一用户的转盘中不允许有重名菜谱
​
## 业务逻辑设计
​
1. **用户标识处理**
   - 首次访问时生成UUID并存储到LocalStorage
   - 后续访问时从LocalStorage获取用户ID
   - 如果获取失败则重新生成
​
2. **菜谱数据管理**
   - 加载时获取用户转盘项目和流行菜谱
   - 添加自定义菜谱时先检查是否存在,再创建
   - 添加流行菜谱到转盘时创建关联记录
   - 删除操作仅移除用户与菜谱的关联
​
3. **转盘逻辑**
   - 根据用户的转盘项目数据动态生成转盘
   - 转盘旋转使用CSS动画实现
   - 随机选择结果并控制转盘停止位置
   - 结果展示与高亮处理
​
## 用户体验设计
​
1. **页面布局**
   - 顶部:应用标题和简短说明
   - 中部:转盘组件和结果显示
   - 底部/侧边:菜谱管理界面
​
2. **交互设计**
   - 转盘中心有明显的旋转按钮
   - 添加菜谱表单简洁直观
   - 流行菜谱可快速选择添加
   - 已添加菜谱可一键删除
​
3. **响应式适配**
   - 移动端:垂直布局,转盘在上,菜谱管理在下
   - 平板/桌面:水平布局,转盘在左,菜谱管理在右
   - 转盘大小根据屏幕尺寸自动调整
​
## 实施步骤
​
### 1. 项目初始化与环境配置
​
```bash
# 创建Next.js项目
npx create-next-app food-wheel-app --typescript
cd food-wheel-app
​
# 安装依赖
npm install @supabase/supabase-js uuid
npm install -D @types/uuid
​
# 配置Tailwind CSS (已包含在Next.js项目中)
```
​
### 2. 数据库设置
​
1. 创建Supabase项目
2. 创建必要的数据表
3. 初始化流行菜谱数据
4. 设置适当的访问权限
​
### 3. 项目结构搭建
​
1. 创建基础目录结构
2. 配置Supabase客户端
3. 实现用户ID生成和管理功能
​
### 4. 组件开发
​
1. 创建转盘组件
   - SVG实现转盘视觉效果
   - 旋转动画和结果选择逻辑
​
2. 创建菜谱管理组件
   - 自定义菜谱添加表单
   - 流行菜谱选择列表
   - 已添加菜谱展示和删除
​
3. 实现页面布局和响应式设计
​
### 5. 数据交互实现
​
1. 用户数据初始化
2. 菜谱数据CRUD操作
3. 转盘数据与视图绑定
​
### 6. 优化与测试
​
1. 性能优化
2. 跨设备测试
3. 边缘情况处理
​
## 验收标准
​
1. 转盘能正确显示用户添加的菜谱
2. 转盘旋转动画流畅,结果选择随机有效
3. 菜谱管理功能正常工作
4. 用户数据正确持久化
5. 在不同设备上显示正常且交互友好

撰写技巧:如果你不确定如何编写需求文档,可以使用 Cursor、ChatGPT、DeepSeek 等AI工具来协助完成。主要确保包含以下核心结构:

  • 项目概述/目标

  • 功能需求

  • 用户体验设计

  • 核心业务流程

  • 技术栈

  • 数据库设计

  • 实施步骤

02 配置 Cursor Rules

CleanShot 2025-06-09 at 20.41.14@2x

建议配置三层架构的 Cursor 开发规则,以确保代码质量和开发效率:

  • 通用规则:general.mdc、project-structure.mdc、git.mdc、document.mdc

  • 语言规则:typescript.mdc

  • 框架规则:nextjs.mdc

可直接在github上获取:

https://github.com/flyeric0212/cursor-rules

这些规则文件将帮助 Cursor 更好地理解项目上下文,生成更符合最佳实践的代码。

03 配置 MCP 服务

通过 MCP Server 在 Cursor 中集成 Supabase,让AI自动管理免费的后端数据库服务。这样可以避免手工编写SQL语句,但建议在AI生成SQL后进行人工审核以确保合理性。

CleanShot 2025-06-09 at 20.19.52@2x

📖 详细配置教程Cursor 轻松集成 Supabase MCP 服务

MCP JSON 配置示例

{
  "mcpServers": {
    "supabase": {
      "command": "npx",
      "args": [
        "-y",
        "@supabase/mcp-server-supabase@latest",
        "--access-token",
        "your_supabase_access_token"
      ]
    }
  }
}

⚠️ 注意:请将 your_supabase_access_token 替换为你的实际 Supabase 访问令牌。

04 开发提示词模板

项目开发提示词

基于引用的【开发需求.md】文档,在当前目录下完成今天吃啥美食转盘项目的开发。
​
请从第一步"项目初始化与环境配置"开始,按照文档中的实施步骤逐步进行开发。如果在某个步骤需要我进行人工干预或确认,请先输出下一步的具体开发计划,等待我的确认后再继续。
​
请确保:
1. 严格按照需求文档进行开发
2. 代码质量符合最佳实践
3. 实现完整的功能特性
4. 提供清晰的开发进度反馈

数据库创建提示词

继续进行下一步开发计划,将数据结构导入到 Supabase 数据库中。
​
具体要求:
1. 使用 supabase mcp 工具,将初始化SQL导入到我已创建的项目中
   项目ID:your_supabase_project_id(请替换为你的实际项目ID)
​
2. 完成数据库配置后,请将以下环境变量输出到 .env.local 文件中:
   - NEXT_PUBLIC_SUPABASE_URL
   - NEXT_PUBLIC_SUPABASE_ANON_KEY
​
3. 验证数据库连接是否正常
​
请确保所有数据表结构符合需求文档中的设计规范。

推荐配置

  • 模式选择:使用 Agent 模式获得更智能的开发体验

  • 模型推荐:Claude 3.7 或 Claude 4.0 模型(性能更优)

CleanShot 2025-06-09 at 21.22.48@2x

🎉 最终效果展示

经过美化后的应用界面,可以直接访问:https://eatwhat.flyeric.top/

CleanShot 2025-06-09 at 20.34.37

完整的项目目录结构展示:

CleanShot 2025-06-09 at 20.37.15@2x

最后

这套开发流程不仅适用于美食转盘应用,你还可以将其应用到任何其他创意项目的开发中。关键是要善用AI工具的能力,同时保持对代码质量和用户体验的关注。

Cursor 系列精选阅读

如果你对 Cursor AI 编程感兴趣,可以浏览我的更多专题文章,同时我也会不定期地更新到视频号,欢迎观看和订阅。

🚀 快速上手

💻 开发环境配置

🔌 MCP 工具生态

📝 规范与项目管理

🎨 UI/UX 设计流程

🔬 实战案例


欢迎关注我的公众号"Eric技术圈",原创技术文章第一时间推送。

License:  CC BY 4.0