# software3 **Repository Path**: dengs-c-language/software3 ## Basic Information - **Project Name**: software3 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-21 - **Last Updated**: 2026-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 校园活动管理系统 V2.0 → V3.0(需求演化) 软件工程实验二 / 实验三 配套代码仓库。V2.0 为基线版本(尽力组:朱锦洲、邓灵录、朱声乐);V3.0 基于教师提供的运行模拟数据做需求演化,见 `v3.0/`。 ## 目录结构 ``` ├── v2.0/ # V2.0 基线(原版代码,未改动,作为 V3.0 比较基线) │ ├── index.html # 页面结构 │ ├── styles.css # 样式 │ ├── app.js # 前端逻辑(报名 / 候补 / 取消) │ ├── database.sql # 建库建表 │ └── upgrade-v2.sql # V2.0 RPC 函数与索引 ├── analysis/ # 运行数据分析(实验三第二章数据来源) │ ├── analyze_v3.py # 分析脚本(纯标准库,python3 直接运行) │ ├── README.md # 统计口径说明 │ └── data/ # 教师提供的运行模拟数据(6 个 CSV + 字段字典) └── v3.0/ ├── upgrade-v3.sql # V3.0 数据库升级脚本(幂等报名 / 候补通知 / 位次 / 分页列表) └── v3-frontend-snippets.md # 前端增量改动说明(对照 V2.0 原文,非重写) ``` ## 环境依赖 - 任意静态 HTTP 服务器(如 VS Code Live Server、`python -m http.server`) - Supabase 项目(PostgreSQL 15+,需开启 `pgcrypto` 扩展,脚本内已包含) - Python 3.8+(仅 analysis 需要,无第三方依赖) ## V3.0 部署步骤 1. **执行数据库升级脚本** 打开 Supabase 控制台 → SQL Editor → 新建查询 → 粘贴 `v3.0/upgrade-v3.sql` 全文 → Run。 脚本为单事务执行,包含:`idempotency_key` 列、`location` 列、`campus_waitlist_notices` 通知表、 8 个 `campus_v3_*` RPC 函数、索引与授权,末尾自动 `notify pgrst` 刷新 schema 缓存。 V2.0 的 `campus_*` 表与 `campus_v2_*` 函数全部保留,旧页面不受影响。 2. **前端改造** 按 `v3.0/v3-frontend-snippets.md` 中的"V2.0 原文 → V3.0 改成什么"逐处增量修改 `v2.0/` 下的 `index.html` / `app.js`(幂等键、错误中文映射、候补位次、通知铃铛、地点字段、分页与筛选)。 修改完成后即可用静态服务器打开 `index.html` 联调。 3. **复现报告第二章数据分析(可选)** ```bash cd analysis python analyze_v3.py # 输出候补结局 / 延迟 / 反馈主题等全部统计 ``` ## V3.0 功能验证步骤 | 场景 | 操作 | 预期结果 | |---|---|---| | 幂等报名 | 同一报名请求重复提交(连点 / 重试) | 返回既有报名状态,不再出现"请勿重复操作"报错 | | 候补位次 | 报名已满活动进入候补 | 显示"第 X 位 / 前方 X 人",与递补排序口径一致 | | 递补通知 | 他人取消报名释放名额 | 队首候补者递补成功,`campus_waitlist_notices` 新增一条 promoted 通知 | | 退出候补 | 候补学生截止前退出 | 状态变已取消,触发递补,后续候补者位次前移 | | 通知已读 | 打开状态页查看通知 | 未读数清零,`read_at` 更新 | | 分页列表 | 打开活动列表 | 一次请求返回 total / remaining / my_wait_position,无需逐卡片请求 | | 回归 | 待审核 → 通过 / 拒绝、取消报名、超容量拦截 | 与 V2.0 行为一致 | ## 组员与分工 朱锦洲(数据分析脚本)、邓灵录(upgrade-v3.sql 与 RPC)、朱声乐(前端改造)、全组(基线与自测回归)。