AI学习之Cursor项目实战
一、介绍
Cursor 是一款为程序员量身打造的 AI 编程编辑器,基于 VS Code 打造,但集成了强大的 AI 能力(如 ChatGPT),支持用自然语言编写、修改和理解代码。
二、核心功能
1. Ask 模式:只问不动代码
适用场景:
你想向 AI 提问,但不希望它直接修改代码。
2. Agent 模式:自动修改代码
适用场景:
你希望 AI 帮你改代码,并自动把变更应用到项目中。
3. Manual 模式:建议先看再选用
适用场景:
你希望 AI 给出代码修改建议,但不自动改。
适用于谨慎变更、团队协作、需要先 review 的情况。
三、实战项目
我让cursor帮我实现一个简单的社交app,使用的是cursor的agent模式,cursor做到了全程0错误的开发&交付;
项目展示:
# 交友App一个简单的交友应用,包含用户注册、登录、个人资料管理、好友添加等功能。## 功能特性- 👤 用户注册和登录
- 📝 个人资料管理
- 🔍 发现其他用户
- 👥 发送好友请求
- ✅ 接受/拒绝好友请求
- 📋 查看好友列表
- 🎨 现代化UI设计## 技术栈### 后端
- Node.js + Express
- SQLite 数据库
- JWT 认证
- bcryptjs 密码加密### 前端
- React 18
- React Router
- Axios
- 现代化CSS样式## 快速开始### 1. 安装依赖```bash
# 安装后端依赖
npm install# 安装前端依赖
cd client && npm install
```### 2. 启动应用#### 方法一:使用启动脚本(推荐)
```bash
./start.sh
```#### 方法二:手动启动
```bash
# 启动后端服务器
npm run server# 新开一个终端,启动前端服务器
cd client && npm start
```#### 方法三:同时启动前后端
```bash
npm run dev
```### 3. 访问应用- 前端: http://localhost:3000
- 后端API: http://localhost:5000### 4. 创建演示数据(可选)```bash
node demo-data.js
```这将创建5个演示用户账号,你可以使用这些账号来测试应用功能。## 演示账号运行演示数据脚本后,你可以使用以下账号登录:| 用户名 | 密码 | 姓名 | 简介 |
|--------|------|------|------|
| alice | password123 | 爱丽丝 | 喜欢旅行和摄影的女生 |
| bob | password123 | 鲍勃 | 热爱运动和音乐的程序员 |
| charlie | password123 | 查理 | 大学生,喜欢读书和看电影 |
| diana | password123 | 戴安娜 | 设计师,热爱艺术和美食 |
| edward | password123 | 爱德华 | 医生,喜欢健身和烹饪 |## 使用说明1. **注册账号**: 访问注册页面,填写用户名、邮箱、密码等信息
2. **登录**: 使用注册的用户名和密码登录
3. **完善资料**: 在个人资料页面添加姓名、年龄和个人简介
4. **发现用户**: 在发现页面浏览其他用户,可以发送好友请求
5. **管理好友**: 在好友请求页面处理收到的好友请求
6. **查看好友**: 在好友列表页面查看已添加的好友## 项目结构```
dating-app/
├── server/ # 后端代码
│ └── index.js # Express服务器
├── client/ # 前端代码
│ ├── public/
│ ├── src/
│ │ ├── components/ # React组件
│ │ │ ├── Navbar.js
│ │ │ ├── Login.js
│ │ │ ├── Register.js
│ │ │ ├── Profile.js
│ │ │ ├── Users.js
│ │ │ ├── Friends.js
│ │ │ └── FriendRequests.js
│ │ ├── App.js # 主应用组件
│ │ └── index.js # 入口文件
│ └── package.json
├── package.json # 后端依赖
├── start.sh # 启动脚本
├── demo-data.js # 演示数据脚本
└── README.md
```## API接口### 认证相关
- `POST /api/register` - 用户注册
- `POST /api/login` - 用户登录### 用户相关
- `GET /api/profile` - 获取个人资料
- `PUT /api/profile` - 更新个人资料
- `GET /api/users` - 获取所有用户### 好友相关
- `POST /api/friend-request` - 发送好友请求
- `GET /api/friend-requests` - 获取收到的好友请求
- `PUT /api/friend-request/:id/accept` - 接受好友请求
- `PUT /api/friend-request/:id/reject` - 拒绝好友请求
- `GET /api/friends` - 获取好友列表## 数据库应用使用SQLite数据库,会自动创建以下表:- `users` - 用户信息
- `friend_requests` - 好友请求
- `friendships` - 好友关系## 开发说明- 后端服务器运行在端口5000
- 前端开发服务器运行在端口3000
- 使用JWT进行用户认证
- 密码使用bcryptjs加密存储
- 支持跨域请求## 测试应用1. 启动应用后,访问 http://localhost:3000
2. 使用演示账号登录,或者注册新账号
3. 测试以下功能:- 浏览其他用户- 发送好友请求- 接受/拒绝好友请求- 查看好友列表- 编辑个人资料## 故障排除### 端口被占用
如果端口5000或3000被占用,可以修改配置文件中的端口号。### 数据库问题
如果遇到数据库问题,可以删除 `dating_app.db` 文件,应用会自动重新创建。### 依赖安装失败
如果npm安装失败,可以尝试:
```bash
npm cache clean --force
npm install --force
```## 注意事项- 确保Node.js版本 >= 14
- 首次运行会自动创建数据库文件
- 所有API请求需要JWT认证(除了注册和登录)
- 用户名和邮箱必须唯一
- 这是一个演示项目,生产环境需要额外的安全措施## 许可证MIT License
使用展示:
四、总结
通过这个简单的实战项目,我有一种担忧,相信你们也有,哈哈,cursor的强大远远超出了我的预期,所以作为技术研发的我们,应该在新时代的开发模式下重新调整下自己的定位,可能需要从一个比赛选手的角色,向一位教练的角色转变,这是我的第一反应,具体转变的动作和内容,后续我会专门开一篇文章聊下,最后一句话感叹下:新的生产力,是一次好的时机,同时也是一次有力的挑战。