AI源码
AI源码AI 精选 · 优质源码 · 助力学习

同城拼车小程序

这是一个完整的同城拼车服务平台,包含微信小程序端和PC管理后台。系统实现了拼车信息发布、拼车搜索、订单管理、收藏、问题反馈等核心功能,支持乘客找车和司机找人两种模式,采用前后端分离架构,适合作为微信小程序全栈开发学习项目或计算机设计参考。

评分:4.8/5.0
销量:53
发布:2025/12/2
难度:L2 进阶级
💬 联系咨询观看视频介绍
永久使用权限
免费更新维护
技术支持服务

项目封面

截图 1

项目说明

同城拼车小程序

项目简介

这是一个完整的同城拼车服务平台,包含微信小程序端和PC管理后台。系统实现了拼车信息发布、拼车搜索、订单管理、收藏、问题反馈等核心功能,支持乘客找车和司机找人两种模式,采用前后端分离架构,适合作为微信小程序全栈开发学习项目或计算机设计参考。

技术栈

后端技术

技术版本/说明
运行环境Node.js
Web框架Express 4.16.1
数据库MySQL 5.7+
数据库驱动mysql 2.18.1
身份认证jsonwebtoken (JWT)
文件上传multer
跨域处理cors
HTTP请求axios
UUID生成uuid
热重载nodemon

管理后台技术

技术版本/说明
前端框架Vue 2.6.11
UI组件库Element UI 2.15.6
路由管理Vue Router 3.0.7
状态管理Vuex 3.4.0
HTTP请求Axios 0.24.0
图表库ECharts 5.3.1
富文本编辑器Quill 1.3.7
CSS预处理器Less
粒子效果vue-particles

小程序端技术

技术版本/说明
开发框架微信小程序原生框架
开发语言JavaScript (ES6+)
样式语言WXSS
模板语言WXML
富文本解析wxParse

项目特点

  • 前后端分离:后端提供RESTful API,前端独立开发部署
  • 双向拼车模式:支持乘客找车和司机找人两种发布模式
  • 完整拼车流程:涵盖发布拼车、搜索拼车、收藏、订单管理全流程
  • 多角色支持:支持管理员、乘客、司机多种角色
  • 订单状态管理:完整的订单状态流转(未接单→已接单→完成/取消/拒接)
  • 数据可视化:管理后台集成ECharts图表展示
  • 富文本支持:支持富文本资讯内容编辑和展示
  • 问题反馈:用户可提交问题反馈,管理员可回复处理

功能模块

小程序端功能

1. 首页模块 (pages/index)

  • 拼车信息列表展示
  • 按类型筛选(乘客/司机)
  • 搜索功能
  • 拼车详情查看

2. 发布拼车模块 (pages/add)

  • 选择发布类型(乘客找车/司机找人)
  • 填写出发地和目的地
  • 设置出发时间
  • 填写同行人数
  • 设置价格
  • 填写车辆信息
  • 添加途径地点
  • 补充说明

3. 资讯模块

  • 资讯列表 (pages/newsList)
  • 资讯详情 (pages/newsDetail)
  • 富文本内容展示

4. 订单管理模块

  • 我的订单 (pages/myorder)
  • 订单详情 (pages/orderDetail)
  • 订单状态查看
  • 订单操作(取消等)

5. 收藏模块 (pages/star)

  • 我的收藏列表
  • 取消收藏
  • 快速查看收藏的拼车信息

6. 问题反馈模块 (pages/question)

  • 提交问题反馈
  • 上传图片
  • 填写联系邮箱
  • 查看回复

7. 个人中心模块 (pages/my)

  • 用户信息展示
  • 我的订单入口
  • 我的收藏入口
  • 问题反馈入口
  • 用户信息编辑 (pages/userInfo)

管理后台功能

1. 首页仪表盘 (Welcome.vue)

  • 数据统计概览
  • 图表展示

2. 用户管理 (User.vue)

  • 用户列表
  • 用户信息查看
  • 用户角色管理(管理员/乘客/司机)
  • 用户状态管理

3. 订单管理 (Orders/)

  • 拼车订单列表
  • 订单详情查看
  • 订单状态管理
  • 订单筛选

4. 资讯管理 (News/)

  • 资讯列表
  • 新增/编辑/删除资讯
  • 富文本内容编辑

5. 收藏管理 (Star.vue)

  • 收藏记录列表
  • 收藏统计

6. 问题反馈 (Question.vue)

  • 用户反馈列表
  • 回复处理
  • 查看反馈详情

项目结构

