主席选举系统文档
BUCSSA 内部线上公投 / 主席选举门户。成员用 Google 登录后加入进行中的竞选,按部门与职位获得本场票数,并把票完整拆分给候选人名簿中的人选;管理员与审核员可管理用户、竞选、选票与开闭投票,结束后按分票聚合查看排名。
读者
面向后续维护者与活动执行人员。界面品牌标题为「BUCSSA Portal」,不是 Django 招新门户。
本站点按 Diátaxis 框架组织。
文档导航
| 分类 | 说明 | 入口 |
|---|---|---|
| 概览 | 定位、角色、架构 | Introduction |
| 入门指南 | 安装、环境、首次竞选 | Quick Start |
| 用户指南 | 加入、分票、管理选票 | Core Concepts |
| 参考 | 表结构、Server Actions、路由 | Database Schema |
| 配置 | 环境变量、登录门禁、票数规则 | Environment Variables |
| 部署指南 | 本地与生产检查清单 | Production Deployment |
| 开发者指南 | 目录、架构、迁移 | Project Structure |
| 故障排查 | 登录、分票、Neon | Common Errors |
| 常见问题 | FAQ | FAQ |
| 参与贡献 | 开发环境与流程 | Development Setup |
快速链接
| 页面 | 路径 | 角色 |
|---|---|---|
| 首页 | / | 已登录 |
| 登录 | /auth/signin | 公开 |
| 进行中的竞选 | /campaigns | voter / moderator / candidate(admin 会跳到管理页) |
| 分票投票 | /campaigns/[id]/vote | 非 admin、且已加入本场 |
| 选票管理 | /campaigns/[id]/ballots | admin / moderator |
| 排名结果 | /campaigns/[id]/result | 侧栏对 admin/moderator 展示;结束后才显示排名 |
| 竞选管理 | /admin/campaigns | admin |
| 用户管理 | /admin/users | admin |
| Auth.js | /api/auth/[...nextauth] | 唯一 HTTP API |
本地开发默认:http://localhost:3000
技术栈
Next.js 15 · React 19 · NextAuth v5 · Neon PostgreSQL · MUI 7 · Toolpad Core
完整列表见 Tech Stack。
上游与参考
| 项目 | 官方文档 | 源码 |
|---|---|---|
| 主席选举系统 | 本文档;仓库 README | BU-CSSA-Tech/CSSA-Election |
| Next.js | nextjs.org/docs | vercel/next.js |
| Auth.js / NextAuth v5 | authjs.dev | nextauthjs/next-auth |
| Neon | neon.tech/docs | neondatabase/serverless |
| MUI | mui.com | mui/material-ui |
| Toolpad Core | mui.com/toolpad | mui/toolpad |