Class Affairs Management System

Related tags

Metaprogramming csms
Overview

csms-Class Affairs Management System

班级事务管理系统

项目介绍

利用Java实现C/S模式的大学班级内日常事务管理系统(PC版,应用于校内网有线网络访问,暂不开发移动端),不得依赖现有的建模框架,使用swings技术完成如下基本功能需求:
1、 班级公告通知
2、 文稿匿名传阅投票
3、 文件共享(上传、下载)
4、 即时通信(一对一,多对多)

系统架构

采用C/S模式(重服务器,轻客户端),将任务合理分配到Client端和Server 端。充分利用硬件环境的优势,降低系统开销。
服务端与数据库相连,实现各种数据信息的添加,更新,查找和删除。服务器将处理好的数据传输到客户端,使客户端操作简单,使用方便。

系统模块

分为三个部分,服务器端,客户端,服务器和客户端共用模块。
服务器端:

  • ServerHandle包:实现服务器端的各种功能,接收来着客户端的各种消息信息,并完成转发。
  • Database包:与建立的数据库中的table一一对应,每个table都有对应的类进行功能实现,负责各种数据的添加,查找,删除和更新。

客户端:

  • ClientHandle包:实现客户端的各种功能,可以向服务器发送消息信息,也可接收来自服务器的消息信息。
  • View包:系统的所有用户界面都包含在此。

客户端与服务器端共有包:

  • bean包:封装普通用户和管理员的各种属性信息。
  • Message包:封装在服务器和客户端之间传输的各种信息类。

架构图

主要技术难点

1. 多个用户,多个功能都需要利用Socket得到输入输出流,但是如果公用一个Socket会导致Java.io.StreamCorruptedException: invalid stream header: 异常,程序无法运行

解决方法:
利用多线程,使得每一个登陆的用户都获得一个Socket,使得多用户的问题得到了解决。但随着继续编写功能,又出现了同样的问题。起初企图通过判断输入对象流中的对象类型判断,只用一个输入流来实现,但同样出现了问题。故采用多个Socket,每个功能的线程传入一个不同的Socket,进行通讯。虽然方法可能不是很好,但是问题得到了解决。

2. 线程的阻塞,程序卡住,按钮无响应,无异常提示

解决方法:
每一个功能都开启一个线程,将具体的功能实现加在线程的run()方法中。

3. 起初聊天界面采用JTextArea,JTextArea是纯文本的编辑框,无法完成含图片信息的发送

解决方法:
将JTextArea改为JTextPane,取得JTextPane的StyleDocument作为聊天内容存储到MessageForChat/MessageForGroupChat,再用相同的方法进行传输发送

4. 起初用String类型在数据库中存储聊天内容,但由于修改为可发送图片,聊天内容为对象,存储读取与String有很大差别。

解决方法:
数据库中的数据类型改为LONGBLOB,存储时,直接存入对象;读取时,利用BufferedInputStream和ObjectInputStream结合读取对象

5. 手绘面板的实现

解决方法:
手绘界面Draw implements MouseListener, MouseMotionListener监听器。按下鼠标时开始得到坐标,拖动时不断更新坐标,利用Graphics2D画笔画出轨迹即手绘线条,然后保存为图片发送给对方。

6. 实现文件下载后无法正常登录

解决方法:
在实现文件下载后,登录界面卡住。仔细检查是因为下载时,需要从客户端发送文件名到服务器,以便调用数据库得到该文件在服务器的存储地址。服务器端的输入流与登录信息的输入流冲突。后将接收文件名操作卸载服务器与文件下载相关的线程中进行,登录,文件下载功能都正常。

7. 管理员和普通用户的区分

解决方法:
考虑到如果管理员也有单独的管理员账号和密码,那么管理员部分需要重新架构,还需与普通用户保持一定联系,所以放弃这个办法。通过在登录时判断用户学号与系统设定的管理员账号是否匹配,如果匹配,则在主界面出现“管理员登录”按钮;如果不匹配,则不出现此按钮。

You might also like...

Human resource management system with java spring

Human resource management system with java spring

Pair Programming This project developed with Emin Ümüt Erarslan a.k.a 8CA5F İnsan Kaynakları Yönetim Sistemi Bu proje Engin Demiroğ' un Java-React kam

Dec 26, 2022

Backend For Human Resource Management System

Backend For Human Resource Management System

📝 Presentation This is a hrms project. At the backend of this project I used Java(Spring Boot) and I used PostgreSQL as database management. At the f

Aug 5, 2022

A repository that contains the backend part of the Human Resources Management System.

Human Resources Management System Backend A human resources management system is a form of human resources (HR) software that combines several systems

Dec 26, 2022

Hotels Management System - JavaFX GUI Application

Hotels Management System - JavaFX GUI Application

Hotels Management System Hotels Management System - JavaFX Application Does this repo deserve a star? I hope that. Let's talk about what can my progra

Aug 29, 2022

Human Resource Management System

Human Resource Management System

hrms Human Resource Management System 📌 Proje Hakkında N-Katmanlı Solid mimari yapısı ile hazırlanan, SpringBoot kullanılarak CRUD işlemlerinin yapıl

Jun 6, 2022

N-Layer Architecture human resource management system project with Java.

N-Layer Architecture human resource management system project with Java.

HRMS Project Backend N-Layer Architecture human resource management system project with Java. Report Bug · Request Feature About The Project Built Wit

Dec 26, 2022

Human Resources Management System Using React with Java

Human Resources Management System Using React with Java

File Directory Main Adapters Abstract Concretes Business Abstract Concretes Core / Utilities Regex Results Upload Data Access Abstract Entities Concre

