136 lines
2.4 KiB
Markdown
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 |