架构 | 地址 |
---|---|
单体架构(已停止维护) | https://gitee.com/tiantian17/jx-welcome |
微服务架构 | https://gitee.com/tiantian17/jx-welcome-cloud |
计算机协会招新系统是一款专为计算机协会设计的在线招新平台。它可以帮助协会管理者高效地管理新成员的申请和审核过程,同时为协会成员提供一个方便、易用的申请渠道。
技术 | 描述 |
---|---|
SpringBoot2 | 后端服务开发框架 |
MyBatis | 数据库交互与管理 |
MySQL | 关系型数据库存储数据 |
Druid | 数据库连接池 |
Redis | 数据缓存和业务逻辑实现 |
Sa-token | 权限管理 |
PageHelper | 分页实现 |
Easyexcel | excel操作 |
Havax-mail | 发送邮件 |
WebSocket | 长连接 |
Hutool | Java工具包 |
Common-lang | Java工具包 |
MinIO | 文件存储 |
Xxl-job | 任务调度 |
Lombok | 自动插入编辑器并构建工具 |
Antisamy | 防xss攻击 |
Ip2region | 离线定位 |
技术 | 描述 |
---|---|
Vue2 | 前端服务开发框架 |
VueX | 状态管理 |
VueRouter | 路由 |
Axios | 异步通信 |
Ant Design Vue | 组件库 |
Ant Design pro of Vue | 中后台管理系统模板 |
mavon-editor | 构建markdown编辑器 |
nprogress | 进度条 |
codemirror | 代码编辑器 |
storage.js | 数据持久化 |
vue-croppe | 图片裁剪 |
file-saver | 文件下载 |
moment | 日期转化 |
viser-vue | 基于AntV-G2可视化引擎 |
vue-clipboard2 | 一键复制 |
正确填写表单内容
注册成功结果页面
设置成功页面
修改题目
若需要对题目内容进行修改/删除题目可按照下图进行操作
角色: admin (当对某项设置不清楚时鼠标悬停后会有提示弹出)
设置 答题开放时间,二轮招新时间地址,注册开关
! 判断题人设置 设置成功后该用户会被分配题目进行评分
! 分数线设置 当评分全部评分完成后,系统会计算总分,当总分超过最低分数线时则进行二轮面试
系统日志监控
可查询操作类型包括 新增,修改,删除,登录,注册,录取,未录取,设置题目,提交题目,判断题目,判题人设置,删除判题人,分配新人,登出,批量注册
评分基本信息
进行评分
评分完毕后即可提交
查看他人评分
当答题时出现任何问题均可使用系统通知服务
如上次招新有错题 只是单纯发到微信 而我不看
邮件服务
批量注册接口说明: https://apifox.com/apidoc/shared-2f831638-4798-4adf-9cba-2cfaf9b011d1/api-123238749
访问密码: 98TRbUqR
Python代码为例
假设有一份人员名单(excel)
学号 | 姓名 | 班级 | 手机号码 | 邮箱 |
---|---|---|---|---|
199810006666 | 啦啦啦 | 98软件工程1班 | 13888888888 | 13888888888@qq.com |
... | ... | ... | ... | ... |
import json
import pandas as pd
import requests
from pypinyin import lazy_pinyin, Style
def get_initial(name):
"""
:param name: 字符串
:return: 返回首字母缩写(小写)
"""
initial = ''.join(lazy_pinyin(name, style=Style.FIRST_LETTER))
return initial.lower()
# 邀请码
invitationCode = ""
# 请求地址
url = "http://10.226.8.14:9091/jx-welcome/registerBatch"
# params参数
params = {
"assessKey": "",
"secretKey": ""
}
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36',
'Content-Type': 'application/json'
}
# excel数据
data = pd.read_excel("./人员名单.xlsx")
# 错误消息列表
error_list = []
success_list = []
for index, row in data.iterrows():
nickName = row["姓名"]
username = row["学号"]
# 自定义账号密码策略(学号后6位+姓名首字母小写)
password = str(username)[-6:] + get_initial(nickName)
confirmPassword = password
payload_dict = {
"invitationCode": invitationCode,
"username": username,
"password": password,
"confirmPassword": password,
"clasz": row["班级"],
"nickName": nickName,
"studentId": row["学号"],
"phonenumber": row["手机号码"],
"email": row["邮箱"]
}
payload = json.dumps(payload_dict)
# 发送请求
response = requests.request("POST", url=url, headers=headers, params=params, data=payload)
json_response = response.json()
info = {"请求参数": payload_dict, "返回的消息": json_response['msg']}
if json_response['code'] != 200:
error_list.append(info)
else:
success_list.append(info)
# 记录信息
with open(file="注册错误信息记录.txt", mode="w") as f:
if len(error_list) == 0:
f.write("无错误信息")
else:
for error in error_list:
f.write(str(error))
f.write("\n")
with open(file="注册成功人员名单信息.txt", mode="w") as f:
for success in success_list:
f.write(str(success))
f.write("\n")
提交成功界面
录取流程如下
提交题解
进行评分
二轮面试
成功录取
评分未通过
二轮面试未通过
https://gitee.com/tiantian17/jx-welcome-docs 内网地址: http://10.226.8.14:666/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。