pingche/
├── admin/                          # 管理后台(Vue2 + Element UI)
│   ├── public/                     # 静态资源
│   │   └── index.html              # HTML模板
│   ├── src/
│   │   ├── api/                    # API接口封装
│   │   ├── assets/                 # 静态资源
│   │   ├── components/             # 公共组件
│   │   ├── filters/                # 过滤器
│   │   ├── router/                 # 路由配置
│   │   ├── store/                  # Vuex状态管理
│   │   ├── utils/                  # 工具函数
│   │   ├── views/                  # 页面视图
│   │   │   ├── News/               # 资讯管理
│   │   │   ├── Orders/             # 订单管理
│   │   │   ├── Home.vue            # 主布局
│   │   │   ├── Login.vue           # 登录页
│   │   │   ├── Question.vue        # 问题反馈
│   │   │   ├── Star.vue            # 收藏管理
│   │   │   ├── User.vue            # 用户管理
│   │   │   └── Welcome.vue         # 首页仪表盘
│   │   ├── App.vue                 # 根组件
│   │   └── main.js                 # 入口文件
│   ├── package.json
│   └── vue.config.js               # Vue配置
│
├── express/                        # 后端服务(Express + MySQL)
│   ├── bin/
│   │   └── www                     # 启动入口
│   ├── config/
│   │   ├── db.js                   # 数据库配置
│   │   └── index.js                # 全局配置
│   ├── public/
│   │   └── images/                 # 上传图片存储
│   ├── routes/
│   │   ├── admin/                  # 管理端API
│   │   │   ├── index.js            # 路由入口
│   │   │   ├── news.js             # 资讯接口
│   │   │   ├── orders.js           # 订单接口
│   │   │   ├── question.js         # 问题反馈接口
│   │   │   ├── star.js             # 收藏接口
│   │   │   └── user.js             # 用户接口
│   │   ├── web/                    # 小程序端API
│   │   │   ├── index.js            # 路由入口
│   │   │   ├── news.js             # 资讯接口
│   │   │   ├── orders.js           # 订单接口
│   │   │   ├── question.js         # 问题反馈接口
│   │   │   ├── star.js             # 收藏接口
│   │   │   └── user.js             # 用户接口
│   │   ├── index.js                # 路由入口
│   │   └── upload.js               # 文件上传
│   ├── util/
│   │   ├── index.js                # 工具函数
│   │   └── wechat.js               # 微信相关工具
│   ├── app.js                      # Express应用配置
│   └── package.json
│
├── min/                            # 微信小程序
│   ├── components/                 # 自定义组件
│   │   └── wxParse/                # 富文本解析组件
│   ├── images/                     # 图片资源
│   │   └── tabbar/                 # TabBar图标
│   ├── pages/                      # 页面目录
│   │   ├── index/                  # 首页
│   │   ├── add/                    # 发布拼车
│   │   ├── my/                     # 个人中心
│   │   ├── userInfo/               # 用户信息
│   │   ├── newsList/               # 资讯列表
│   │   ├── newsDetail/             # 资讯详情
│   │   ├── question/               # 问题反馈
│   │   ├── myorder/                # 我的订单
│   │   ├── star/                   # 我的收藏
│   │   └── orderDetail/            # 订单详情
│   ├── utils/
│   │   ├── api.js                  # API接口封装
│   │   ├── request.js              # 请求封装
│   │   ├── feedback.js             # 反馈工具
│   │   └── util.js                 # 工具函数
│   ├── app.js                      # 小程序入口
│   ├── app.json                    # 小程序配置
│   ├── app.wxss                    # 全局样式
│   └── project.config.json         # 项目配置
│
├── 截图/                           # 项目截图
├── pingche.sql                     # 数据库SQL文件
├── mysql.sh                        # MySQL脚本
├── mysql操作手册.md                 # MySQL操作说明
├── 运行必读.docx                    # 运行说明文档
├── 同城拼车.xmind                   # 项目思维导图
├── 小程序视频.mp4                   # 小程序演示视频
└── 后台管理系统.mp4                 # 管理后台演示视频

数据模型

用户表 (users)

{
  id: int,                    // 用户ID
  phone: varchar(255),        // 手机号
  password: varchar(255),     // 密码
  username: varchar(255),     // 姓名
  sex: varchar(255),          // 性别
  nickname: varchar(255),     // 昵称
  active: varchar(255),       // 是否有效 (0有效)
  openId: varchar(1100),      // 微信OpenID
  avatar: varchar(255),       // 头像
  role: varchar(100)          // 角色 (99管理员, 1乘客, 2司机,可多角色如"99,1,2")
}

订单表 (orders)

