🏛 政声通

个人练手项目:一个政务服务满意度评议平台,实践了匿名评议码机制、多部门多科室评分体系、评议数据统计分析、操作审计日志等技术。

项目简介

这个项目尝试解决的问题

📄
纸质问卷回收慢、统计难
手机扫码评议,数据实时汇总
🔒
实名评议导致群众不敢说真话
一次性评议码,完全匿名,无法追溯到个人
📊
评议结果难以按部门、科室细分
多层级评分体系,精确到每个科室
📝
缺乏意见收集渠道
每项评分可附文字意见,管理员后台统一查看

功能实现

项目中实现的主要功能模块

🎫

评议码机制

系统生成唯一 6 位评议码,每码仅可使用一次。输入评议码即可参与,无需注册或登录。

🏛

多部门多科室评分

支持多个政府部门,每个部门下设多个科室,群众可逐一评分并填写意见。

🔒

完全匿名

不采集任何个人信息,评议码与评议人无关联,确保群众敢于如实评价。

📊

数据统计

管理后台实时展示各部门、各科室的平均评分和评议数量,支持查看详细意见。

📱

移动端适配

iOS 风格的移动端 UI,手机浏览器扫码即可评议,无需安装任何 APP。

📑

操作审计日志

记录所有关键操作(评议提交、管理员登录、码生成等),按月自动轮转,含来源 IP。

技术架构

单文件部署 + JSON 数据存储

💻 后端技术

  • Node.js + Express 框架
  • 服务端渲染(SSR),零构建步骤
  • JSON 文件存储,无需数据库
  • 一次性评议码生成与验证
  • 操作审计日志(追加写入)
  • 部门/科室配置文件驱动

📱 前端技术

  • 原生 HTML/CSS/JavaScript(零框架)
  • iOS 风格 UI 设计
  • 移动端自适应布局
  • 管理后台数据可视化
  • Nginx 反向代理 + SSL 终止
  • Let's Encrypt 自动续期证书

设计亮点

这个项目中一些有意思的技术决策

🔒

为什么用评议码而非登录?

评议的核心诉求是匿名。用一次性评议码代替账号登录,从技术上保证无法追溯评议人身份,群众才敢说真话。

📄

为什么用 JSON 而非数据库?

评议数据量有限(几十到几百条),JSON 文件完全够用。部署时不需要安装 MySQL,降低运维复杂度。

🛠

为什么配置文件驱动?

部门和科室结构通过 JSON 配置文件定义,修改组织架构只需编辑配置文件,不需要改代码。