Jul 28, 2021

Java - Backend for Human Resource Management System

HRMS (Human Resource Management System) Main Directory PostgreSQL (Heroku)Live API Java(1.8) - Spring Boot based. Dependencies: Spring Boot DevTools S

Dec 26, 2022

IoTDB (Internet of Things Database) is a data management system for time series data

English | 中文 IoTDB Overview IoTDB (Internet of Things Database) is a data management system for time series data, which can provide users specific ser

Jan 1, 2023

Student Result Management System - This is a CLI based software where the Software is capable of maintaining and generating Student's Result at the end of a semester after the teacher's have provided the respective marks.

Student Result Management System This is a CLI based software where the Software is capable of maintaining and generating Student's Result at the end

Aug 27, 2022

OpenL Tablets Business Rules Management System

Easy Business Rules OpenL Tablets targets the infamous gap between business requirements (rules and policies) and software implementation. Designed to

Dec 17, 2022

Coupon Management System - Full-Stack Project Based in Spring & React

Coupon Management System Full-Stack Project Based in Spring & React Coupon Management System: Final project by Shachaf Izhaki. This project was built

Jan 9, 2022

A compact and highly efficient workflow and Business Process Management (BPM) platform for developers, system admins and business users.

Flowable (V6) Maven Central: Docker Images: License: Homepage: https://www.flowable.org/ flowable / flowəb(ə)l / a compact and highly efficient workfl

Jan 7, 2023

A simple Database management system

A simple Database management system

总览 在开始 simpledb 旅途之前, 我们先从整体上来看看 SimpleDb 是一个 DBMS 数据库管理系统, 包含存储, 算子, 优化, 事务, 索引 等, 全方位介绍了如何从0实现一个 DBMS, 可以说, 这门课是学习 TIDB 等其他分布式数据库的前提.

Dec 28, 2022

A hotel management system desktop application, built with java SWT/Swing

A hotel management system desktop application, built with java SWT/Swing

A hotel management system desktop application, built with java SWT/Swing, with tabs to manage bookings, rooms, customers, payments, cancellations, hotel inventory orders, catering and a plan to visualize all the reservations for the month.

Jan 12, 2022

UMS is a CRUD based management system which uses File Handling to manipulate data and perform the CRUD operations

UMS is a CRUD based management system which uses File Handling to manipulate data and perform the CRUD operations

UMS is a CRUD (Create, Read, Update, Delete) based management system which uses File Handling to manipulate data and perform the CRUD operations. It is a group project made using Java procedural programming having both User and Admin sides.

Dec 20, 2022

A Fully Code Integrated Dynamic DataBase Management System for the Java Platform

dynamic-database A fully code integrated minimal database management system for Java, Scala, Kotlin or Groovy projects. It is written in Java and can

Jun 8, 2022

Workflow management system fully supporting low-code language Petriflow.

Netgrif Application Engine MySQL Create NETGRIF user: CREATE USER 'netgrif_nae'@'localhost' IDENTIFIED BY 'netgrif_nae'; GRANT ALL PRIVILEGES ON * . *

Dec 23, 2022

SpringBoot CRUD Employee Management System

Employee-Management-Springboot SpringBoot CRUD Employee Management System Tech it uses Java SpringBoot Hibernate MySQL To Run Download the zip file an

Jan 31, 2022
Owner
takiee
takiee
Student Affairs Application (JavaFX) Connect with Database (MySQL)

Students-Affairs app Desktop Application for Student Affairs System using Java JDBC driver and GUI using FXML. This application is a student affairs a

null 4 May 7, 2022
Library for converting from one Java class to a dissimilar Java class with similar names based on the Bean convention

Beanmapper Beanmapper is a Java library for mapping dissimilar Java classes with similar names. The use cases for Beanmapper are the following: mappin

null 26 Nov 15, 2022
Reference implementation for MINAS (MultI-class learNing Algorithm for data Streams), an algorithm to address novelty detection in data streams multi-class problems.

Reference implementation for MINAS (MultI-class learNing Algorithm for data Streams), an algorithm to address novelty detection in data streams multi-class problems.

Douglas M. Cavalcanti 4 Sep 7, 2022
Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.

English | 中文 Apollo - A reliable configuration management system Apollo is a reliable configuration management system. It can centrally manage the con

Apollo 27.6k Jan 5, 2023
Backend for Saunah Management App provides a REST-API for the Saunah management app

?? ?? Saunah Backend Backend for Saunah Management App. This application provides a REST-API for the Saunah management app. ????‍?? Technology Stack T

null 2 Jun 13, 2022
Human Resource Management System (Java & React)

?? HumanResourceManagementSystem ?? Steps İş Arayanlar sisteme kayıt olabilmelidir. ✔️ İş verenler sisteme kayıt olabilmelidir. ✔️ ️ Sisteme genel iş

Furkan Paşaoğlu 5 Sep 12, 2022
Employee Management System using Spring Boot, Spring Security, Thymeleaf and MySQL database.

Employee Management System Employee Management System using Spring Boot, Spring Security, Thymeleaf and MySQL database. YouTube Video Series Employee

Ramesh Fadatare 62 Jan 1, 2023
Human Resources Management System

Human Resource Management System ( HRMS ) The following tools / languages will be used in this project; Java (Spring Boot based) - on the Backend side

Fatih Deniz 17 Dec 1, 2022
Human Resource Management System - Backend

Human Resource Management System - Backend File Structure ??️ Layered Architecture Entities - The package in which the assets are kept DataAcces - Pac

Tarık Kaan Koç 30 Jan 1, 2023