+ **UniApp**:跨平台移动应用开发框架,支持编写小程序、Android、iOS、H5等多个端口。 + **Node.js**:JavaScript 运行时,用于构建后端服务器。 + **Express**:Node.js 的轻量级 Web 框架,用于路由和中间件管理。 + **Sequelize**:Node.js ORM,用于连接和操作 MySQL 数据库。 + **MySQL**:关系型数据库,用于存储用户、学生、老师等数据。
```plain MutualSelectionBackend ├── controllers # 控制器层,处理业务逻辑 │ ├── authController.js # 处理登录、注册逻辑 │ ├── studentController.js # 处理学生相关业务逻辑 │ ├── teacherController.js # 处理老师相关业务逻辑 │ └── adminController.js # 处理管理员相关业务逻辑 ├── models # 数据模型层 │ ├── studentModel.js # 学生模型 │ ├── teacherModel.js # 老师模型 │ └── userModel.js # 用户模型(包含所有用户) ├── routes # 路由层 │ ├── authRoutes.js # 登录注册路由 │ ├── studentRoutes.js # 学生路由 │ ├── teacherRoutes.js # 老师路由 │ └── adminRoutes.js # 管理员路由 ├── middlewares # 中间件 │ └── authMiddleware.js # 认证中间件,校验登录状态 ├── config # 配置文件 │ └── db.js # 数据库配置和连接 ├── app.js # Express 应用主入口 └── package.json # 项目依赖和脚本 ```
+ **注册和登录**:学生可以通过提供用户名和密码注册,登录后可以查看所有老师列表并选择老师。 + **选择老师**:学生可以选择老师并确认,选中后老师会收到通知。 + **确认学生**:老师可以登录系统,查看选择自己的学生列表,并确认最终学生名单。 + **学生/老师管理**:管理员可以查看所有学生和老师的信息。 + **自动分组**:管理员可以一键分配学生到不同的组中。
```bash git clone https://github.com/your-repo/MutualSelectionBackend.git cd MutualSelectionBackend ``` ```bash npm install ``` 在 `config/db.js` 中配置 MySQL 数据库连接信息:
const sequelize = new Sequelize('database_name', 'username', 'password', {
host: 'localhost',
dialect: 'mysql'
});
服务器将会在 localhost:3000
运行。
+ **URL**: `/api/auth/login` + **方法**: `POST` + **请求参数**:
{
"username": "your_username",
"password": "your_password"
}
- 响应:
{
"message": "登录成功",
"token": "JWT_TOKEN"
}
{
"username": "your_username",
"password": "your_password",
"role": "student" // 或 "teacher", "admin"
}
- 响应:
{
"message": "注册成功"
}
[
{
"id": 1,
"name": "Teacher A",
"department": "Math"
},
...
]
{
"studentId": 1,
"teacherId": 2
}
- 响应:
{
"message": "选择成功"
}
{
"teacherId": 1,
"studentId": 2
}
- 响应:
{
"message": "已确认选择"
}
{
"message": "组分配成功"
}
大家好,今天我将为大家讲解我们的学生老师双选系统。这个系统主要用于学生和老师之间的双向选择,管理员可以管理学生和老师的分配,并最终进行自动分组。系统分为三个用户端,分别是学生、老师和管理员,每个端有不同的操作权限。 我们的系统采用了标准的 **三层架构**,即表示层、业务逻辑层和数据访问层:
- 表示层:使用 UniApp 构建了学生、老师和管理员的三个前端页面,提供了登录、注册、双选、分组等功能。
- 业务逻辑层:使用 Node.js + Express 构建了后端服务器,处理所有的 API 请求和响应。业务逻辑分为三个控制器,分别处理学生、老师、管理员的请求。
- 数据访问层:使用 Sequelize ORM 连接 MySQL 数据库,管理用户、学生、老师的数据。
- 注册和登录:学生、老师和管理员可以分别注册自己的账号并登录系统。
- 学生选择老师:学生可以选择老师,并提交确认。
- 老师确认学生选择:老师可以查看选择自己的学生列表,并确认最终名单。
- 管理员自动分组:管理员可以一键完成学生的分组操作。
- 首先克隆项目并安装依赖。
- 配置数据库连接信息。
- 启动服务器,系统会自动同步数据库表。
- 最后,可以通过 API 或前端界面进行功能测试。
如果大家有任何问题,欢迎提出,谢谢!
这就是完整的 README 文档和讲解稿,你可以根据具体需求进行调整和补充。