基于SpringBoot+Vue大学生社团管理系统的设计与实现
随着大学社团的快速发展和多样化需求的增加,传统的手工管理方式已经无法满足日益复杂的社团运营需求。因此,建立一套高效、智能的大学社团管理系统迫在眉睫。本文提出的大学社团管理系统是采用基于Java语言、MySQL数据库和Spring Boot框架为基础进行设计开发的。Spring Boot是一种新兴的Java开发框架,它提供了快速搭建应用程序的能力,并且具有很好的灵活性和可扩展性。该系统采用Sprin
博主主页:一季春秋
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、小程序、安卓app、大数据等设计与开发。感兴趣的可以收藏+关注,所有项目均配有开发文档,一系列安装配置教程,可以定制功能包安装运行!!
🍅文末获取联系🍅
系统介绍
随着大学社团的快速发展和多样化需求的增加,传统的手工管理方式已经无法满足日益复杂的社团运营需求。因此,建立一套高效、智能的大学社团管理系统迫在眉睫。本文提出的大学社团管理系统是采用基于Java语言、MySQL数据库和Spring Boot框架为基础进行设计开发的。Spring Boot是一种新兴的Java开发框架,它提供了快速搭建应用程序的能力,并且具有很好的灵活性和可扩展性。该系统采用Spring Boot框架进行开发,能够快速地构建出高效、稳定、安全、易维护的应用程序。
系统主要技术
开发语言:Java
使用框架:spring boot
前端技术:JavaScript、Vue 、css3
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven: apache-maven 3.8.1-bin
系统功能
按照大学社团管理系统的角色,主要包括学生用户模块、社长用户模块、社员用户模块和管理员这四大功能模块,各模块功能内容如下:
- 学生用户功能:
- 注册登录:访客可以通过注册成为系统用户,注册后可以用账号密码登录系统。
- 首页:用户可以查看首页展示的轮播图、社团推荐信息等内容。
- 网站公告:用户可以查看社团信息列表中某一社团详情并进行点赞、收藏、发表评论和申请入团提交操作。
- 社团资讯:用户可以查看社团新闻列表中某一新闻详情并进行点赞、收藏和发表评论操作。
- 互动交流:学生用户可以在系统中与社团成员进行互动和交流,包括发表动态、评论、点赞等功能,增进社团内部的联系和交流。
- 社团信息:学生用户可以查看社团的基本信息,包括名称、简介、活动内容、成员数量等,帮助他们选择合适的社团加入。
- 活动信息:用户可以查看社团活动列表中某一活动详情并进行点赞、收藏、发表评论和提交参加申请操作。
- 我的:用户可以修改个人信息和登录密码,可以查看和管理个人中心中的申请建团、申请入团和收藏信息。
- 社长用户功能:
- 注册登录:访客可以通过注册成为系统用户,注册后可以用账号密码登录系统。
- 首页:用户可以查看首页展示的轮播图、社团推荐信息等内容。
- 社团类型管理:团长用户可以创建新的社团类型,例如学术类、文娱类等,为社团分类提供便利;团长用户可以编辑社团类型的相关信息,例如类型名称、描述等,团长用户可以删除不再使用的社团类型。社团申请管理:用户可以查看社团新闻列表中某一新闻详情并进行点赞、收藏和发表评论操作。
- 社团信息管理:用户可以查看社团信息列表中某一信息详情并进行点赞、收藏和发表评论操作。
- 活动信息管理:创建活动:团长用户可以创建社团的活动,填写活动标题、内容、时间地点等信息,编辑活动信息,团长用户可以编辑活动的相关信息,例如时间地点的修改、活动内容的更新等。删除活动,团长用户可以删除已经结束或取消的活动。
- 活动反馈管理:查看报名情况:团长用户可以查看活动的报名情况,包括已报名人数和报名人员名单;发布活动反馈:团长用户可以在活动结束后发布活动反馈,包括活动的总结、感谢参与等内容。
- 我的:用户可以修改个人信息和登录密码,可以查看管理个人中心中的社团用户、申请入团、申请退团等信息。
- 管理员功能:
- 后台首页:管理员可以查看后台首页展示的相关信息。
- 系统用户:管理员可以查看和管理系统用户信息。
- 社团类型管理:管理员可以创建新的社团类型,如学术类、文娱类等,为社团分类提供便利;编辑社团类型信息:管理员可以编辑社团类型的相关信息,如类型名称、描述等;删除社团类型:管理员可以删除不再使用的社团类型。
- 社团申请管理:管理员可以查看和管理申请建团信息。
- 社团信息管理:管理员可以对社团信息进行增删改查操作。
- 活动信息管理:管理员可以创建社团的活动,填写活动标题、内容、时间地点等信息,编辑活动信息:管理员可以编辑活动的相关信息,如时间地点的修改、活动内容的更新等;删除活动:管理员可以删除已经结束或取消的活动。
- 活动反馈管理:查看活动反馈:管理员可以查看活动的反馈信息,包括活动总结、参与人员反馈等,发布活动反馈:管理员可以发布活动反馈,包括活动总结、感谢参与等内容。
- 留言管理:查看留言:管理员可以查看社团成员或其他用户留下的留言内容,删除留言:管理员可以删除不当或违规的留言内容。社团公告管理:管理员可以对社团活动信息进行增删改查操作。
- 系统管理:管理员可以对轮播图信息进行查询、添加、重置和删除操作。
资源管理:照片视频管理:管理员可以管理系统中的照片和视频资源,包括上传、编辑、删除等操作;文件管理:管理员可以管理系统中的文件资源,如文档、表格等,包括查看、下载、删除等操作。
系统展示
用户注册界面
用户点击首页右上角“登录”按钮进入登录页面。点击下方的“没有存在账户?创建一个账户吧”进入注册页面填写账号、密码、确认密码、昵称、邮箱、身份等信息后点击“注册”按钮,系统会对输入的信息进行验证,验证通过后即可完成注册,其主界面展示如下图4-1所示。
用户登录界面
用户注册后可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,系统会对输入的信息进行验证,验证通过后即可完成登录,其界面展示如下图4-2所示。
前台首页界面
用户可以查看首页展示的轮播图、社团信息推荐等信息,其界面如下图4-3所示。
社团信息界面
用户可以查看社团信息列表中某一社团详情并进行点赞、收藏、发表评论和申请入团提交操作,其界面如下图4-4所示。
团长功能模块
用户可以查看和管理个人中心中的社员用户、申请入团、申请退团、社团新闻、收藏等信息,例如可以查看申请入团、申请退团列表中某一信息详情并进行审核和回复;对社员用户、社团新闻、社团公告、社团资金进行查询、重置、添加和删除操作等,其界面如下图4-6所示:
管理员功能模块
管理员可以查看社团建团列表中的某一建团详情并进行审核和回复,可以对社团建团信息进行查询、重置、添加和删除操作,其界面如下图4-7所示。
部分核心代码
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UsersController {
@Autowired
private UsersService usersService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
R r = R.ok();
r.put("token", token);
r.put("role",user.getRole());
r.put("userId",user.getId());
return r;
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UsersEntity user){
// ValidatorUtils.validateEntity(user);
if(usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
usersService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 修改密码
*/
@GetMapping(value = "/updatePassword")
public R updatePassword(String oldPassword, String newPassword, HttpServletRequest request) {
UsersEntity users = usersService.selectById((Integer)request.getSession().getAttribute("userId"));
if(newPassword == null){
return R.error("新密码不能为空") ;
}
if(!oldPassword.equals(users.getPassword())){
return R.error("原密码输入错误");
}
if(newPassword.equals(users.getPassword())){
return R.error("新密码不能和原密码一致") ;
}
users.setPassword(newPassword);
usersService.updateById(users);
return R.ok();
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
usersService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UsersEntity user){
EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
PageUtils page = usersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UsersEntity user){
EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", usersService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UsersEntity user = usersService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Integer id = (Integer)request.getSession().getAttribute("userId");
UsersEntity user = usersService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UsersEntity user){
// ValidatorUtils.validateEntity(user);
if(usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
usersService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UsersEntity user){
// ValidatorUtils.validateEntity(user);
usersService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
List<UsersEntity> user = usersService.selectList(null);
if(user.size() > 1){
usersService.deleteBatchIds(Arrays.asList(ids));
}else{
return R.error("管理员最少保留一个");
}
return R.ok();
}
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)