日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

作业收缴系统设计手册(自写开源小系统)

發(fā)布時(shí)間:2025/3/20 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 作业收缴系统设计手册(自写开源小系统) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 項(xiàng)目介紹
  • 數(shù)據(jù)庫設(shè)計(jì)
      • teacher
      • student
      • teachclass
      • job
      • studentclass
      • score
  • 項(xiàng)目目錄
      • 前端
      • 后端
      • 模板引擎和ajax
  • 功能設(shè)計(jì)
      • 學(xué)生端
      • 教師端
  • 權(quán)限設(shè)計(jì)
      • 登錄驗(yàn)證
      • 授權(quán)管理
  • 項(xiàng)目安裝

項(xiàng)目介紹

系統(tǒng)旨在優(yōu)化作業(yè)上交流程,解決收繳作業(yè)的繁瑣過程,傳統(tǒng)收繳作業(yè)基于qq文件,或者郵箱收發(fā)。需要大量的人工操作和精力取維護(hù)。而本系統(tǒng)將作業(yè)系統(tǒng)部署到服務(wù)器,大大方便了教師/收作業(yè)者對作業(yè)的管理。系統(tǒng)精美簡單易用。能夠滿足大部分需求。項(xiàng)目已開源,可以自己使用或者二次開發(fā)等等。歡迎star?!!

項(xiàng)目github地址,歡迎star!?
作業(yè)收繳系統(tǒng)使用手冊csdn地址

開發(fā)工具:IDEA postman nivicat
主要框架:Springboot Mybatis Shiro Druid
其他框架/工具:devtools,Easyexcel(poi),Mybatis-generator,
運(yùn)行環(huán)境:Tomcat8.5以上,Mysql5或8

數(shù)據(jù)庫設(shè)計(jì)

這個(gè)數(shù)據(jù)庫是老師給我讓我完成的,7張表只用了6張,老師給了一些關(guān)鍵性的外鍵,其實(shí)還有一些外鍵參考,但鑒于系統(tǒng)并不是完全完善并且對邏輯影響不是很大,所以我就沒加上那些外鍵。如果有需要可自行添加。

對于數(shù)據(jù)庫解讀是最重要的一步。對于項(xiàng)目并沒有太多復(fù)雜的邏輯需求。所以直接從數(shù)據(jù)庫開始。

teacher

  • 此表包含教師信息的基本字段,包過工號,姓名,密碼,level是權(quán)限用的,管理員教師可以操作其他教師,level為0權(quán)限為管理員,其他為普通教師。

student

  • 此表包含學(xué)生的基本信息

teachclass

  • 此表為課程表,一個(gè)老師不同學(xué)期可能帶幾個(gè)班級,這個(gè)課程就要有學(xué)期,名稱,學(xué)分,課程類型,對應(yīng)教師等信息。

job

  • 這個(gè)可以理解為具體實(shí)驗(yàn)表(作業(yè)),沒門課程老師可能發(fā)布不同的作業(yè),就要有對應(yīng)的介紹。

studentclass

  • 這是學(xué)生和課程聯(lián)系的中介。一個(gè)學(xué)生可以在不同課程中上課,課程id(teachclass表的ID和學(xué)號為唯一索引)

score

  • 這就是提供教師打分記錄表,學(xué)生提交后教師可對學(xué)生打分存入數(shù)據(jù)庫。

項(xiàng)目目錄

前端


前端文件一覽:

前端采用后臺(tái)管理layui,并沒有用別人寫好的layui模板進(jìn)行嵌套修改,而是從0開始從layui官方開始參考文檔一點(diǎn)點(diǎn)用組件。

前端為主界面 iframe小界面,中間的內(nèi)容框?yàn)閕fame界面顯示內(nèi)容。

