This repository contains the implementation of Assignment 1 for COMP90015 (Distributed Systems) at the University of Melbourne. It showcases a Java application using socket programming for both server and client sides, incorporating a worker-pool architecture to handle concurrent requests. The project also features Graphical User Interfaces (GUIs) on both the server and client sides.
Key highlights of this project:
- Full Marks on Implementation: Achieved a full score in the basic components (10/10 for application and report)
- Excellent:Attained marks(3/3) for the excellence component by handling edge cases and performing high concurrency tests with JMeter.
- Creativity: Attained marks (2/2) for the creativity component by implementing a custom thread pool that ensures thread safety without relying on built-in methods.
- GUI Integration: Includes intuitive GUIs for both server and client components.
DictionaryApplication
: The source Eclipse workspace containing the Java code.additionalSDLC
: Includes external JAR files for JSON handling and SQLite integration.provingImage
: Contains images used in the project report.Dictionary.db
: A SQLite database file. Note: If the database does not exist when the server JAR file is run, the application will automatically create it.
This program was created as a project for COMP90015 Distributed Systems at the University of Melbourne.