feat: 初始化义工时长管理系统
- 管理台:活动设置、时长登记、用户管理、数据导出(Excel/PNG) - 用户端:姓名查询个人义工时长与活动记录 - 技术栈:React + Vite + TailwindCSS / Node.js + Express + sql.js (SQLite) - 支持 Docker 部署,附带 Gitea Actions 自动部署工作流 - 响应式界面,兼容移动端与 PC 端 - 默认管理员账号:admin / admin123
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# 义工时长管理系统
|
||||
|
||||
## 功能概述
|
||||
|
||||
- **管理台**:活动设置、义工时长登记、用户管理、数据导出(表格/图片)
|
||||
- **用户端**:输入姓名查询个人参与活动及累计义工时长
|
||||
- **响应式**:同时适配移动设备与 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`
|
||||
|
||||
首次登录后请立即修改密码。
|
||||
|
||||
## 本地开发
|
||||
|
||||
```bash
|
||||
# 安装后端依赖
|
||||
cd server && npm install
|
||||
|
||||
# 安装前端依赖
|
||||
cd ../client && npm install
|
||||
|
||||
# 启动后端(端口 3001)
|
||||
cd server && npm run dev
|
||||
|
||||
# 启动前端(端口 5173,代理 /api 到 3001)
|
||||
cd client && npm run dev
|
||||
```
|
||||
|
||||
## Docker 本地运行
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
访问 http://localhost:3000
|
||||
|
||||
## 部署配置(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`。
|
||||
Reference in New Issue
Block a user