Skip to content

Repository files navigation

约拍平台 (Yuepai Platform)

一个连接摄影师与模特的撮合平台,支持发布约拍需求、找搭子、机位分享、作品展示、实时聊天等功能。

功能列表

核心功能

功能模块 说明
用户系统 注册/登录、微信登录、忘记密码、实名认证、升级摄影师
约拍需求 发布需求、浏览列表、摄影师接单、确认合作、完成订单
实时聊天 Socket.IO 实时消息、文字/图片发送、已读标记、聊天列表
作品展示 发布作品集、浏览/点赞/收藏、用户作品列表
找搭子 发布交友帖子、标签筛选、联系搭子
机位分享 分享拍摄地点、地图展示、距离计算
关注系统 关注/取消关注、粉丝/关注列表
拉黑系统 拉黑用户、取消拉黑、拉黑列表
通知系统 实时通知推送、未读数统计
搜索功能 搜索用户/需求/作品/搭子
推荐算法 个性化推荐、同城推荐、热度排序

用户类型

  • 模特 (model):发布约拍需求、选择摄影师
  • 摄影师 (photographer):接单、展示作品集

技术栈

后端

  • Node.js + Express
  • TypeScript
  • MongoDB + Mongoose
  • JWT 认证
  • Socket.IO 实时通信

前端

  • React 18 + TypeScript
  • Vite 构建工具
  • Tailwind CSS
  • Socket.IO Client
  • Zustand 状态管理

小程序

  • 微信小程序原生开发(代码在 miniprogram 目录)

项目结构

yuepai-platform/
├── backend/                 # 后端服务
│   ├── src/
│   │   ├── routes/         # API 路由 (21个模块)
│   │   │   ├── user.route.ts      # 用户相关
│   │   │   ├── demand.route.ts    # 约拍需求
│   │   │   ├── chat.route.ts      # 实时聊天
│   │   │   ├── partner.route.ts   # 找搭子
│   │   │   ├── location.route.ts  # 机位分享
│   │   │   ├── work.route.ts      # 作品集
│   │   │   ├── follow.route.ts    # 关注系统
│   │   │   ├── block.route.ts     # 拉黑系统
│   │   │   ├── notification.route.ts # 通知
│   │   │   └── ...                 # 其他路由
│   │   ├── models/         # 数据模型 (17个)
│   │   ├── middleware/     # 中间件 (认证等)
│   │   ├── utils/          # 工具函数
│   │   ├── jobs/           # 定时任务
│   │   └── app.ts          # 应用入口
│   └── package.json
│
├── frontend/               # 前端应用 (网页版)
│   ├── src/
│   │   ├── pages/          # 页面组件 (38个)
│   │   │   ├── NewHomePage.tsx    # 主页
│   │   │   ├── LoginPage.tsx      # 登录
│   │   │   ├── RegisterPage.tsx   # 注册
│   │   │   ├── ChatPage.tsx       # 聊天
│   │   │   ├── DemandDetailPage.tsx # 需求详情
│   │   │   ├── DemandForm.tsx     # 发布需求
│   │   │   ├── PartnerPage.tsx    # 找搭子
│   │   │   ├── LocationPage.tsx   # 机位分享
│   │   │   ├── WorksPage.tsx      # 作品列表
│   │   │   ├── MinePage.tsx       # 个人中心
│   │   │   ├── PublicProfilePage.tsx # 公开资料
│   │   │   ├── SearchPage.tsx     # 搜索
│   │   │   └── ...                 # 其他页面
│   │   ├── components/     # 通用组件
│   │   ├── services/       # API 服务
│   │   ├── utils/          # 工具函数
│   │   ├── stores/         # Zustand 状态
│   │   └── App.tsx
│   └── package.json
│
├── miniprogram/            # 微信小程序
│
└── docs/                   # 文档和日志
    ├── PROJECT_DOCUMENTATION.md  # 详细文档
    ├── SERVER_MANAGEMENT_GUIDE.md # 服务器部署指南
    └── LOCAL_DEVELOPMENT_GUIDE.md # 本地开发指南

API 接口概览

用户 /api/users

接口 方法 说明
/register POST 用户注册
/login POST 用户登录
/forgot-password POST 忘记密码
/reset-password POST 重置密码
/profile GET/PUT 获取/更新资料
/verify-name POST 实名认证
/upgrade-to-photographer POST 升级摄影师
/wechat-login POST 微信登录
/public/:id GET 公开用户信息

需求 /api/demands

接口 方法 说明
/ GET/POST 获取列表/发布需求
/my GET 我的需求
/:id GET/PUT/DELETE 需求详情/更新/删除
/:id/take PUT 摄影师接单
/:id/confirm-cooperation PUT 确认合作
/:id/complete PUT 完成订单
/:id/cancel-interest PUT 取消接单意向

聊天 /api/chat

接口 方法 说明
/ GET 获取聊天列表
/direct POST 创建私聊
/:id GET 获取聊天详情
/:id/messages GET/POST 获取/发送消息
/:id/read POST 标记已读

作品 /api/works

接口 方法 说明
/ GET/POST 作品列表/发布作品
/my GET 我的作品
/user/:id GET 用户作品
/:id GET/DELETE 作品详情/删除

搭子 /api/partners

接口 方法 说明
/ GET/POST 搭子列表/发布帖子
/my GET 我的帖子
/:id GET/PUT/DELETE 详情/更新/删除
/:id/contact POST 联系搭子

其他接口

  • /api/follow - 关注系统
  • /api/block - 拉黑系统
  • /api/notification - 通知系统
  • /api/location - 机位分享
  • /api/like - 点赞
  • /api/collection - 收藏
  • /api/search - 搜索
  • /api/upload - 文件上传

快速开始

环境要求

  • Node.js v16+
  • MongoDB

本地开发

# 启动 MongoDB
brew services start mongodb/brew/mongodb-community

# 后端
cd backend && npm install && npm run dev

# 前端
cd frontend && npm install && npm run dev

前端访问地址:http://localhost:5173

生产部署

详见 SERVER_MANAGEMENT_GUIDE.md

线上地址:https://paiyipai.xyz

环境配置

后端 .env

JWT_SECRET=your_jwt_secret
MONGODB_URI=mongodb://localhost:27017/yuepai-platform
PORT=5001

前端 .env

VITE_API_URL=https://paiyipai.xyz/api
VITE_SOCKET_URL=https://paiyipai.xyz

文档索引

文档 说明
PROJECT_DOCUMENTATION.md 完整项目文档
SERVER_MANAGEMENT_GUIDE.md 服务器部署与运维
LOCAL_DEVELOPMENT_GUIDE.md 本地开发指南
ADMIN_DASHBOARD.md 后台管理说明

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages