Skip to content

Latest commit

 

History

History
173 lines (123 loc) · 6.08 KB

File metadata and controls

173 lines (123 loc) · 6.08 KB

💬 小群聊聊

临时小群 · 聊完即散

不用建正式的微信群,拉上几个人临时商量个事 —— 聊完就散,不留痕迹。

微信小程序 后端 基础库 License


✨ 功能亮点

  • 🎯 用完即散的小群 —— 想跟几个人临时商量点事?随手拉起一个小群,事情聊完一键解散,干干净净
  • 🚪 邀请制私密空间 —— 只有拿到邀请链接的人才能进来,没有陌生人、没有广告、没有信息流打扰
  • 🗑️ 聊完不留痕 —— 创建者解散群聊后,群聊、成员和所有消息记录被彻底清理,不想留下的痕迹一个都不留
  • 👥 人数灵活 —— 想拉几个就拉几个,介绍朋友、组局商量、临时讨论,怎么都行
  • 云端实时同步 —— 消息收发实时到达,无需刷新
  • 🖼️ 图文随心发 —— 文字、图片自由发送,点击图片即可全屏预览
  • 🔐 微信原生身份 —— 基于 openid 的唯一身份体系,无需注册登录,点开即聊

🎯 适合什么场景?

  • 介绍朋友认识 —— 想把两个朋友互相介绍、一起商量个事?不用为此建一个永远挂在通讯录里的微信群
  • 临时讨论不建群 —— 有个话题想拉几个人聊聊,但不想在正式群里留下记录,也不想建一个用完还长期存在的群
  • 私密沟通不留痕 —— 有些话只想让在场的人知道,聊完即散,记录一起消散

一句话:不建群,也能聊。聊完,就散。


📸 界面预览

创建小群 我的小群 聊天详情

🛠️ 技术栈

层级 技术
客户端 微信小程序原生(WXML / WXSS / JavaScript)
后端 微信云开发(云函数 · 云数据库 · 云存储)
实时通信 云数据库 watch() 监听器
身份认证 微信 openid
数据一致性 云函数事务(解散 / 退出)

📁 项目结构

miniGroup/
├── miniprogram/                  # 小程序前端
│   ├── pages/
│   │   ├── index/                # 创建小群(邀请入口)
│   │   ├── join/                 # 邀请链接落地页
│   │   ├── chat/                 # 我的小群列表
│   │   └── chat-detail/          # 群聊聊天室
│   ├── utils/util.js             # 工具函数(时间格式化等)
│   └── app.js                    # 全局初始化 · openid 获取
│
└── cloudfunctions/               # 云函数(每个目录一个函数)
    ├── createChat/               # 创建群聊
    ├── joinChat/                 # 加入群聊
    ├── sendMessage/              # 发送消息
    ├── dissolveChat/             # 解散群聊
    ├── leaveChat/                # 退出群聊
    ├── getChatList/              # 我的小群列表
    ├── getChatInfo/              # 群聊详情
    ├── checkMemberStatus/        # 校验成员身份
    └── ...(getOpenId / getMessages / getUserInfo)

🚀 快速开始

  1. 获取代码

    git clone git@github.com:mingzeng21/miniGroup.git
  2. 导入项目 —— 打开微信开发者工具 → 导入项目 → 选择仓库根目录

  3. 开通云开发 —— 点击工具栏「云开发」按钮,创建你自己的云环境

  4. 配置云环境 —— 在 miniprogram/app.js 中,将 wx.cloud.init({ env: '你的环境ID' }) 改为你的云环境 ID

  5. 部署云函数 —— 在 cloudfunctions/ 下,对每个云函数目录右键 → 「上传并部署:云端安装依赖」

  6. 编译运行 —— 即可创建你的第一个临时小群 🎉


☁️ 云函数一览

云函数 职责 数据库操作
createChat 创建群聊 chats + chatMembers
joinChat 加入群聊 chatMembers,更新 memberCount
sendMessage 发送消息 messages,更新 lastMessage
dissolveChat 解散群聊(仅创建者) 事务删除 chats / chatMembers / messages
leaveChat 退出群聊(成员) 事务删除 chatMembers,递减 memberCount
getChatList 我的小群列表 只读
getChatInfo 群聊详情 只读
checkMemberStatus 校验成员身份 只读
getOpenId 获取 openid

🗄️ 数据设计

chats(群聊)

字段 说明
groupName 群名称
creator 创建者 openid
memberCount 成员数量
lastMessage 最后一条消息
createTime 创建时间

chatMembers(成员)

字段 说明
chatId 群聊 ID
userId 成员 openid
role creator / member
joinTime 加入时间

messages(消息)

字段 说明
chatId 群聊 ID
userId 发送者 openid
type text / image
content 文本内容或图片 fileID
createTime 发送时间

🌟 为什么是小群聊聊?

有些话,不必留在正式群里:

  • 想给两位朋友互相介绍、一起商量个事,却不想为此建一个永远存在的微信群;
  • 有个临时话题想拉个小群聊聊,却不想在通讯录里留下一个"群聊"。

小群聊聊 就是这样一个"用完即散"的临时小房间 —— 拉上几个人,聊完就散,不留痕迹。

把朋友介绍给朋友,聊完即散。💛


📄 License

MIT © MingZeng