Skip to content

Anas-Altaf/Multilingual-Dictionary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

221 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌍 MultiLingual Dictionary

Search

Repo Link

Java MySQL Swing FlatLaf License Contributions Welcome


πŸ“‘ Table of Contents

  1. About The Project
  2. Features
  3. Technology Stack
  4. Project Architecture
  5. Database Schema
  6. Screenshots
  7. Getting Started
  8. Contributing
  9. License

πŸ“š About The Project

The MultiLingual Dictionary is an advanced Arabic dictionary application offering:

  • Comprehensive translations between Arabic, Urdu, and Persian.
  • Sophisticated linguistic features like root analysis, lemmatization, and POS tagging.
  • Seamless database-driven operations with an elegant Java Swing-based user interface.

Built for linguists, researchers, and language enthusiasts, this project combines linguistic tools, real-time word lookups, and a modern design for a smooth user experience.


✨ Features

πŸ” Advanced Search Engine

  • Perform multi-language word lookups.
  • Search by word, root, or meaning.
  • Fuzzy matching and intelligent word segmentation.

🧠 Linguistic Analysis

  • Morphological analysis: Extract word roots and affixes.
  • Part-of-Speech (POS) tagging for contextual understanding.
  • Lemmatization: Analyze word forms for accurate lookups.

πŸ—ƒοΈ Database Features

  • Relational MySQL database backend for scalable storage.
  • Comprehensive CRUD operations and cascading relationships.
  • Maintain user-specific word favorites and search history.

πŸ–₯️ Intuitive GUI

  • Developed with Java Swing and FlatLaf for a professional interface.
  • Responsive, cross-platform design.
  • Multi-tabbed navigation and theme-based customization.

πŸ’» Technology Stack

Component Technology Purpose
Programming Language Java 8+ Core application logic
Database MySQL Persistent data storage
GUI Framework Java Swing, FlatLaf User interface
Libraries Jsoup, Apache HttpClient Web scraping and HTTP requests
Build Tool Maven Dependency management and builds

πŸ—οΈ Project Architecture

multilingual-dictionary/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/
β”‚   β”‚   β”‚   └── org/multilangdict/
β”‚   β”‚   β”‚       β”œβ”€β”€ bll/    # Business Logic Layer
β”‚   β”‚   β”‚       β”œβ”€β”€ dal/    # Data Access Layer
β”‚   β”‚   β”‚       β”œβ”€β”€ dto/    # Data Transfer Objects
β”‚   β”‚   β”‚       β”œβ”€β”€ pl/     # Presentation Layer
β”‚   β”‚   β”‚       └── utils/  # Utility Classes
β”‚   β”‚   └── resources/
β”‚   β”‚       β”œβ”€β”€ config/
β”‚   β”‚       β”œβ”€β”€ fonts/
β”‚   β”‚       └── images/
└── pom.xml

πŸ“Š Database Schema

The MultiLingual Dictionary uses a relational MySQL database named mld to manage word data and associated attributes.

Database Setup

-- Database: `mld`
DROP DATABASE IF EXISTS mld;
CREATE DATABASE IF NOT EXISTS mld;
USE mld;

-- Table: word_data
CREATE TABLE `word_data` (
  `id` BIGINT NOT NULL AUTO_INCREMENT,
  `arabic_word` VARCHAR(255) NOT NULL UNIQUE,
  `isFavoriteWord` VARCHAR(50) DEFAULT NULL,
  `clean_word` TEXT DEFAULT NULL,
  PRIMARY KEY (`id`)
);

-- Table: urdu_meaning
CREATE TABLE `urdu_meaning` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `word_id` BIGINT NOT NULL,
  `meaning` TEXT DEFAULT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`word_id`) REFERENCES `word_data`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
);

-- Table: persian_meaning
CREATE TABLE `persian_meaning` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `word_id` BIGINT NOT NULL,
  `meaning` TEXT DEFAULT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`word_id`) REFERENCES `word_data`(`id`) ON DELETE CASCADE ON UPDATE CASCADE
);

-- Additional tables (word_root, word_pos, word_lemmatized, word_history) follow similar relational structures.

πŸ“· Screenshots

Main Interface

Dashboard LightDashboard Dark SearchSearch SearchSearch SearchSearch


πŸš€ Getting Started

Prerequisites

  1. Java 8 or higher.
  2. MySQL Server (5.7+).
  3. Maven for project builds.

Installation

  1. Clone the repository:

    git clone https://github.com/SoftwareConstructionAndDev/24f-prj-scd-mind-coderz.git
  2. Set up the database:

    mysql -u root -p < schema.sql
  3. Configure the application:
    Update config.properties with database credentials.

  4. Run the project:

    mvn clean install  
    mvn exec:java

🀝 Contributing

We welcome contributions to enhance this project!

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature/NewFeature
  3. Commit your changes:
    git commit -m "Add NewFeature"
  4. Push the branch:
    git push origin feature/NewFeature
  5. Open a Pull Request.

πŸ“ License

This project is licensed under the MIT License.

About

The MultiLingual Dictionary is an advanced Arabic dictionary application offering: Comprehensive translations between Arabic, Urdu, and Persian. Sophisticated linguistic features like root analysis, lemmatization, and POS tagging. Seamless database-driven operations with an elegant Java Swing-based user interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages