A modern, GUI‑based application for cataloging a personal U.S. stamp collection.
Built with Python, PySide6 (Qt for Python), and SQLite.
This project provides:
- A complete stamp catalog sourced from public datasets
- A structured way to track your personal collection
- Detailed purchase history
- Historical valuation tracking
- A clean, intuitive graphical interface
- A modular architecture designed for future expansion
All functionality is accessible through a modern, responsive graphical interface built with PySide6.
A normalized, relational database stores catalog data, your collection, purchases, and valuations.
The app includes a dedicated catalog of U.S. stamps with:
- Catalog numbers
- Denominations
- Colors
- Subjects
- Descriptions
- Issue dates
- Issue locations
- Printing methods
- Reference images
Catalog data can be imported from public sources such as USPS, Smithsonian NPM, StampData.org, etc.
Track the stamps you own, including:
- Quantity
- Format (sheet, coil, booklet, pane, etc.)
- Centering grade
- Gum condition
- Notes
Record acquisition details:
- Seller
- Purchase date
- Price paid
Track estimated market value over time, including:
- Valuation date
- Estimated value
- Source (manual, auction, API, etc.)
- Format being valued
Search by catalog number, subject, year, color, format, grade, and more.
View reference images and your own collection images.
Official U.S. stamp metadata.
| Field | Type | Description |
|---|---|---|
| stamp_id | INTEGER PRIMARY KEY | Unique catalog ID |
| catalog_number | TEXT | Scott number or equivalent |
| denomination | REAL | Decimal face value |
| color | TEXT | Primary color |
| subject | TEXT | Theme or commemorated entity |
| description | TEXT | Extended descriptive text |
| issue_date | TEXT | ISO date string |
| issue_location | TEXT | City/facility of issue |
| printing_method | TEXT | Engraved, lithographed, etc. |
| image_url | TEXT | Optional reference image |
Represents stamps you personally own.
| Field | Type | Description |
|---|---|---|
| collection_id | INTEGER PRIMARY KEY | Unique ID for each owned stamp |
| stamp_id | INTEGER | FK → Stamps(stamp_id) |
| quantity | INTEGER | Number of copies owned |
| format | TEXT | Sheet, coil, booklet, pane, etc. |
| centering_grade | TEXT | Poor, Fine, VF, XF, Superb |
| gum_condition | TEXT | Mint, Hinged, No Gum, etc. |
| notes | TEXT | Custom notes |
Tracks acquisition details.
| Field | Type | Description |
|---|---|---|
| purchase_id | INTEGER PRIMARY KEY | Unique purchase record |
| collection_id | INTEGER | FK → Collection(collection_id) |
| seller_name | TEXT | Who you bought it from |
| purchase_date | TEXT | ISO date string |
| price_paid | REAL | Purchase price |
Tracks historical market values.
| Field | Type | Description |
|---|---|---|
| valuation_id | INTEGER PRIMARY KEY | Unique valuation entry |
| collection_id | INTEGER | FK → Collection(collection_id) |
| valuation_date | TEXT | ISO date string |
| estimated_value | REAL | Market value |
| source | TEXT | Manual, auction, API, etc. |
| format | TEXT | Format being valued |
/src
/models
stamp.py
collection.py
/storage
sqlite_storage.py
/gui
main_window.py
stamp_table.py
stamp_form.py
details_panel.py
search_panel.py
/utils
image_utils.py
validation.py
- models/: Data classes for catalog stamps and owned stamps
- storage/: SQLite database access layer
- gui/: All PySide6 GUI components
- utils/: Image handling, validation, helpers
- Import catalog data from public sources
- Bulk editing tools
- Image management
- Valuation charts
- Export to CSV/JSON
- Optional future web UI (FastAPI + React)
- Optional AI‑assisted stamp identification
This project is designed to work seamlessly with GitHub Copilot (Coding Agent).
Tasks can be assigned directly in GitHub to generate:
- Database models
- GUI components
- Import scripts
- Search logic
- Data ingestion pipelines
Personal use only unless otherwise specified.