科研数据 · 采集与留痕

让量表数据 可采集、可溯源、可分析

ScaleCollector 是面向心理学与社会科学研究的量表采集系统。 稳定采集、全程留痕、结构冻结,导出即是可直接进 SPSS / R 的分析包—— 不做通用表单,只把「从发放到分析」这一条链路做到极致。

原生 PHP + MySQL · 零外部依赖 · 支持微信内填写与二维码分发

0张固定业务表
0类导出文件
0个 R 分析脚本
0前端框架依赖
● 答案自动保存
共情能力量表(AMEQ)
我常常能感知到他人的情绪。 12345
看到别人难过时,我会主动安慰。 12345
我擅长区分不同的情绪。 12345
已完成 6 / 9 题预计还需 2 分钟
为什么不是通用表单

科研量表有它特有的「讲究」

变量名要稳定、原始数据不可变、结构要冻结、过程要留痕、结果要能进 SPSS / R。通用问卷工具很难同时满足这些约束。

变量名就是分析变量

题项以 var_name 标识,格式受校验、表内唯一;一旦有作答便永久稳定,导出列顺序与页面顺序一致,不回收不复用。

变量名值
q1_empathy4
q2_empathy2
q3_empathy3

原始数据不可变

只存被试选择的原始编码与提交时的分数快照;反向计分、维度合并在导出语法中完成,数据库里的原始值永不改写。

快照已锁定 · 原值永不改写

采集与统计分离

服务器不做统计判断、不自动剔除样本。它只负责把数据、时序与质控摘要交到你手里,是否剔除由研究者决定。

ScaleCollector
→
RStudio / SPSS
核心能力

从发放到分析,一条完整链路

九个模块覆盖量表研究的全过程:配置、导入、发放、采集、监控、冻结、导出、质控、归档。

稳定采集与全程留痕

NEW

提交走事务与幂等:网络抖动重试不会产生重复数据;导入、修改、Token、导出、删除全部写入审计日志。

12:00:01 提交成功 · 事务锁定
12:01:15 导入题项 · 已记录
12:02:30 Token更新 · 审计追踪

结构冻结,防止事后改动

首份有效作答提交后结构自动锁定,题干之外的关键字段(变量名 / 选项集 / 反向标记 / 维度)不再允许改动。

🔒 已冻结

导出即分析包

一键得到宽表 / 长表 / 时序 / 题项级与作答级数据字典、SPSS 语法(含动态反向 RECODE 与维度均分)、R 质控脚本。

SPSS
分析包_2026.zip包含语法与数据字典 · 2.4MB
R
分析脚本包.R描述统计 · 信效度检验

后置质控摘要

导出时生成质控报告:快速作答、直线作答、闪电点击、后台切换过多、前后端时长差异,一目了然并列出可疑编号。

正常样本 65%
可疑样本 35%
检测到 3 份直线作答

R 分析脚本包

勾选分析类型即可下载脚本包:描述统计、信度(α/ω/分半)、效度(CFA/CR/AVE/HTMT)、相关、回归。计算全部在你本机完成。

# 信度分析
library(psych)
alpha <- psych::alpha(data)
# 输出 Cronbach's α

微信适配与二维码分发

短链 + 二维码(单码 / 批量 ZIP)、切后台扣时、本地与服务端双重草稿恢复;ES5 基线兼容微信内置浏览器。

数据流水线

五步完成一轮课题的数据生产

每一步都有留痕与校验:导入前先看差异、发放后可监控、截止后可冻结、导出后可复现。

01

配置量表

伦理信息、匿名策略、Token 模式、起止时间。

02

导入题项

CSV 批量导入,写入前给出增删改与结构变更的差异预览。

03

发放 Token

批量生成或导入,复制链接或下载二维码,追踪使用率。

04

采集与监控

矩阵填写、进度与剩余时间、切后台自动存草稿;后台健康度面板常驻。

05

冻结与导出

截止后禁新提交、结构冻结,导出分析包并生成质控摘要。

合规与伦理

默认保守,把「保护被试」写进默认值

伦理要求不是可选项。系统在默认配置上就采取保守策略,并从流程上保证知情同意与匿名性。

匿名默认开启默认不记录 IP;实名与记录 IP 都需显式开启。
知情同意必勾选未勾选不会创建作答记录,同意时间逐份入库。
不获取社交平台信息不接入任何授权,不获取昵称、头像等个人信息。
外部编号可脱敏学号 / 手机号类外部编号导出默认脱敏,原始值需二次确认。
技术选型

刻意「朴素」的技术栈

长期可维护、易审计、无供应链风险。固定表结构、不动态建表,迁移只需导 SQL + 拷源码。

PHP 8 原生 MySQL 8 · InnoDB PDO 全参数化 原生 HTML / CSS / ES5 无框架 · 无 Composer 无前端构建 自研零依赖二维码 Session + CSRF + 审计
目录结构(节选)
# 入口层 → 逻辑层 → 呈现层,三层分离
index.php       # 前台唯一入口(问卷 / 短链 / 提交)
admin.php       # 后台入口
config.php      # 数据库 / 时区 / 凭据 / 常量
inc/            # 业务逻辑(禁止 Web 访问)
  ├─ survey_service.php    # 量表 / 题项 / 维度
  ├─ export_data.php       # 宽表 / 长表 / 时序 / 字典
  ├─ export_spss.php       # SPSS 语法(动态反向 RECODE)
  ├─ export_analysis.php   # R 分析脚本包
  └─ qrcode.php            # 自研二维码(PNG / ZIP)
admin/          # 后台视图与动作
survey/         # 被试端视图与资源
doc/            # install.sql / PRD / 原型
storage/        # 运行时数据(受保护)
快速开始

三步跑起来

无需安装依赖。准备好 PHP 8 与 MySQL 8,导入初始化脚本、填好数据库信息即可。

1
导入数据库结构执行初始化脚本,创建业务表与内置选项集种子。
2
配置 config.php填写数据库连接、管理员口令(哈希)、固定时区。
3
登录并创建量表打开后台,新建量表、导入题项 CSV、生成 Token 并发放。
4
采集与导出被试填写后,在导出页一键生成分析包与质控摘要。
进入控制台 打开演示问卷
终端
# 1) 导入数据库(MySQL 8)
mysql -u root -p < doc/install.sql

# 2) 编辑配置:数据库 / 管理员口令哈希 / 时区
vim config.php

# 3) 启动(开发环境示例)
php -S 127.0.0.1:8080 -t .
#   后台  → http://127.0.0.1:8080/admin.php
#   问卷  → http://127.0.0.1:8080/index.php?s=survey&sid=1
常见问题

你可能想问

它和问卷星 / 通用表单系统有什么不同?

通用表单追求题型丰富,ScaleCollector 追求科研口径的严谨:变量名稳定、原始数据不可变、结构冻结、时序留痕、导出直接可用于 SPSS / R。它不原生支持填空、多选、条件跳题等,人口学变量这类需求建议用外部工具采集后以「外部编号」关联。

服务器会替我算信度、效度或做回归吗?

不会,这是刻意设计。系统只生成数据与脚本文本,所有统计计算在你的本地 RStudio 完成,保证结果与你熟悉的 R 包完全一致、且可复现。质控摘要也只是描述性提示,不自动剔除任何样本。

被试在微信里填写,切到后台会不会丢答案?

不会。本地会实时保存草稿,切后台计时会被扣除;即使微信回收了页面,重新打开仍可恢复;换设备或清缓存时还能从服务端草稿兜底。

一码一次怎么保证?会不会被重复提交?

Token 与作答记录一对一绑定(数据库层唯一约束兜底),提交采用幂等处理——同一份作答重复提交只会返回成功而不会产生第二条数据;跨站构造的提交会被一次性令牌拦截。

数据改动过还能追溯吗?

可以。量表结构在关键节点自动留存快照,支持任选两版对比「新增 / 修改 / 删除 / 结构变更」;导入亦可回滚到导入前的结构,且回滚有严格前置校验,宁缺勿错。

准备好开始你的下一轮数据采集了吗?

无需安装依赖,三步即可跑起来。先看看演示问卷,或直接进入控制台创建量表。