淺談layui:

  • 以前就接觸過layui,以前和隊(duì)友配合隊(duì)友寫前端自己隊(duì)友用的就是前端。還有以前幫姐姐寫的小東西也是用的layui,不過那次用的layui不是真的layui。。那只是用到layui漂亮的外表。清晰記得。套過來layui的殼子,然后能用thymleaf交互的地方就不用ajax。。遇到ajax的地方(比如表格)等等就瘋狂Jquery拼湊html,雖然外觀還行,但是可維護(hù)性很差,自己都不清楚自己寫那去了。

  • 造成上述的原因主要是因?yàn)樽约禾^墨守成規(guī),以為ui框架只是提供ui,而事實(shí)上一個(gè)優(yōu)秀的框架往往比你想象的還要優(yōu)秀的多。不僅是美麗的外觀,還有強(qiáng)大的功能和便捷的使用。這就要耐心的閱讀文檔,不要被文檔嚇到。

  • 在本系統(tǒng)中用到layui多個(gè)組件。如表單,表格,時(shí)間日期,文件上傳,表格等等,layui雖然不是雙向綁定模式,但是layui對于控件fitter的綁定和監(jiān)聽做的特別好,雖然大部分方便了使用但是會(huì)使得部分傳統(tǒng)方法出現(xiàn)失效的問題需要自己解決。layui大部分都是基于ajax的異步傳輸。在系統(tǒng)初用的是thymleaf,后來發(fā)現(xiàn)在layui的領(lǐng)域thymleaf并不能展現(xiàn)過大的便捷性,后面的就都用html了。其次就是layui的一些東西可能對后端新手(比如我)有一些新穎。layui表單等等封裝了很便捷的異步提交方式。你大部分的傳輸方式要按照他的規(guī)則來,但是也有一些時(shí)候他可能滿足不了你的需求你需要解決。對于layui更多功能,詳細(xì)參考layui官當(dāng)demo

后端


后端就是mvc的設(shè)計(jì)架構(gòu):

  • config:
    shiro的配置和自定義releam配置在文件中,還有就是druid監(jiān)控的一些內(nèi)容也放在里面。
  • controller:
    controller層分了幾個(gè)controller,比如文件處理一個(gè),登錄授權(quán)一個(gè),thymleaf控制一個(gè),還有studentcontroller處理一些學(xué)生端的事務(wù),因?yàn)榻處煻说膬?nèi)容比較多,根據(jù)處理不同的信息分了處理學(xué)生,處理課程,處理實(shí)驗(yàn)等controller。
  • service:
    當(dāng)時(shí)為了方便只寫了兩個(gè)service,學(xué)生和教師,所以service內(nèi)容比較多,你可以從controller的內(nèi)容找入service
  • dao:
    為mybatis逆向工程生成基本文件和自己添加一些接口
  • pojo
    數(shù)據(jù)庫映射對象,其中student繼承滿足poi導(dǎo)入excel的類。
  • log
    logback日志配置,放到服務(wù)器要修改日志文件地址(用絕對路徑否則日志文件將不存在)

模板引擎和ajax

項(xiàng)目采用thymleaf html的樣式,因?yàn)閭€(gè)人開發(fā)對于一些參數(shù)用thymleaf還是會(huì)方便很多。但是thymleaf對于數(shù)據(jù)綁定對動(dòng)態(tài)數(shù)據(jù)不太好處理,所以不涉及靜態(tài)數(shù)據(jù)綁定的界面一般都是html。

功能設(shè)計(jì)

學(xué)生端

  • 文件上傳
    客戶端文件上傳
  • layui的form表單默認(rèn)是同步上傳,而同步上傳需要跳轉(zhuǎn)界面并不是我想要的結(jié)果,所以本系統(tǒng)用異步上傳文件來完成。所用的是ajax的formdate進(jìn)行文件上傳。具體代碼可參考templates/student/upload.html這個(gè)thymleaf文件。

服務(wù)端文件接受:

  • 服務(wù)端以前的文件接收用的是servlet3.0,但是Springmvc的MultipartFile接受文件更加便捷,所以采用對于上傳的路徑。為tomcat項(xiàng)目相對路徑fileget/" lessonid “/” jobid “/” 文件名;這里文件名設(shè)置為學(xué)號 姓名 實(shí)驗(yàn)名 實(shí)驗(yàn)幾。具體可參考fileController.java代碼內(nèi)容。
  • 還有就是本來是寫了作業(yè)補(bǔ)交的功能的,但是出于需求考慮補(bǔ)交部分被注釋掉。所以截至日期暫時(shí)沒有明顯作用。只是上傳作業(yè)的時(shí)候會(huì)提示。

