Files
qiandao/README.md
2025-10-23 00:22:43 +08:00

136 lines
2.4 KiB
Markdown

# 会议签到系统
一个基于 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 (可选,用于数据库)
### 启动数据库
```bash
docker-compose up -d
```
### 设置数据库
创建数据库:
```sql
CREATE DATABASE qiandao CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
运行迁移脚本:
```bash
mysql -u root -p qiandao < migrations/001_create_attendees_table.sql
```
### 启动后端服务
```bash
cargo run
```
后端服务将在 `http://localhost:3000` 运行。
### 启动前端开发服务器
```bash
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` - 为参会者签到
## 部署
### 构建前端
```bash
cd frontend
npm run build
```
构建产物将位于 `frontend/dist` 目录中。
### 构建后端
```bash
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 接口
1. 在 [routes.rs](file:///Users/yangshiyou/Develop/code/rust/qiandao/src/routes.rs) 中添加处理函数
2. 在 [main.rs](file:///Users/yangshiyou/Develop/code/rust/qiandao/src/main.rs) 中注册路由
### 修改数据库模型
1. 更新 [models.rs](file:///Users/yangshiyou/Develop/code/rust/qiandao/src/models.rs) 中的模型定义
2. 创建新的迁移脚本
## 许可证
MIT