# 学生导师分配表 **Repository Path**: niuniudage/student-allocation ## Basic Information - **Project Name**: 学生导师分配表 - **Description**: 简单分配教师导师 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-17 - **Last Updated**: 2024-10-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## excel表格: 1. sheel1为导师信息,表头为老师名称,自愿多分配二年级学生数,自愿多分配三年级学生数,实际分配二年级学生数,实际分配三年级学生数,实际分配的二年级学生 2. sheel2为学生信息,表头为学生名称,年级,导师名称 ## 读取数据表进行分配,分配需求如下 ## 学生分配条件: - 需要将二年级和三年级的学生分配给老师。 - 每位老师最多分配 12 名学生。 - 老师可以自愿多分配二年级或三年级学生,具体的愿意多分配数量记录在相关字段中。 ## 分配逻辑: - 第一轮分配,计算出各个年级每个老师需要分配的学生数,向下取整,随机取平均数量的学生进行分配,标记学生信息对应的老师,标记老师所分配的学生; - 如果有剩余学生未分配,进行第二轮分配,筛选出各个年级愿意多分配学生的老师,随机取一个老师,随机分配剩余学生给这个老师,分配数量的上限为这个老师愿意多带的学生数量,且不能超过分配给他的二、三年级学生总和的上限;记录第二轮已分配的导师。 - 如果有剩余学生未分配,进行第三轮分配,筛选第二轮未分配到学生的老师,剩余学生随机选择这些老师作为导师,每个导师只能被选取一次,学生选完为止,不可重复选取 ## 最终分配结果的输出: - 结果需要包含以下内容: - sheel1包含学生的名字、年级、分配的导师。 - sheel2老师的名字、自愿多分配二年级/三年级学生的数量、实际分配的二年级/三年级学生数量以及分配的学生名单。 - 结果导出为带有时间戳的 Excel 文件。 ## 部署步骤: 1. 安装nginx,php82以上版本,nginx,php的user nobody,group nobody 2. 修改env,设置sqlite的路径,不存在需要手动先创建一个 3. 配置nginx文件,重启服务即可 4. 设置目录权限,storage/,bootstrap/cache,还有数据库文件的权限 ## TODO 1. 记录上传的文件,可通过文件点击重新生成分配,对上传的文件进行删除管理 2. 新增重新生成按钮,在不需要上传的文件的情况下可重新生成分配 3. 新增简易的登录验证处理 4. 表单验证csrf 5. 新增序号,班级 6. php artisan migrate:reset && php artisan migrate