2025年 吉林大学软件学院 选修课 网页建设与设计 期末大作业Track2-问卷生产系统 开源代码+答辩教程

各位晚上好,这里依然是米饭不是配菜

今天更新的内容是:2025年 吉林大学软件学院 选修课 网页建设与设计 期末大作业Track2-问卷生产系统 的开源代码+答辩教程,以及如何修改代码以避免被认为抄袭

同样的,本次代码完全由codex写成,使用了全栈的Typescript写成,数据库使用了本地存储的SQLlite,避免多重启动分离的前后端+复杂的数据库连接配置,尽可能做到开箱即用。

请首先详细阅读本README的内容,然后再考虑使用。

本项目github链接:https://github.com/elpsykongloo/JLU2025WebDesign-SurveySystem,欢迎各位点一点Star,感激不尽。

问卷生成系统

TypeScript 全栈问卷管理平台,支持管理员、问卷设计者与被调查者三类角色,可完成题库维护、问卷组卷、访问码发放、作答收集与统计分析。

功能亮点

  • 角色权限:管理员管理账号与权限,设计者负责题库与问卷,受访者使用访问码填写问卷。
  • 滑块量表题:量表题提供 0–9 分滑块,分值与维度贡献由后端统一计算。
  • 多题型支持:单选、多选、判断、量表、问答题,题干可上传图片,维度权重可配置。
  • 随机 + 手动组卷:支持随机抽题与手动排序,并可配置评分等级、进度条、返回修改等选项。
  • 数据分析:仪表盘展示总体统计、维度均值、题型分布、成绩曲线,可用于课上演示。

数据库说明

  • 类型与驱动:采用嵌入式 SQLite,使用 better-sqlite3 驱动进行同步读写,零运维,适合课程项目。
  • 数据文件:默认存放在 data/app.db,可通过 .env 中的 DATABASE_FILE 重定义;上传图片位于 data/uploads/
  • 初始化逻辑src/server/db.ts):
    • 首次启动自动创建管理员账号(默认 admin@example.com / Admin@123)、四个 MBTI 风格分类与示例数据。
    • 启用 PRAGMA journal_mode = WAL 提升读写可靠性。
  • 核心业务表userscategoriesquestionsquestionnairesassignmentsrespondentsresponsesanswers
  • 示例数据:内置示例问卷“MBTI 性格倾向测评”,访问码 MBTI2025,含 3 份答卷可直接演示分析功能。

目录结构

.
├── docs/                     # 架构说明与补充文档
├── src/
│   ├── client/               # React + Vite 前端
│   │   ├── api/              # REST API 封装
│   │   ├── components/       # UI 组件(滑块、路由守卫等)
│   │   ├── context/          # 鉴权上下文
│   │   └── pages/            # 登录、后台、受访者页面
│   ├── server/               # Express + SQLite 后端
│   │   ├── analytics/        # 统计分析服务
│   │   ├── middleware/       # 鉴权、错误处理
│   │   ├── routes/           # REST 接口
│   │   └── services/         # 业务逻辑
│   └── shared/               # 前后端共享类型与 Zod 校验
├── index.html                # Vite 入口
├── package.json
├── tsconfig.*.json           # TS 配置
└── vite.config.ts

快速开始(已安装 Node.js 与 Git)

  1. 安装依赖:npm install
  2. 启动开发环境:npm run dev
    • 后端:http://localhost:4000
    • 前端:http://localhost:5173
    • 默认管理员:admin@example.com / Admin@123
  3. 构建与预览:npm run build && npm run preview

环境变量

项目根目录创建 .env(可由 .env.example 复制)配置如下:

PORT=4000
JWT_SECRET=please-change-me
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=Admin@123
ADMIN_NAME=米饭不是配菜
DATABASE_FILE=data/app.db
UPLOAD_DIR=data/uploads

首次启动会在 data/ 目录生成数据库文件与示例数据。

开发建议

  • npm run typecheck:TypeScript 静态校验。
  • 静态资源(题干图片等)保存在 data/uploads,访问路径为 /uploads/...
  • 调整评分类别或题目权重时,请同步更新 gradingBands 和题目配置以确保统计准确。

Windows 全流程部署指南(从零经验开始)

