Skip to content

Caliph3ubaidUrRe7man/Arabic-Words-Explorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Arabic Categories Explorer / مُستَكشِفُ الفِئاتِ العَرَبِيَّةِ

An interactive tool for exploring Arabic linguistic categories based on functional classification rather than form-based grouping.

Overview

This project showcases three fundamental Arabic linguistic categories that group objects by their function:

  • مَركَبٌ (Markab) - "Everything that is ridden in/on"
  • مَسكَنٌ (Maskan) - "Everything that is dwelt in"
  • مَضجَعٌ (Maḍjaʿ) - "Everything that is lain upon"

Features

  • 🔍 Interactive Category Browser - Switch between the three main categories
  • 🎲 Random Item Generator - Discover random items from each category
  • 🔎 Search Functionality - Find specific items within categories
  • 📚 Verb Conjugations - Learn related Arabic verbs for each category
  • 🎨 Beautiful UI - Gradient design with Arabic typography support

Categories & Verbs

مَركَبٌ (Vehicles/Mounts)

Related verbs:

  • رَكِبَ − يَركَبُ (getting on)
  • نَزَلَ − يَنزِلُ (getting off)
  • ساقَ − يَسُوقُ (driving/riding)
  • رَكَّبَ − يُرَكِّبُ (putting someone on)
  • نَزَّلَ − يُنَزِّلُ (dropping someone off)

مَسكَنٌ (Dwellings)

Related verbs:

  • سَكَنَ − يَسكُنُ (dwelling in)
  • أَقامَ − يُقيمُ (staying/residing)
  • نَزَلَ − يَنزِلُ (lodging)

مَضجَعٌ (Beds/Resting Places)

Related verbs:

  • اضْطَجَعَ − يَضطَجِعُ (lying on side)
  • اسْتَلقَى − يَستَلقِي (lying on back)
  • نَهَضَ − يَنهَضُ (getting up)
  • نامَ − يَنامُ (sleeping)

Installation

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Setup

git clone https://github.com/yourusername/arabic-categories-explorer
cd arabic-categories-explorer
npm install
npm start

Usage

Basic Navigation

  1. Select a Category: Click on one of the three category buttons at the top
  2. Browse Items: Scroll through the grid of items in the selected category
  3. Search: Use the search box to filter items within a category
  4. Random Discovery: Click "عَيِّنَةٌ جَديدَة" to get a random item

Understanding the Interface

Category Buttons

  • 🗺️ مَركَب (Blue) - Transportation and mounts
  • 📖 مَسكَن (Green) - Housing and shelters
  • 🛏️ مَضجَع (Purple) - Beds and resting places

Verb Section

Each category displays its related Arabic verbs with English translations to help understand the functional relationships.

Item Grid

  • Items are displayed in a responsive grid
  • Click any item to select it as the current random item
  • Items are searchable and filterable

Technical Details

Built With

  • React 18
  • Tailwind CSS
  • Lucide React Icons

File Structure

src/
├── components/
│   └── ArabicCategoriesExplorer.jsx
├── data/
│   └── categories.js
├── styles/
│   └── globals.css
└── App.js

Key Components

State Management

const [selectedCategory, setSelectedCategory] = useState('مَركَب');
const [searchTerm, setSearchTerm] = useState('');
const [randomItem, setRandomItem] = useState('');

Category Data Structure

const categories = {
  'مَركَب': {
    title: 'مَركَبٌ - كُلُّ ما رُكِبَ فيهۥ',
    icon: <MapPin className="w-6 h-6" />,
    color: 'bg-blue-500',
    items: [...],
    verbs: {...}
  }
  // ... other categories
}

Linguistic Background

This tool is based on the Arabic grammatical concept of functional categorization. Unlike English which might group things by physical similarity, Arabic groups items by their function or use case:

  • A مَركَب can be anything from a donkey to a spaceship - what matters is that you ride in/on it
  • A مَسكَن can be a tent or a palace - what matters is that you dwell in it
  • A مَضجَع can be a simple mat or a luxurious bed - what matters is that you lie on it

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Adding New Categories

To add a new category:

  1. Add the category object to the categories constant
  2. Include appropriate verbs and items
  3. Add an icon from Lucide React
  4. Update the documentation

Adding New Items

Items should be added to the appropriate category's items array. Consider the functional purpose rather than physical appearance when categorizing.

License

GNU License - see LICENSE for details

Acknowledgments

  • Based on traditional Arabic grammatical categorization
  • Inspired by functional linguistics principles
  • UI design influenced by Arabic calligraphy aesthetics

Arabic Text Support: This application requires a font that supports Arabic script. The interface is designed to work with both RTL and LTR text flows.

Browser Compatibility: Modern browsers with ES6+ support recommended.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published