Arabic text formatting
Arabic poetry needs proper direction, spacing, and line structure. Small layout issues can quickly make the poem hard to read.
Project
A Python desktop app for searching, reading, saving, and exporting Arabic poetry. I started it as a simple poem fetcher, then kept expanding it into a small reading and collection app.
Al Rawya is a desktop app built with Python, PySide6, SQLite, and Qt PDF export features. The idea is to give Arabic poetry a cleaner reading space where the user can search poems, open them in a proper right-to-left layout, save favorites, save selected lines, change themes and fonts, and export poems to PDF.
The app starts with a simple search page. The user can enter a poem line, choose the source, and fetch matching poems in a list, or directly fetch the first result.
Opened poems are displayed in a right-to-left reading layout with centered Arabic text and clear spacing between verses.
The app lets the user save specific selected lines into Al Shwarid الشوارد. This is useful when a single line stands out and the user wants to keep it without saving the whole poem.
Full poems can be saved to المفضلات. Saved poems are grouped by poet, which makes the collection easier to browse later.
The quick settings menu gives fast access to common options such as search options, font size, colors, font changes, and PDF export.
The full settings page is used for deeper customization, including appearance, fonts, and export settings.
The PDF export dialog lets the user choose the theme, font, text color, and background color before exporting the poem.
The exported PDF keeps the poem readable and preserves the dark reading style. This part is still being polished because Arabic layout and page breaks need careful handling.
I built the project step by step. First I focused on getting Arabic text to display correctly in a PySide6 window. Then I added search, scraping, result views, poem tabs, and the other functions one at a step. This made the project easier to control because each feature had to work before I moved to the next one.
Arabic poetry needs proper direction, spacing, and line structure. Small layout issues can quickly make the poem hard to read.
Searching and scraping can take time, so the app uses worker threads and progress messages instead of freezing the interface.
Exporting Arabic poems is the hardest part so far. The app needs to preserve Arabic shaping, right-to-left layout, theme colors, and clean page breaks.
This project taught me a lot about building a real desktop app, especially when the app needs good Arabic support. I practiced GUI structure, scraping, local storage, settings management, threading, and PDF export. It also showed me how much small UI details matter when building something people are meant to read from.
The next focus is polishing PDF export, improving search speed, adding search across all sources, and later packaging the app so it can be installed more easily on Windows.