日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

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

目錄

  • 項目介紹
  • 數據庫設計
      • teacher
      • student
      • teachclass
      • job
      • studentclass
      • score
  • 項目目錄
      • 前端
      • 后端
      • 模板引擎和ajax
  • 功能設計
      • 學生端
      • 教師端
  • 權限設計
      • 登錄驗證
      • 授權管理
  • 項目安裝

項目介紹

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

項目github地址,歡迎star!?
作業收繳系統使用手冊csdn地址

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

數據庫設計

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

對于數據庫解讀是最重要的一步。對于項目并沒有太多復雜的邏輯需求。所以直接從數據庫開始。

teacher

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

student

  • 此表包含學生的基本信息

teachclass

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

job

  • 這個可以理解為具體實驗表(作業),沒門課程老師可能發布不同的作業,就要有對應的介紹。

studentclass

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

score

  • 這就是提供教師打分記錄表,學生提交后教師可對學生打分存入數據庫。

項目目錄

前端


前端文件一覽:

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

前端為主界面 iframe小界面,中間的內容框為ifame界面顯示內容。

淺談layui:

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

  • 造成上述的原因主要是因為自己太過墨守成規,以為ui框架只是提供ui,而事實上一個優秀的框架往往比你想象的還要優秀的多。不僅是美麗的外觀,還有強大的功能和便捷的使用。這就要耐心的閱讀文檔,不要被文檔嚇到。

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

后端


后端就是mvc的設計架構:

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

模板引擎和ajax

項目采用thymleaf html的樣式,因為個人開發對于一些參數用thymleaf還是會方便很多。但是thymleaf對于數據綁定對動態數據不太好處理,所以不涉及靜態數據綁定的界面一般都是html。

功能設計

學生端

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

服務端文件接受:

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

教師端

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

權限設計

權限設計基于Shiro進行,

登錄驗證

  • 其實這里我當時糾結的挺久就是shiro的releam一般是針對一個user表中的數據進行驗證,但是項目中的用戶來源自學生表和教師表。因為shiro的session和request的session其實是一個session,所以你可以很靈活的完成一些內容。學生端,教師端并不是一個統一的登錄入口,所以在兩個登錄的端口分別用一個session防一個role身份。在releam中用shiro的session判斷角色,if else判斷角色寫方法解決。

授權管理

  • 登錄驗證可以解決非系統用戶訪問系統的問題,但是不進行權限處理會造成用戶抓到接口可能會進行越權操作。對系統穩定和安全造成威脅。一定需要授權。因為我的接口(教師端)都加了前綴teacher/xxx,更適合url統一管理,對于url統一管理,我采用的是針對身份的管理而不是資源的細化管理。因為主要還是教師和學生兩類用戶。用role可以滿足需求。

項目安裝

項目環境為tomcat8.5以上,mysql5或8.

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

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

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

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。