将路由参数从 `:id` 和 `:key` 格式统一为 `{id}` 和 `{key}` 格式
更新 build.sh 脚本以优先使用实际 .env 文件,并同步更新部署说明文档
会议签到系统
一个基于 Rust (Axum + SeaORM) 和 Ant Design 的会议签到系统。
功能特性
- 参会者注册
- 参会者信息管理
- 签到功能
- 参会者列表查看
- 搜索功能
技术栈
后端
- Rust
- Axum (Web 框架)
- SeaORM (数据库 ORM)
- MySQL (数据库)
前端
- React 18
- Ant Design
- Vite (构建工具)
快速开始
环境要求
- Rust 1.65+
- Node.js 16+
- Docker 和 Docker Compose (可选,用于数据库)
启动数据库
docker-compose up -d
设置数据库
创建数据库:
CREATE DATABASE qiandao CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
运行迁移脚本:
mysql -u root -p qiandao < migrations/001_create_attendees_table.sql
启动后端服务
cargo run
后端服务将在 http://localhost:3000 运行。
启动前端开发服务器
cd frontend
npm install
npm run dev
前端开发服务器将在 http://localhost:5173 运行。
API 接口
参会者相关
POST /api/attendees- 创建参会者GET /api/attendees- 获取所有参会者GET /api/attendees/:id- 获取指定参会者POST /api/attendees/:id/checkin- 为参会者签到
部署
构建前端
cd frontend
npm run build
构建产物将位于 frontend/dist 目录中。
构建后端
cargo build --release
项目结构
.
├── Cargo.toml
├── src/
│ ├── main.rs
│ ├── database.rs
│ ├── models.rs
│ └── routes.rs
├── migrations/
│ └── 001_create_attendees_table.sql
├── frontend/
│ ├── package.json
│ ├── vite.config.js
│ ├── index.html
│ ├── src/
│ │ ├── main.jsx
│ │ ├── App.jsx
│ │ ├── components/
│ │ │ ├── AttendeeRegistration.jsx
│ │ │ ├── AttendeeList.jsx
│ │ │ └── CheckinPage.jsx
└── docker-compose.yml
开发指南
添加新的 API 接口
修改数据库模型
- 更新 models.rs 中的模型定义
- 创建新的迁移脚本
许可证
MIT
Description
Languages
Rust
38%
JavaScript
37.6%
HTML
20.5%
Shell
2.8%
CSS
0.6%
Other
0.5%