Back to projects

Project

Al Rawya Poetry App

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.

Status In Development
Type Windows Desktop App
Focus Arabic Poetry Reading

Overview

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.

App Features

Main search page

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.

Al Rawya main search page

Search results

Al Rawya search results page

Reading view

Opened poems are displayed in a right-to-left reading layout with centered Arabic text and clear spacing between verses.

Al Rawya poem reading view

Saving selected lines

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.

Saving selected poetry lines in Al Rawya

Favorites

Full poems can be saved to المفضلات. Saved poems are grouped by poet, which makes the collection easier to browse later.

Al Rawya favorites page

Quick settings

The quick settings menu gives fast access to common options such as search options, font size, colors, font changes, and PDF export.

Al Rawya quick settings menu

Full settings page

The full settings page is used for deeper customization, including appearance, fonts, and export settings.

Al Rawya full settings page

PDF export dialog

The PDF export dialog lets the user choose the theme, font, text color, and background color before exporting the poem.

Al Rawya PDF export dialog

Exported PDF

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.

Al Rawya exported PDF preview

Build approach

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.

Main challenges

Arabic text formatting

Arabic poetry needs proper direction, spacing, and line structure. Small layout issues can quickly make the poem hard to read.

Keeping the app responsive

Searching and scraping can take time, so the app uses worker threads and progress messages instead of freezing the interface.

PDF export

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.

What I learned

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.

Next steps

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.