{
  id: int,                    // 订单ID
  user_id: int,               // 发布者ID
  type: int,                  // 类型 (1=乘客找车, 2=司机找人)
  from: varchar(1000),        // 出发地
  to: varchar(1000),          // 目的地
  price: varchar(1000),       // 金额
  count: int,                 // 同行人数
  phone: varchar(1000),       // 联系方式
  status: int,                // 状态 (1=未接单, 2=已接单, 3=取消订单, 4=拒接订单, 5=订单完成)
  username: varchar(1000),    // 联系姓名
  date: varchar(1000),        // 出发日期
  time: varchar(1000),        // 出发时间
  car: varchar(1000),         // 车辆信息
  remark: varchar(1000),      // 补充说明
  path: varchar(1000),        // 途径地点
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

资讯表 (news)

{
  id: int,                    // 资讯ID
  title: varchar(255),        // 标题
  content: longtext,          // 内容(富文本)
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

收藏表 (star)

{
  id: int,                    // 收藏ID
  user_id: int,               // 用户ID
  link_id: int,               // 收藏的订单ID
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

问题反馈表 (question)

{
  id: int,                    // 反馈ID
  user_id: int,               // 用户ID
  cover: varchar(2000),       // 图片
  remark: varchar(1000),      // 反馈内容
  email: varchar(100),        // 邮箱
  reply: varchar(1000),       // 回复内容
  create_time: timestamp,     // 创建时间
  update_time: timestamp      // 更新时间
}

拼车类型说明

类型说明
乘客找车 (type=1)乘客发布拼车需求,寻找顺路司机
司机找人 (type=2)司机发布行程信息,寻找同行乘客

订单状态说明

状态码状态名称说明
1未接单拼车信息已发布,等待匹配
2已接单已有人接单,等待出行
3取消订单发布者取消了订单
4拒接订单订单被拒绝
5订单完成拼车行程已完成

用户角色说明

角色码角色名称说明
99管理员系统管理员,可登录后台管理
1乘客普通乘客用户
2司机司机用户

注:用户可同时拥有多个角色,如 "99,1,2" 表示同时是管理员、乘客和司机。

运行环境要求

后端环境

  • Node.js 14.0+
  • MySQL 5.7+
  • npm 或 yarn 或 pnpm

管理后台

  • Node.js 14.0+
  • npm 或 yarn
  • 现代浏览器(Chrome、Firefox、Edge等)

小程序端

  • 微信开发者工具(最新稳定版)
  • 基础库版本 2.19.0+
  • 需要有效的AppID

快速开始

1. 数据库配置

  1. 创建MySQL数据库
CREATE DATABASE pingche CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  1. 导入数据库文件
mysql -u root -p pingche < pingche.sql
  1. 修改数据库配置 编辑 express/config/db.js
var db = mysql.createConnection({
  database: 'pingche', // 数据库名称
  port: '3306', // 端口号
  host: 'localhost', // 主机地址
  user: 'root', // 用户名
  password: 'root', // 密码(修改为你的密码)
});

2. 启动后端服务

# 进入后端目录
cd express

# 安装依赖
npm install

# 启动服务(开发模式)
npm run dev

后端服务默认运行在 http://localhost:1164(请根据实际配置确认端口)

3. 启动管理后台

# 进入管理后台目录
cd admin

# 安装依赖
npm install

# 启动开发服务器
npm run dev

管理后台默认运行在 http://localhost:8080

4. 运行小程序

  1. 打开微信开发者工具
  2. 选择"导入项目"
  3. 选择 min 目录
  4. 填入AppID(可使用测试号)
  5. 点击"导入"

5. 配置小程序API地址

编辑 min/utils/request.js,修改API基础地址:

const baseUrl = 'http://localhost:1164'; // 修改为你的后端地址

默认账号

管理后台

  • 手机号:1871502XXXX
  • 密码:123456

小程序端

  • 支持微信授权登录
  • 或使用手机号登录

界面预览

项目包含演示视频文件:

  • 小程序视频.mp4 - 小程序端完整功能演示
  • 后台管理系统.mp4 - 管理后台完整功能演示

项目截图位于 截图/ 目录下。

扩展建议

如需进一步完善项目,可考虑以下扩展:

  1. 地图集成:集成腾讯地图或高德地图,显示路线规划
  2. 实时通讯:添加即时聊天功能,方便乘客和司机沟通
  3. 支付功能:集成微信支付,支持在线付款
  4. 评价系统:添加用户互评功能,建立信用体系
  5. 推送通知:订单状态变更时推送消息通知
  6. 智能匹配:根据路线和时间智能推荐拼车信息
  7. 实名认证:增加身份证认证,提高安全性
  8. 保险服务:接入出行保险服务
  9. 常用路线:保存用户常用路线,快速发布
  10. 拼车群组:创建固定路线拼车群组

注意事项

  1. 本项目为学习演示项目,部分数据为模拟数据
  2. 生产环境部署需要配置HTTPS
  3. 小程序上线需要完成微信认证
  4. 涉及出行服务需符合相关法规要求
  5. 建议定期备份数据库数据
  6. 注意保护用户隐私信息

常见问题

Q: 数据库连接失败?

A: 检查MySQL服务是否启动,数据库配置是否正确

Q: 图片无法显示?

A: 检查后端服务是否启动,图片路径配置是否正确

Q: 小程序无法请求后端?

A: 检查request.js中的baseUrl配置,开发时需在微信开发者工具中关闭"不校验合法域名"

Q: 管理后台登录失败?

A: 确认数据库中users表有管理员账号(role包含99)

Q: 发布拼车失败?

A: 检查必填字段是否完整,确认用户已登录

许可证

本项目仅供学习交流使用,请勿用于商业用途。

技术分类

包含内容

完整源码
项目说明文档

适用人群

学习参考与二次开发

关于 AI源码

AI源码 专注优质项目源码分享,提供完整源码、详细文档与技术支持,助力源码设计与课程作业。

QQ: 861077046
邮箱: 861077046@qq.com
已服务 53+ 位用户
立即咨询

相关推荐

查看全部 →