/Student-Homework-Management-System

使用SSM+Shiro开发的学生作业管理系统。支持批量打包下载,QQ登陆等功能 生产版:

Primary LanguageJavaMIT LicenseMIT

学生作业管理系统

Deprecated:New Version Location Click To New Project

停止维护:新项目地址 点击进入

GitHub stars GitHub forks GitHub watchers GitHub followers

GitHub issues GitHub license GitHub last commit GitHub release GitHub repo size in bytes HitCount language

原本功能

  1. 管理员在后台数据库中准备好学生学号(10位)后,学生可以用学号登录系统,首次登录需要自行设置密码(大于8位)
  2. 学生可以上传文件到系统中,上传功能基于bootstrap-fileinput
  3. 后台统一命名存储文件
  4. 管理员登陆后可以批量下载后台打包过后的文件

新增功能

by tomriddle_1234

  1. 添加截止时间设置,截止时间过后学生无法上传作业
    ALTER TABLE `shw`.`orderinfo` 
    ADD COLUMN `odeadline` DATETIME NOT NULL DEFAULT '2022-01-01 00:00:00' AFTER `otime`;
    
  2. 管理员删除作业任务时,增加确认对话框
  3. 一些界面的小优化
  4. 添加编辑作业任务功能
  5. 作业名称可以用添加链接

架构

前端

  1. jQuery
  2. Bootstrap3
  3. Bootstrap-fileinput
  4. moment.js
  5. bootstrap-datepicker (bootstrap 3 v4)

后端

  1. Spring MVC
  2. Spring
  3. Mybatis
  4. Shiro (安全框架)
  5. Druid(阿里巴巴的开源连接池)
  6. MySql

部署

  1. 下载源码

    你可以在Git(Git是什么,如何使用?)输入以下命令进行clone项目到本地

    git clone https://github.com/itning/Student-Homework-Management-System.git

    或者直接下载主分支的源码

  2. 使用编译器打开本项目

    该项目使用IntelliJ IDEA编译器编写打包,建议同学们使用该编译器进行打开

    项目使用JDK1.8进行编写,用到了JDK1.8+特性,所以最低JDK版本为1.8

  3. 导入SQL文件

    由于该项目不会自动建库建表,所以你需要手动导入SQL

    更改JDBC连接信息(数据库名,用户名,密码)

    context.properties

    其中 user 键为数据库的用户名

    其中 password 键为数据库的密码

  4. 更改上传文件存储目录

    用户上传的文件需要持久化到硬盘上,你需要配置持久化目录

    在这里配置

  5. 安装QQ互联SDK

    这一步是为了能够使用QQ进行登陆

    官方下载互联SDK

    直接运行根目录下install-qq-connect-dependency.bat脚本即可

    直接运行install-qq-connect-dependency.bat即可,无需以下代码
    mvn install:install-file -Dfile=<path_to_your_manually_downloaded_jar_file>.jar -DgroupId=com.qq.connect -DartifactId=qq-connect -Dversion=2.0.0.RELEASE -Dpackaging=jar
  6. 运行

    mvn install
    mvn package
    

    项目使用的Tomcat版本为8.5.20,你最好与我同步。下载该版本

  7. 查看Druid管理面板

    默认用户名:itning

    默认密码:kingston

    页面:http://localhost:8080/druid

    如何更改用户名密码?

SQL

  1. 创建数据库

    CREATE DATABASE IF NOT EXISTS shw CHARACTER SET utf8mb4;
    USE shw;
  2. 导入表结构和数据

    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for history
    -- ----------------------------
    DROP TABLE IF EXISTS `history`;
    CREATE TABLE `history` (
      `hid` varchar(255) NOT NULL,
      `huid` varchar(255) NOT NULL,
      `hoid` int(11) NOT NULL,
      `type` varchar(255) NOT NULL,
      `filepath` varchar(255) NOT NULL,
      `uptime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
      `filesize` double NOT NULL,
      PRIMARY KEY (`hid`),
      KEY `FK_hoid_oid` (`hoid`) USING BTREE,
      KEY `FK_huid_uid` (`huid`) USING BTREE,
      CONSTRAINT `history_ibfk_1` FOREIGN KEY (`hoid`) REFERENCES `orderinfo` (`oid`),
      CONSTRAINT `history_ibfk_2` FOREIGN KEY (`huid`) REFERENCES `user` (`uid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Table structure for orderinfo
    -- ----------------------------
    DROP TABLE IF EXISTS `orderinfo`;
    CREATE TABLE `orderinfo` (
      `oid` int(11) NOT NULL,
      `oname` varchar(255) NOT NULL,
      `osubject` varchar(255) NOT NULL,
      `ostate` bit(1) NOT NULL,
      `otime` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
      `odeadline` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`oid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of orderinfo
    -- ----------------------------
    INSERT INTO `orderinfo` VALUES ('1492109980', '第二次作业', 'UI交互设计', 1, '2018-11-28 14:48:53');
    INSERT INTO `orderinfo` VALUES ('795960272', '第二次作业', '软件测试', 1, '2018-11-28 14:38:11');
    
    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
      `uid` varchar(255) NOT NULL,
      `username` varchar(255) NOT NULL,
      `password` varchar(255) NOT NULL,
      `headimg` varchar(255) DEFAULT NULL,
      `firstlogin` bit(1) NOT NULL DEFAULT b'1',
      `name` varchar(255) NOT NULL,
      `percode` varchar(255) NOT NULL,
      `userOpenID` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`uid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of user
    -- ----------------------------
    INSERT INTO `user` VALUES ('1', '000000000000', '0123456789', null, 1, '管理员', 'admin', null);
    INSERT INTO `user` VALUES ('2', '111111111111', '123456789', null, 1, '用户1', 'user', null);

    预览

    登陆

    管理界面

    上传界面

    添加课程

    druid