Skip to content
This repository was archived by the owner on Aug 1, 2025. It is now read-only.

Dictionary Application - Java, JavaFX, HTML/CSS - Singleton and Observer Patterns (just jk it doesn't even work)

Notifications You must be signed in to change notification settings

dxpawn/OOP-DictionaryProject

Repository files navigation

Implementation of a pedagogical facilitation module designed to augment the acquisition of the English language, utilizing the Java programming environment

Authors

The Sierpinski Triangle "I should have gone to HMU"

  1. Vu Nguyen Dan - 23020351 - Lone Wolf
  2. Dang Duc Duy - 23020347 - Moral Support
  3. Phung Vu Hoang - 23020369 - GPA Donator

Description

The application under discussion has been meticulously architected to facilitate the acquisition and mastery of the English language. It is developed utilizing the robust Java programming language, further enhanced by the integration of the JavaFX library, which provides a (not so) sophisticated graphical user interface framework. Architecturally, the application adheres to the Model-View-Controller (MVC) paradigm, ensuring a clear separation of concerns, which (kind of) enhances maintainability and scalability.

Highlights:

  • Bifurcated dictionary functionality, encompassing both English-Vietnamese and Vietnamese-English lexicons.
  • The repositories for linguistic data within this application are contained within two distinct text files, named E_V.txt and V_E.txt respectively.
  • Integration of Sic Bo game for entertainment purposes, providing a brief respite from the rigors of linguistic study.

UML diagram

UML Diagram

Peak Design Pattern: The UML Diagram clearly illustrates the brain capacity of the author of this application.

Installation

  1. Initiate the duplication of the project by executing a clone operation from the designated remote repository. This process involves retrieving the entirety of the project's digital artifacts and codebase, thereby enabling a local instantiation of the project’s framework and dependencies.

  2. Proceed to engage with the cloned entity by launching your integrated development environment (IDE) of choice. Within this environment, navigate to the option that allows for the importing or opening of existing projects, and select the directory where the cloned repository has been instantiated. This action ensures that all project configurations and dependencies are correctly aligned with the IDE's operational parameters.

  3. Subsequently, initiate the execution of the project. This is typically accomplished through the IDE’s built-in mechanisms for compiling and running Java applications. Locate the appropriate menu or toolbar in the IDE that facilitates the running of projects, and select the corresponding command to activate the project's runtime environment.

  4. Should there be a necessity or desire to modify the existing dataset within the application, this can be achieved by accessing and altering the contents of the E_V.txt and V_E.txt files. These files house the essential data elements used by the application’s dictionary feature. Utilize a text editor, either within the IDE or another preferred utility, to make the requisite modifications to the text files, ensuring the changes reflect the updated or corrected translations or vocabulary as required by the user’s specifications or objectives.

Usage

Usage Guidelines

  1. Select Your Dictionary: Embark on a journey of choice, albeit a straightforward one: English-Vietnamese or Vietnamese-English. This is an opportunity to engage in a task that simulates intellectual challenge. Choose thoughtfully, reflecting the depth of your decision-making capabilities.
  2. Type with Purpose: Here’s a task tailored to your competencies: enter any term into the search bar. Yes, any term will do. The list will update automatically—because we aim to streamline your experience, sparing you from any undue exertion beyond basic keystrokes.
  3. Engage with the CRUD Button: Notice the "CRUD Operations" button prominently displayed before you. It invites interaction. Indulge in what might be the most constructive action of your day by clicking it.
  4. Practice Pronunciation: Aspire to sound educated? Utilize the "speak" button for an American accent. This feature is designed to enhance your linguistic capabilities, providing an opportunity to refine your subpar pronunciation skills.
  5. Enhance Your Routine: If a spark of boldness strikes, engage with the "die by a rope" button to initiate a game of hangman. The maximum length is 15 characters - you may have to guess half the alphabet before losing.
  6. Exit Gracefully: Should the intellectual rigor prove overwhelming, you can exit by pressing Alt + F4 or clicking the X button. This action is akin to a tactical retreat, a strategy you might find familiar and comforting in its ease.

Demo

![Demo](

Future improvements

  1. More dictionaries, so you get the illusion of choices.
  2. Add more complex games. Imagine having to solve a triple integral to close your dictionary, else say goodbye to your System32!
  3. Optimize the word lookup algorithm.
  4. Use a Trie because a Trie is superior than your typical puny Maps. Plus, being able to implement a Trie makes you intimidating in your OOP class. Your then brilliance and mental capacity will be overwhelming for the ordinary lame TreeMap users.
  5. Integrate some API.
  6. Learn a bit of CSS and make the UI less of an eyesore.
  7. if you say "ask an AI for the CSS part" i will personally excommunicate you

Contributing

Feel free to contribute if you think you can do a better job. Just keep your changes to yourself until you think it's perfect.

Project status

The project is not very completed, but I ran out of time. It's supposed to be a 3-man project...

Notes

The application is written for educational and comedy purposes 🤡.

About

Dictionary Application - Java, JavaFX, HTML/CSS - Singleton and Observer Patterns (just jk it doesn't even work)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •