Skip to content

The reconstruction of my python edition. It has more stability, more features

Notifications You must be signed in to change notification settings

GWillS163/AssignmentSubmission_Java_Edition

Repository files navigation

OSCS Status Build Status Coveralls

Content

简介

设计的桌面端用来方便的收集/提交文件

解决问题

用来师生间收集指定作业(文件)

场景1:多个老师指定不同的作业格式及具有规则的文件名,学生需要提交自己的多个作业以相应的文件名重命名给多个老师。 例如:

A老师要求学生提交的文件名为:学号_姓名_作业1.docx 学号_姓名_作业2.docx

B老师要求学生提交的文件名为:学号_作业B.docx

使用方式

  1. 首次下载或需要更改信息时,学生双击打开桌面垃圾桶,按提示输入学号,回车保存退出程序。
  2. 每次使用时,将(多个)文件拖拽至本垃圾桶,将会打开软件。
  3. 按屏幕提示输入每个文件指定的序号。
  4. 回车即可发送文件。

主要功能

  1. 收集并重命名文件
  2. 作业数据持久化
  3. 可查询/修改/删除 云端作业数据

安全功能

由于方便了学生配置,仅需要输入学号认证,得到个人信息。因此可能存在其他学生代替上交的可能性,因此增加了两张数据表留存数据。

  1. 设备信息表: 存储设备信息及所属当前用户
  2. 操作记录表: 操作记录(设备,学号,操作时间,操作IP, 操作类型[登录/更新设备/提交文件], 相关文件)

技术栈 & 赞助资源

  • 在线配置: ConfigCat by GitHub
  • 代码辅助: Copilot 插件 by GitHub
  • 云数据库: MongoDB Altas by MongoDB Official.

以上这些是非常棒的技术资源并且几乎是免费的,感谢这些技术的提供方.

个性化安装

  1. 下载源码: git clone ...
  2. 安装依赖: mvn install
  3. 查看本项目wiki, 了解如何配置本项目。
  4. 打包运行项目

Introduce

What problem has been solved

that is to use mature technology to resolve current questions I need to be solved.

  • Java edition should only get users' inputs and mechanical processes, with no data should be stored in the program.
  • all of the data should be stored in the database ( now using MongoDB Atlas), For example, users' data, assignments data, files data, and the new feature is that save the user's computer data so that related account.
  • new construction and design of the tool, I will use the philosophy of software engineering to design my tool.
  • the large file can be stored in the cloud DB.
  • the retrieve message that the user queries all of the statuses of the files can be accomplished.

About AssignmentSubmission_Java_Edition

before this, there are one tool developed by python using related libs. but there were some things I encountered that were a hassle. one of the things is GUI when using GUI to develop, the consequential file size will be bigger than 50MB, but there in fact only 9MB before using GUI.

About the File upload Module

the maximum size of MongoDB allowed is 16MB, so we can use Grid FS like a bucket to save the large file.

系列项目介绍 - Introduction of Project of the series

Java Desktop Edition的主要作用是解决了Python 版的一些问题如仅能单向提交无法查询删除等,并且提供了更好的体验。

maybe this project should be public on GitHub as a repo?

Python Desktop Edition😄 : be deprelected

写在最后 - At the Last

每隔一段时间我再回看自己的代码,总会发现自己的代码质量还是有很大的提升空间,所以总是在不断的重构代码,以提高代码质量。

Post at 2022-7-5 14:53:12