a8c1604bec69cf910065ad3c9f2984866092135e
Deploy to Server / deploy (push) Successful in 1m38s
- Export.tsx 数据导出报告修复 3 个缺义工号的 MiniTable: * 03 全部时长明细:列头改为「序号/班级/姓名/义工号/工作组/活动/时长/备注」(原为只有班级+姓名,缺关键列) * 04 部员总时长排行:新增义工号列(排名/班级/姓名/义工号/工作组/活动数/累计时长) * 05 部员参加活动:卡片头部增加独立 tag 显示义工号(白底半透明 rounded 标签),与班级/姓名/工作组并排;活动次数右对齐 - 已核实 Excel 6 张 sheet (部员/时长/部员累计/部员活动明细/活动时长矩阵) 以及 Hours 活动独立导出 Excel/图片 均已原本包含义工号,无需改;后端 6 条 SQL 均已 SELECT u.volunteer_no - build 通过
义工时长管理系统
功能概述
- 管理台:活动设置、义工时长登记、用户管理、数据导出(表格/图片)
- 用户端:输入姓名查询个人参与活动及累计义工时长
- 响应式:同时适配移动设备与 PC 端
技术栈
- 前端:React 18 + Vite 5 + TypeScript + TailwindCSS 3
- 后端:Node.js + Express + TypeScript
- 数据库:SQLite 3 (better-sqlite3)
- 部署:Docker + Gitea Actions 自动部署
- 域名:https://volunteer.bzw-hheb.top
初始管理员账号
- 用户名:
admin - 密码:
admin123
首次登录后请立即修改密码。
本地开发
# 安装后端依赖
cd server && npm install
# 安装前端依赖
cd ../client && npm install
# 启动后端(端口 3001)
cd server && npm run dev
# 启动前端(端口 5173,代理 /api 到 3001)
cd client && npm run dev
Docker 本地运行
docker compose up -d --build
部署配置(Gitea Secrets)
在仓库 Settings -> Secrets 中配置:
| 名称 | 说明 |
|---|---|
SSH_HOST |
服务器 IP/域名 |
SSH_PORT |
SSH 端口(默认 22) |
SSH_USER |
SSH 用户名 |
SSH_PRIVATE_KEY |
SSH 私钥(对应服务器上的公钥需加入 authorized_keys) |
数据持久化
SQLite 数据库文件位于容器 /app/server/data/volunteer.db,docker-compose.yml 中已配置为 bind mount 到 ./server/data。
Languages
TypeScript
98.8%
CSS
0.6%
Dockerfile
0.4%
HTML
0.2%