Coder Social home page Coder Social logo

dsdictinary's Introduction

Dictionary Query System - COMP90015 Assignment 1

Project Overview

This project is the assignment 1 for the Distributed Systems (COMP90015) at the University of Melbourne. The goal is to develop a dictionary query program based on TCP and multi-threading, which is divided into front-end and back-end parts.

Features

  • TCP Networking: Uses TCP protocol to ensure the reliability of data transmission.
  • Multithreading: Supports multiple clients querying simultaneously, improving query efficiency.
  • Frontend-Backend Separation: Clearly distinguishes between the frontend user interface and backend service logic, making the system structure clear.

Technology Stack

  • Programming language: Java21
  • Network communication: TCP
  • Multithreading
  • Frontend framework: JavaFX21
  • Build tool: Maven

Quick Start

After cloning the project, use Maven to run the following commands separately:

mvn clean compile assembly:single -Pclient
mvn clean compile assembly:single -Pserver

After running one command, copy the generated jar file before running the second command.

For the server jar, run the following command:

java -jar [jar file name] [port] [path to database file]

For the client jar, due to a bug in JavaFX when using Maven to build, we need to download the suitable SDK from the JavaFX official website first, and then run the following command to start:

java --module-path [path to SDK lib directory] --add-modules javafx.controls,javafx.fxml -jar [jar file name] [host name] [port] 

The above command includes default values for the port and database file; if the directory structure is the same as the GitHub repository, they can be omitted.

Known Issues

  1. The frontend's text input box does not handle spaces and enters well, which can affect the query and addition of words.
  2. The functionality to add multiple meanings at the same time has only been implemented on the frontend, not yet on the backend.

dsdictinary's People

Contributors

crystallen1 avatar

Stargazers

Sun Hongyang avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.