Skip to content

tianhao-ai/Distributed-Dictionary-COMP90015-2023S2-Assignment-1

Repository files navigation

COMP90015 Assignment 1: Java Socket Implementation with Worker-Pool Architecture

Overview

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.

File Structure

  • 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.

Acknowledgements

This program was created as a project for COMP90015 Distributed Systems at the University of Melbourne.