教師端

  • 文件打包成zip:
    要將服務(wù)器所有已經(jīng)上傳的文件打包成zip文件,要注意打包成zip文件的時(shí)候不能在服務(wù)器保存—不要占用額外的空間,所有就要用io臨時(shí)生成zip文件傳輸?shù)娇蛻舳?#xff0c;這就要很好的處理下io流的內(nèi)容,還要考慮文件下載的內(nèi)容。謹(jǐn)防異常和文件名亂碼等。具體可參考fileController下代碼。
  • 接受excel并解析:
    java解析excel的工具并不多,當(dāng)前較為流行的apache下的poi。我用的是阿里的easyexcel—基于poi封裝改進(jìn)的框架。但是基于poi如果解析excel生成實(shí)體類需要對pojo對象繼承BaseRowModel類并在字段上給出對應(yīng)注解:
  • layui表格
    layui表格按照固定格式ajax渲染而來的,項(xiàng)目中多次用到layui表格。提供強(qiáng)大的在線編輯,排序,導(dǎo)出excel/cvs等功能。你只需耐心閱讀layui表格相關(guān)部分文檔就可以了解其中流程。
  • 其他
    項(xiàng)目中其他部分無非就是表單提交。后臺(tái)增刪改查。模糊查詢。前端jq處理邏輯等等。

權(quán)限設(shè)計(jì)

權(quán)限設(shè)計(jì)基于Shiro進(jìn)行,

登錄驗(yàn)證

  • 其實(shí)這里我當(dāng)時(shí)糾結(jié)的挺久就是shiro的releam一般是針對一個(gè)user表中的數(shù)據(jù)進(jìn)行驗(yàn)證,但是項(xiàng)目中的用戶來源自學(xué)生表和教師表。因?yàn)閟hiro的session和request的session其實(shí)是一個(gè)session,所以你可以很靈活的完成一些內(nèi)容。學(xué)生端,教師端并不是一個(gè)統(tǒng)一的登錄入口,所以在兩個(gè)登錄的端口分別用一個(gè)session防一個(gè)role身份。在releam中用shiro的session判斷角色,if else判斷角色寫方法解決。

授權(quán)管理

  • 登錄驗(yàn)證可以解決非系統(tǒng)用戶訪問系統(tǒng)的問題,但是不進(jìn)行權(quán)限處理會(huì)造成用戶抓到接口可能會(huì)進(jìn)行越權(quán)操作。對系統(tǒng)穩(wěn)定和安全造成威脅。一定需要授權(quán)。因?yàn)槲业慕涌?#xff08;教師端)都加了前綴teacher/xxx,更適合url統(tǒng)一管理,對于url統(tǒng)一管理,我采用的是針對身份的管理而不是資源的細(xì)化管理。因?yàn)橹饕€是教師和學(xué)生兩類用戶。用role可以滿足需求。

項(xiàng)目安裝

項(xiàng)目環(huán)境為tomcat8.5以上,mysql5或8.

  • 首先復(fù)制db目錄receve的內(nèi)容放到nivicat等數(shù)據(jù)庫建庫建表(數(shù)據(jù)已經(jīng)進(jìn)行閹割)
  • 如有需要,修改application.properties文件的數(shù)據(jù)庫賬號密碼
  • 修改logback.xml的日志路徑(如果需要)

    4.如果本地可直接運(yùn)行,如果打包部署,需要先clean,然后修改maven配置
    將兩個(gè)被注釋的還原

    然后再target目錄下找到war包,修改成你要的項(xiàng)目名,用ssh、scp等工具指令放到tomcat指定目錄下。就可以訪問了。
    教師端登錄地址:http://localhost:8080/loginteacher.html (數(shù)據(jù)庫teacher表)
    學(xué)生端登錄地址:http://localhost:8080/login.html (數(shù)據(jù)庫student表)
    數(shù)據(jù)庫監(jiān)控地址:http://localhost:8080/druid/login.html (數(shù)據(jù)庫賬號密碼)
    • 如果對后端、爬蟲、數(shù)據(jù)結(jié)構(gòu)算法等感性趣歡迎關(guān)注我的個(gè)人公眾號交流:bigsai

    總結(jié)

    以上是生活随笔為你收集整理的作业收缴系统设计手册(自写开源小系统)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。