以下步骤面向从未安装过 Node.js / npm / Git 的 Windows 用户,目标是从“Win+R 打开命令行”到运行起系统。

  1. 打开命令提示符
    • Win + R,输入 cmd,回车。
    • 输入 node -v。若提示非内部命令,表示尚未安装 Node.js。
  2. 安装 Node.js(含 npm)
    • 浏览器访问 https://nodejs.org/,下载 LTS 版本安装包。
    • 全程默认下一步安装;完成后关闭命令窗口重新打开。
    • 在新窗口输入 node -vnpm -v,确认输出版本号。
  3. 安装 Git
  4. 克隆项目
    • 在命令行切换到希望存放代码的盘符,例如:
      cd /d D:\Projects
      git clone https://github.com/elpsykongloo/JLU2025WebDesign-SurveySystem.git
      cd JLU2025WebDesign
      
  5. 安装依赖
    npm install
    
  6. 创建配置文件
    copy .env.example .env
    
    使用记事本或 IDE 打开 .env,根据需求修改端口、管理员信息等。
  7. 启动系统
    npm run dev
    
    • 命令窗口会同时启动后端与前端开发服务器。
    • 首次运行会在 data/ 下生成 app.db 与示例数据。
  8. 访问与演示
    • 浏览器访问 http://localhost:5173/login
    • 使用管理员账号创建“设计者”账号并登录,即可进入问卷控制台。
    • 被调查者端入口:http://localhost:5173/respondent,示例访问码 MBTI2025
  9. 遇到端口占用?
    • 编辑 .env 修改 PORT(后端)并在 vite.config.ts 调整前端端口。
    • 重启 npm run dev

课堂答辩问答指南

为了应对“网页建设与设计”课程常见提问,可从以下维度准备:

  1. 项目定位与痛点:强调系统帮助教师/同学快速搭建心理测评或课程调查问卷,实现滑块打分与维度统计。
  2. 技术栈选择
    • 前端:React + Vite(构建快、生态成熟),Chart.js(可视化),TypeScript(类型安全)。
    • 后端:Express(轻量 REST 框架),better-sqlite3(同步接口,方便在课堂演示中使用)。
    • 共享层:Zod 统一 DTO 校验,减少前后端重复定义。
  3. 系统架构
    • client / server / shared 三层结构,支持角色鉴权(JWT + 中间件)。
    • 静态资源由 Express 静态目录托管,生产模式可直接部署为 Node 服务。
  4. 数据库与数据流
    • 说明主要表及关系:用户→题库→问卷→访问码→响应→答案。
    • 演示量表题的分值计算、维度聚合方式(在 responseService 中实现)。
  5. 前端设计
    • 展示后台侧边栏导航、题库管理表格、随机抽题表单、数据可视化(折线、甜甜圈图)。
    • 介绍 0–9 滑块组件及如何与后端数据绑定。
  6. 安全与体验
    • 密码哈希存储、JWT 鉴权、角色访问控制。
    • 受访者端无需登录,只需访问码;支持自定义问卷说明与进度条。
  7. 演示流程建议
    • (1)管理员创建设计者账号 → (2)设计者登录 → (3)浏览题库 → (4)查看示例问卷与访问码 → (5)使用访问码填写问卷 → (6)切换到数据分析查看实时结果。
  8. 扩展思路
    • 未来可切换至 MySQL/PostgreSQL、引入 Prisma 做迁移。
  • 支持问卷版本管理、导出 CSV/Excel、接入邮箱邀请。
  • 加入可视化拖拽组卷、移动端适配、A/B 测试等。

准备答辩 PPT 时,可按照“需求分析 → 系统架构 → 功能展示 → 核心代码 → 数据分析 → 扩展规划”结构,搭配现场访问码演示。

一键定制 Prompt 模板

若想快速生成“完全不同”的个人版本,可复制以下 Prompt 粘贴到 Cursor、ChatGPT、通义灵码等工具,并替换尖括号内容:

你现在是我的全栈改造助手。我已经 fork 了 https://github.com/elpsykongloo/JLU2025WebDesign-SurveySystem 这个仓库。请在保证功能稳定的前提下完成以下任务:

1. 将项目中出现的所有个人信息改成:
   - 姓名:<你的姓名,如 张三>
   - 学号:<你的学号,如 55221401>
   更新范围包括默认管理员昵称、界面展示文字、版权信息、文档说明、示例数据中的署名等(替换掉“米饭不是配菜”等原信息)。

2. 调整前端视觉与交互,使老师看到的是全新系统:
   - 更换配色、字体或布局,必要时替换图标、添加背景元素。
   - 修改导航菜单与页面标题文案,让主题契合你的课程项目。
   - 保持核心流程(题库、组卷、答题、分析)可正常使用。

3. 扩充数据库示例数据:
   - 新增问题分类、题目(含滑块题、问答题、带图片题等),并确保维度、分值合规。
   - 创建多套问卷与访问码,添加更多被调查者和作答记录,使分析图表更丰富。
   - 视情况更新访问码、等级标签与分类命名,凸显原创性。

4. 其他建议:
   - 调整 README / 文档,让描述契合你的名字与主题。
   - 如需新增依赖,请在最后提示我执行 `npm install` 并重启 `npm run dev` 验证。
   - 不随意删除现有功能代码,必要改动请简要注释说明。

完成后,请输出修改文件清单、关键改动摘要以及复现步骤提示,保证最终系统看起来与原版明显不同但依旧稳定可演示。

使用该 Prompt 可最大程度复用现有底层逻辑,同时快速生成符合个人信息与课程主题的定制版系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值