YakiChen / sims_vue

学生信息管理系统前端部分(VUE实现)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

前言

体验地址(学生党一枚,服务器到期,即不提供体验地址)

  线上体验地址:点击访问

  后端项目地址:点击访问

管理员内置账号:
	学工号:123 密码:123
	学工号:124 密码:123
	学工号:125 密码:123
	学工号:126 密码:123
学生用户:学工号,密码为该生身份证后六位。

  关于前后端开发中跨域问题,开发时采用后端解决方式,通过配置SpringSecurity中的cors项,允许跨域。

  项目最终在部署的时候,前后端采用独立部署,通过nginx来代理请求,从而解决了跨域问题。

  觉得此项目不错的小伙伴,不要忘记 star~。

项目简介

  学生信息管理系统

  • 基本功能包括
  1. 学生信息管理,增删改查,以及文件备份,批量注册,前后端同时校验数据,讲异常数据响应给用户。
  2. 用户信息管理,对于角色控制,用户状态的控制。
  3. 课程信息管理,课程相关管理。
  4. 公告管理,发布最新的教务动态,或者教务系统公告。

  采用前后端分离式开发,采用现阶段流行技术实现,例如:SpringBoot、Spring、SpringMVC、MyBatis。

  • 核心功能
  1. 定时开放与关闭选课系统,定时开放采用redis中的键过期时间控制;系统关闭采用线程池中ScheduledThreadPoolExecutor来设置计划任务。
  2. 用户并发选课控制,采用异步处理,并且使用缓存层Redis记录相关信息,同时采用aop编程**,在第一次请求选课接口时,加载redis中lua脚本文件(只会加载一次)。

技术选型

后端部分

  • SpringBoot,作为整个管理容器
  • SpringSecurity,一个强大的权限控制框架,与Spring的兼容性好一些相比于shiro。
  • MyBatis,ORM框架
  • PageHelper,分页插件
  • Hibernate-Validator,验证框架
  • ActiveMQ,消息队列
  • Redis,分布式缓存
  • Druid,数据库连接池
  • FastJson,json序列化方式
  • easyexcel,操作excel
  • Lombok,简化pojo对象
  • OSS,对象云存储,采用腾讯云对象存储

前端部分

  • node.js

  • Vue

  • ElementUI,前端组件库

  • axios,异步请求,比ajax要轻量级一些。

  • echarts,报表

  • wangeditor,网页轻量级编辑器

  • router,路由配置

  • store,全局对象存储


运行截图

  • 登录页面

  • 首页

  • 学生信息管理部分:

  • 用户管理部分:

  • 管理员开放选课系统:

  • 学生选课:


前端项目结构

├─assets -- 静态资源
├─components -- 视图组件
├─plugins -- 插件
├─router -- 路由配置
├─store -- 存储
├─utils -- 工具类(包含api封装)
└─views -- 视图页面部分
    ├─admin -- 管理员视图
    ├─common -- 公共视图
    ├─student -- 学生视图
    └─teacher -- 教师视图

目前存在的问题

  1. 功能没有完善,整个系统虽然是一个单体应用架构,但是逻辑结构很清晰,方便日后扩展功能点以及维护。

  2. 用户登录,没有做人数上的并发控制。

  3. 数据库没有进行合理的复制,一旦线上数据库宕机,需要手动的维护。


展望与总结

  本次项目采用单体应用架构,学习分布式理论微服务之后,有时间可以本项目的架构进行转型,如果有志同道合的朋友,可以一起开发。

About

学生信息管理系统前端部分(VUE实现)


Languages

Language:Vue 92.0%Language:JavaScript 7.7%Language:HTML 0.4%