A desktop application built with Python for documenting and managing educational programs within institutions. It automates administrative procedures, organizes records professionally, and generates print-ready reports in PDF and Word formats.
The main window is divided into three panels:
- Left panel — Saved Reports sidebar listing all previously saved programs for quick access
- Center panel — The report preview area displaying the full program documentation form, including the Ministry of Education header, program details table, and attached images
- Right panel — Action buttons for all major operations (Create Report, Saved Reports, Save As, Clear Fields, Summary, Print, Dashboard, Export DB, Import DB, Save as Word, Save as PDF)
When clicking "إنشاء تقرير" (Create Report), a dialog appears allowing the user to:
- Choose the number of images to include (up to 4)
- Select which fields to include in the report via checkboxes:
- Program Name
- Objectives
- Description
- Implementer
- Date of Implementation
- Beneficiaries
- Number of Beneficiaries
- Click "إنشاء" to generate the report
A popup window showing all programs saved in the database as a table with columns:
- Program Name
- Implementer
- Date of Implementation
- Beneficiaries
- Number of Beneficiaries
Each row has a red delete button (🗑️) to remove a record. This view provides a quick overview of all documented programs.
A settings dialog that allows the user to customize the report header with:
- First header line — e.g., "المملكة العربية السعودية" (Kingdom of Saudi Arabia)
- Second header line — e.g., "وزارة التعليم" (Ministry of Education)
- Third header line — e.g., "الإدارة العامة للتعليم بالرياض"
- Fourth header line — (optional, for sub-departments)
- Ministry Logo — displayed with an option to change it via the camera icon
- A Save button to persist the settings
A clean, print-ready single-page PDF report that includes:
- Full institution header with logo
- Centered title: "توثيق برنامج"
- A structured table with all program fields (Name, Objectives, Description, Implementer, Date, Beneficiaries, Count)
- Program images displayed in a 2-column grid at the bottom of the page
The exported .docx file opened in Microsoft Word, featuring a two-column layout:
- Left column — The program documentation table with all fields
- Right column — A 2×2 grid of program images
The document is fully editable and formatted for official use.
A dialog showing saved reports in a list with:
- Delete button (🗑️) per row for individual deletion
- Radio button to select a report
- Edit button (✏️) per row to modify an existing record
- Two green buttons at the bottom: "تصدير word" and "تصدير pdf" to export the selected report
A summary report (ملخص تقارير البرامج) exported as PDF containing a table that lists all saved programs with:
- Program Name
- Implementer
- Date of Implementation
- Beneficiaries
- Number of Beneficiaries
The application supports printing reports directly through the browser's native print dialog. The report is rendered as an HTML page and opened in the default browser, allowing the user to:
- Choose printer or save as PDF
- Select portrait/landscape orientation
- Choose color settings
- Preview the full formatted report before printing
| Feature | Description |
|---|---|
| 🗂️ Program Management | Add, edit, delete, and view educational programs |
| 🖼️ Image Upload | Attach up to 4 documentary photos per program |
| 📄 PDF Export | Generate professional single-program PDF reports |
| 📝 Word Export | Export reports as .docx files |
| 🖨️ Print Support | Print via browser with full formatting |
| 📊 Summary Report | Export a summary table of all programs as PDF |
| 💾 Database Export/Import | Backup and restore the database |
| ⚙️ Header Customization | Configure institution name and logo |
| 🔲 Field Selection | Choose which fields to include in each report |
| 🗃️ Saved Reports Sidebar | Quick access to all previously saved reports |
| Library | Purpose |
|---|---|
| Python | Core programming language |
| PyQt6 | Desktop GUI framework (widgets, layouts, signals, events) |
| sqlite3 | Built-in database for storing program records |
| Pillow (PIL) | Image loading, resizing, and processing |
| python-docx | Generating and formatting .docx Word reports |
| aspose.words | Advanced Word/PDF document conversion and rendering |
| webbrowser | Opening HTML reports in the browser for printing |
| pyautogui | UI automation (e.g. triggering print dialogs) |
| convert_numbers | Converting between Arabic-Indic and Western numerals |
| shutil | File and directory operations (copying assets, cleanup) |
| ctypes | Low-level Windows API calls |
| sys / os | System and file path utilities |
# Clone the repository
git clone https://github.com/osmanramadan/Python_Make_Reports.git
# Navigate to project directory
cd Python_Make_Reports
# Install dependencies
pip install -r requirements.txt
# Run the application
python main.py
├── design/
├── font/
├── icons/
│ └── logo.ico # Default Ministry of Education logo
│ └── icon.ico # The icon of the App
├── images/
├── README.md
├── app.db # SQLite database (auto-created)
├── main.py # Application entry point
└── requirements.txt # Python dependencies
This project is intended for educational and institutional use.








