Skip to content

UBMS is a full-stack web application developed for a Bachelor's Thesis defense on Faculty of Organizational Sciences. The primary objective of this system is to streamline the management of university boards and facilitate efficient communication between university employees and board members. Tech Stack: Spring Boot 3, React, AWS, MySQL

Notifications You must be signed in to change notification settings

Djolee00/university-board-FULL-STACK

Repository files navigation

University Board Management System

Welcome to the University Board Management System (UBMS) README! This comprehensive document will provide you with an in-depth understanding of the UBMS project, its purpose, use cases, and the technologies used to develop it.

Project Overview

UBMS is a full-stack web application developed for a Bachelor's Thesis defense on Faculty of Organizational Sciences. The primary objective of this system is to streamline the management of university boards and facilitate efficient communication between university employees and board members. The application allows users to create, delete, modify, search, and sort boards. It also enables employees to upload comments and files to boards, with the added functionality of downloading those files.

Craig Larman's Software Development Method

UBMS was developed following Craig Larman's software development method, which emphasizes an iterative and incremental approach to software development. My software development went through 5 phases:

1. Requirements Gathering
2. Analysis
3. System Design
4. Implementation
5. Testing

Requirements Gathering

Thoroughly understanding the requirements for the university board management system. I managed to identify 18 use cases and diveded them in 4 groups:

1. Board administration
2. Employee management
3. File management
4. Comments section

Also I realized that users should have different privileges and roles (group of privileges) so different sections and actions can be enabled/disabled for different users. For thesis writing purpose, I analized in detail 10 of 18 Use Cases, although in application all Use Cases were implemented in the end. Below is UML Case Diagram for my project:

Screenshot_1

Analysis

For every Use Case defined in previous phase, in Analysis I defined UML Sequence Diagram which describes interaction between System and User. Here is an example of one Sequence Diagram:

Screenshot_1

As a result of this phase I got description of the structure and behavior of the software system. Structure is described using UML Class Diagram and behaviour using list of system operations:

Screenshot_2

System Design

In Design phase I worked on details about previously defined System Operations through UML Sequence Diagrams.In addition, the design of screen forms and user interaction with them was carried out too. As result of this phase we get the final architecture of the software system:

Picture1

As we can see there are 3 layers of system. UI layer is an client application made primarily using React library. Application logic layer consists of 2 Web Services made using Spring framework. One web service is main who is responsible for almost whole business logic and also there is file service which is made for only file management. It is responsible for downloading, uploading and deleting files to/from AWS S3 service. This service can be use for any other project which needs file management system and storage. Storage layer is implemented using MySQL RDMS and Amazon S3

Implementation

In this phase, my task was to choose techonologies and implement everything till now was specified in previouse phases.

Frontend techonologies:

  • Typescript
  • React
  • Axios
  • Material UI (MUI)

Backend techonologies:

  • Java 18
  • Spring Boot 3
  • Spring Security 6
  • MySQL
  • Amazon AWS S3

Notable libraries and plugins:

  • Spring WebFlux
  • Lombok
  • Mapstruct
  • Maven spotless plugin
  • Hibernate JPA Metamodel Generator
  • Thymeleaf
  • JWT
  • JavaMailSender
  • Amazon SDK S3

Testing

In this study example, manual testing of all use cases was performed, during which the behavior of the software and its response were monitored. Testing included validation of all possible data and their permitted values. By entering the correct and incorrect data values, the validation and operation of the software was checked, and during the testing, all the errors and deficiencies that were discovered were incrementally removed. Testing also included checking the safety and security of the software system itself, that is, its resources depending on the users themselves and their privileges.

Screenshots

Picture9 1 2 3 4 5 Picture6 Picture8

Future Improvements

  • Dockerization
  • Unit and Integration testing
  • Implementing Microservice architecture
  • Hosting whole system
  • API and User documentation

About

UBMS is a full-stack web application developed for a Bachelor's Thesis defense on Faculty of Organizational Sciences. The primary objective of this system is to streamline the management of university boards and facilitate efficient communication between university employees and board members. Tech Stack: Spring Boot 3, React, AWS, MySQL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published