- Java 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| SeminarsOrganizerClient | ||
| SeminarsOrganizerCommon | ||
| SeminarsOrganizerServer | ||
| Aleksa_Radojičić_20240165_Documentation.pdf | ||
| README.md | ||
Desktop Application for Organizing Seminars in Java
The objective of this project was to develop a desktop application in Java for organizing seminars that is TCP socket-based, with its own MySQL database. This was the final project for the mandatory course Software Design and the elective course Advanced Programming at the Faculty of Organizational Sciences, Information Systems and Technologies.
Project Overview
The project follows a simplified Larman's methodology¹ of software development, consisting of these steps:
- Gathering User Requirements;
- Analysis;
- Design;
- Implementation;
- Testing.
Below are all use cases of the software, shown using a UML use-case diagram:

The software system contains tests written in JUnit for all system operations and domain classes. Every system operation and domain class is documented using Javadoc.
Key Engineering Concepts
- Client–server architecture with TCP socket communication
- Layered architecture and separation of concerns
- Concurrent request handling
- Repository and Service Layer patterns
- Command pattern for representing and dispatching client requests
- DTOs and shared contracts between distributed application components
- Facade and remote-service abstractions
- Multi-module architecture (
Client,ServerandCommon) - Object-oriented domain modeling and relational persistence (MySQL)
- UML-based software design and requirements-driven development
- Unit testing with JUnit
- Javadoc documentation
Software Structure
The project consists of three separate subprojects:
- Client — client-side GUI application;
- Server — server-side GUI application;
- Common — subproject containing files required for both client and server sides.
Below is a diagram of the entire software system, focusing on the structure of the application logic.

Documentation
The detailed documentation in Serbian is available as PDF in this repository: link.
Literature
¹ Влајић, Синиша. Пројектовање софтвера (скрипта - радни материјал), вер. 1.3. Факултет организационих наука. Београд 2020. Available at: ResearchGate.
Acknowledgements
I would like to thank my mentor Dragica Ljubisavljević for her guidance throughout the development of the Software Design component of the project.