Skip to content
Chic7777Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

WhispBox

一个“匿名提问箱 + 匿名广场”的轻量化项目:支持网页端(本仓库 web/)快速本地跑起来,也包含微信小程序端(miniprogram/)+ 云函数(cloudfunctions/api)的实现。

项目怎么玩(用户视角)

网页端玩法

  1. 打开匿名广场:访问 /square
    • 直接发布匿名内容(可带最多 3 个标签)
    • 给帖子点“共鸣”
    • 匿名评价(每条帖子展示最近 3 条评论)
  2. 创建自己的匿名提问箱:
    • 访问 /box/new:生成两条链接
      • “主页链接”:发给朋友匿名提问
      • “后台登入链接”:自己保存,用来查看/回复提问
  3. 提问与回复:
    • 朋友通过 /u/:receiverKey 匿名提问(问题不会显示提问者身份)
    • 你在 /me 登录后查看“收到的问题”,可回复或“删除”(实际为隐藏)
    • 回复后可在对外主页展示“已回答的问题”
  4. 把“想说的话”发布到广场:
    • 在 /me 的“想说的话”里填写内容
    • 点击“发布到广场”生成一张“提问卡片”,其他人可一键跳转到你的匿名提问页

匿名机制说明(网页端)

  • 广场发帖的昵称是“每日匿名代号”:基于浏览器 Cookie(anonSeed)+ 当天日期生成,同一天内保持一致,第二天会变化
  • 可在广场顶部点击“换一个”刷新 anonSeed,立刻获得新的匿名代号

创新点

  • “每日匿名代号”设计:在不暴露身份的前提下,保留一定的连续性与社区氛围(同一天同设备同代号,可主动更换)
  • 广场双布局:支持“便利贴 / 气泡”两种视觉呈现(Cookie 持久化偏好)
  • 两端同一产品形态:网页端可本地直跑;小程序端对接云开发,适合发布与真实用户使用
  • 防滥用策略:
    • 网页端按 IP 进行限流(发布/共鸣/评论/提问等)
    • 小程序端按用户每日配额限制,并接入微信内容安全检测(msgSecCheck)

一个人打开这个仓库(开发者操作指南)

方式 A:只跑网页端(推荐最快)

环境要求

  • Node.js 18+(本项目使用 ESM)
  • npm

启动步骤

  1. 安装依赖:
    • npm install
  2. 启动服务:
    • npm run dev
  3. 打开浏览器访问:
    • 默认端口:http://localhost:3000/
    • 如需自定义端口(PowerShell):
      • $env:PORT=3017; npm run dev

数据存储

  • 网页端使用本地 JSON 文件存储:/.localdata/db.json
  • 首次启动会自动创建(无需额外数据库)
  • 想“重置数据”可删除 /.localdata/db.json 后重启

方式 B:运行微信小程序端 + 云函数

你需要准备

  • 微信开发者工具
  • 一个可用的小程序 AppID(project.config.json 里 appid 目前为空)
  • 开通云开发环境,并具备调用 OpenAPI 的权限(用于生成小程序码与内容安全检测)

启动步骤(概览)

  1. 用微信开发者工具导入项目根目录(包含 project.config.json)
  2. 在开发者工具中配置云开发环境
  3. 部署云函数:
    • 云函数目录:cloudfunctions/api
    • 函数名需为:api(小程序端固定调用该名字)
  4. 云数据库集合(云函数会使用这些集合名):
    • users
    • square_posts
    • post_reactions
    • questions
    • reports
  5. 可选:在云函数环境变量中配置:
    • ALIAS_HMAC_SECRET:用于生成更稳定的匿名别名(不配默认值为 dev)

目录结构

  • web/:网页端(Express + 本地 JSON 存储)
  • miniprogram/:微信小程序端
  • cloudfunctions/api/:小程序云函数 API(云数据库 + OpenAPI)

常用入口(网页端)

  • 匿名广场:/square
  • 创建提问箱:/box/new
  • 用户主页(对外):/u/:receiverKey
  • 我的后台:/me

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages