- About The Project
- Features
- Technology Stack
- Project Architecture
- Database Schema
- Screenshots
- Getting Started
- Contributing
- License
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.
- Perform multi-language word lookups.
- Search by word, root, or meaning.
- Fuzzy matching and intelligent word segmentation.
- Morphological analysis: Extract word roots and affixes.
- Part-of-Speech (POS) tagging for contextual understanding.
- Lemmatization: Analyze word forms for accurate lookups.
- Relational MySQL database backend for scalable storage.
- Comprehensive CRUD operations and cascading relationships.
- Maintain user-specific word favorites and search history.
- Developed with Java Swing and FlatLaf for a professional interface.
- Responsive, cross-platform design.
- Multi-tabbed navigation and theme-based customization.
| 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 |
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
The MultiLingual Dictionary uses a relational MySQL database named mld to manage word data and associated attributes.
-- 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.- Java 8 or higher.
- MySQL Server (5.7+).
- Maven for project builds.
-
Clone the repository:
git clone https://github.com/SoftwareConstructionAndDev/24f-prj-scd-mind-coderz.git
-
Set up the database:
mysql -u root -p < schema.sql -
Configure the application:
Updateconfig.propertieswith database credentials. -
Run the project:
mvn clean install mvn exec:java
We welcome contributions to enhance this project!
- Fork the repository.
- Create a new branch:
git checkout -b feature/NewFeature
- Commit your changes:
git commit -m "Add NewFeature" - Push the branch:
git push origin feature/NewFeature
- Open a Pull Request.
This project is licensed under the MIT License.








