# 会议签到系统 一个基于 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