A modern desktop application built for affiliate marketers to generate high-converting Pinterest SEO content and detailed AI image prompts from Amazon product descriptions.
- Modern Desktop UI: CustomTkinter-based interface with dark theme and zinc/violet color palette
- Multi-page Navigation: Sidebar navigation with Dashboard, New Pin, Projects, History, Templates, and Settings
- Content Generation Workflow: Complete end-to-end flow from workspace to results
- Image Upload: Drag-and-drop or browse to upload product images
- Dummy Content Generator: Realistic placeholder content generation for development
- Results Display: View generated title, description, keywords, hashtags, and image prompts
- Clipboard Actions: Copy individual sections or all content at once
- Export Functionality: Export to Markdown (.md) or plain text (.txt) formats
- Loading Experience: Progress overlay with real-time status updates
- Background Processing: Non-blocking generation to keep UI responsive
- Input Validation: Ensures required fields before generation
- AI Integration: OpenAI and Google Gemini API support for real content generation
- Amazon Scraper: Automatic product detail extraction from Amazon URLs
- Pinterest Integration: Direct publishing to Pinterest via API
- Template System: Reusable content templates for different product types
- History & Caching: Local SQLite database for generated content history
- WordPress Integration: Blog post generation and publishing
- Python >= 3.10
- Pip / Virtual environment runner
-
Clone the repository:
git clone https://github.com/your-username/Pinterest-AI-Assistant.git cd Pinterest-AI-Assistant -
Create and activate a virtual environment:
python -m venv venv # On Windows (PowerShell): .\venv\Scripts\Activate.ps1 # On macOS/Linux: source venv/bin/activate
-
Install the application in editable development mode with development dependencies:
pip install -e .[dev]
-
Copy the environment template and set up your API keys:
cp .env.example .env
-
Run the application:
python app.py
- CustomTkinter window with modern dark theme
- Dashboard with welcome card and quick actions
- Multi-page navigation system
- Application state management
- Feature package structure with clean architecture
- Dummy content generator for development
- Complete generation workflow (workspace → loading → results)
- Results page with clipboard and export functionality
- Background processing system
- Input validation
- Next: Replace dummy generator with real AI providers
- Next: Integrate OpenAI and Google Gemini APIs
- Next: Implement Amazon product scraper
- Upload Images: Drag and drop product images or browse to select
- Add Details: Enter Amazon product URL and optional notes
- Generate: Click "Continue" to start content generation
- Loading: View real-time progress updates during generation
- Results: Review generated title, description, keywords, hashtags, and image prompt
- Export: Copy to clipboard or export to Markdown/Text files
- UI Layer: CustomTkinter components and pages
- Feature Layer: Content generation logic and services
- Core Layer: State management and utilities
- Background Workers: Prevent UI blocking during operations
Pinterest-AI-Assistant/
├── app.py # Entry-point bootstrap script
├── pyproject.toml # Packaging metadata and dependency management
├── README.md # Developer onboarding guide
├── .gitignore # Files excluded from version control
├── .env.example # Environment configuration template
│
├── .ai/ # AI context and guidelines files
│ ├── AGENT.md
│ ├── PROJECT_CONTEXT.md
│ ├── PROJECT_RULES.md
│ ├── PROJECT_MEMORY.md
│ ├── CHANGELOG.md
│ └── ROADMAP.md
│
├── assets/ # Graphics assets
│ ├── icons/
│ └── images/
│
├── prompts/ # AI prompt configuration files
│ ├── pinterest_seo.txt
│ ├── image_generation.txt
│ └── pinterest_image.txt
│
├── src/ # Source code
│ └── pinterest_assistant/
│ ├── __init__.py
│ ├── core/ # Common utilities, logger, workers, db
│ │ └── state.py # Application state management
│ ├── features/ # Business domains (Amazon scraper, generators)
│ │ └── content/ # Content generation feature
│ │ ├── models.py # PinterestContent dataclass
│ │ ├── generator.py # DummyGenerator
│ │ └── service.py # ContentGenerationService
│ └── ui/ # CustomTkinter interface panels
│ ├── components/ # Reusable UI widgets
│ ├── pages/ # Page implementations
│ │ ├── workspace_page.py # Image upload + generation
│ │ └── results_page.py # Content display + export
│ ├── loading_overlay.py # Progress indicator
│ ├── main_window.py
│ ├── sidebar.py
│ └── theme.py
│
├── tests/ # Unit and integration test suites
│ └── .gitkeep
│
└── data/ # Local databases and state caching
└── .gitkeep
- Run code formatting verification:
black --check . ruff check .
- Run the test suite:
pytest