Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

步步有伴(光引未来·步步有伴)

本仓库为微信小程序 MVP 实现,核心目标是“撮合匹配”:让热爱跑步的视障跑者能够安全、便捷地找到可靠的陪跑志愿者,完成从活动发布到匹配确认的最小服务闭环。

说明:本 README 摘要整理自《「步步有伴」项目说明书》中的部分内容,PDF 原件不随代码仓库提交。

MVP 核心闭环

面向两类核心用户:陪跑志愿者 与 视障跑者。

志愿者端(主动发起)

  • 发布陪跑活动:时间、地点(固定公园下拉)、跑步经验要求(有/无)
  • 管理活动:查看状态、处理跑者加入申请
  • 联络确认:与申请加入的跑者沟通,确认陪跑细节

跑者端(轻松加入)

  • 浏览活动列表:按距离远近查看可参与活动(优先取定位)
  • 一键加入:申请加入感兴趣的活动
  • 查看状态:跟踪申请状态,了解是否匹配成功

状态流转

  • 待同行:志愿者已发布活动,尚无人加入(此时可取消)
  • 待联络确认:已有跑者申请加入,等待志愿者联系确认
  • 匹配成功待出行:双方已确认,约定共同出行
  • 已完成:活动时间已过,系统自动标记为已完成
  • 已取消:志愿者取消活动(操作包含二次确认与善意提醒)

MVP 技术实现要点(按说明书约束落地)

  • 产品形态:微信小程序
  • 地点选择方案:不接入第三方 POI 搜索,使用固定公园列表下拉选择(北京 5 个跑步公园)
  • 匹配因素:MVP 阶段仅考虑跑步经验(有/无),暂不引入配速等高阶维度
  • 无障碍考虑:按钮更大、关键信息更易被朗读;交互尽量简单直接

目录结构

.
├── cloudfunctions
│   ├── activity         # 活动相关云函数(create/list/get/apply/withdraw/confirm/cancel/autoComplete)
│   └── login            # 获取 openid
├── miniprogram
│   ├── pages
│   │   ├── login        # 登录/注册(身份、手机号、跑步经验)
│   │   ├── home         # 首页入口(按身份展示)
│   │   ├── my           # 我的资料 + 我的报名/我发布的活动 + 退出
│   │   ├── volunteer    # 志愿者:发起/列表/详情(联络确认、取消)
│   │   └── runner       # 跑者:附近活动/详情(加入、撤回)
│   └── utils
│       ├── db.js        # 数据访问层(云开发优先;游客/无云自动降级到本地 storage)
│       ├── constants.js # 固定公园/身份枚举
│       ├── status.js    # 状态文案与标签样式映射
│       └── location.js  # 距离计算与展示
└── project.config.json  # 微信开发者工具项目配置

本地运行(游客模式 / 无云环境)

适合快速验证页面与流程,不依赖云函数/云数据库。

  1. 使用微信开发者工具导入项目根目录
  2. 直接点击「编译」
  3. 登录后按以下流程体验:
    • 志愿者:发起活动 → 管理活动 → 详情查看申请人/联络确认/取消
    • 跑者:附近活动(允许定位)→ 加入 → 我的报名查看状态

数据会写入本地 storage(清缓存/换设备会丢)。

启用云开发(推荐:用于真实数据与 openid)

  1. 开通并绑定云开发环境
  2. 上传并部署云函数:login、activity
  3. 创建云数据库集合:users、activities(按团队安全策略配置读写权限)

启用后,小程序会自动优先走云函数/云数据库;若云环境不可用则降级为本地存储。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages