一个简洁的问卷收集与统计系统,用于"文旅融合背景下滁州市博物馆游客满意度研究"的数据收集与分析。
- 问卷收集:包含筛选题、基本信息、参观特征、满意度测评(SERVQUAL+文旅融合)、行为意向、开放建议六部分,共49题
- 实时统计:提交后即时更新统计数据,无需刷新
- 统计面板:可视化展示人口学分布、各维度满意度均值、提交记录
- 双端口架构:问卷端与统计端分离,便于权限管理
- 数据导出:支持 CSV 和 JSON 格式下载,方便 SPSS/Excel 分析
npm installnode server.js| 服务 | 端口 | 地址 |
|---|---|---|
| 问卷填写 | 1144 | http://localhost:1144/ |
| 统计面板 | 1145 | http://localhost:1145/ |
├── index.html # 问卷前端页面
├── stats.html # 统计面板页面
├── server.js # Express 后端服务
├── package.json # 项目配置
└── data/
└── responses.json # 问卷数据存储
| 部分 | 题号 | 内容 |
|---|---|---|
| 一、筛选题 | Q1 | 是否参观过博物馆 |
| 二、基本信息 | Q2-Q7 | 性别、常住地、年龄、学历、职业、收入 |
| 三、参观特征 | Q8-Q15 | 参观次数、目的、渠道、出行方式等 |
| 四、满意度测评 | Q16-Q45 | 有形性/可靠性/响应性/保证性/移情性/文旅融合/总体满意度 |
| 五、行为意向 | Q46-Q47 | 推荐意愿、再次参观意愿 |
| 六、开放题 | Q48-Q49 | 改进建议 |
POST /api/surveys
Content-Type: application/json
GET /api/stats
支持查询参数:
startDate: 开始日期(YYYY-MM-DD)endDate: 结束日期(YYYY-MM-DD)
返回示例:
{
"count": 100,
"validCount": 95,
"demographics": {
"gender": { "男": 45, "女": 50 },
"residence": { "滁州本地(含周边区县)": 60, "安徽省内其他城市": 25, "省外": 10 },
"age": { "18–25岁": 30, "26–35岁": 25, "36–45岁": 20, "46–60岁": 15, "60岁以上": 5 },
"education": { "本科": 40, "大专": 25, "研究生及以上": 15, "高中/中专": 15 },
"occupation": { "学生": 35, "企事业单位职员": 30, "公务员/事业编": 15 },
"income": { "3001–6000元": 30, "6001–10000元": 25 },
"visitCount": { "第一次": 60, "2–3次": 30, "4次及以上": 5 },
"purpose": { "休闲参观": 50, "学习研学": 25, "陪同亲友": 15 }
},
"likertStats": {
"Q16": { "average": 4.2, "answered": 95 },
"Q17": { "average": 4.1, "answered": 95 },
...
"Q47": { "average": 4.3, "answered": 95 }
},
"lastUpdated": "2026-01-30T08:00:00.000Z"
}GET /api/download?format=csv
GET /api/download?format=json
支持查询参数:
format: 导出格式(csv/json)startDate: 开始日期endDate: 结束日期
| 变量 | 默认值 | 说明 |
|---|---|---|
SURVEY_PORT |
1144 | 问卷服务端口 |
STATS_PORT |
1145 | 统计服务端口 |
- 后端:Node.js + Express
- 前端:原生 HTML/CSS/JavaScript
- 存储:JSON 文件
MIT