Build this tool: Affiliate Code Expiry Tracker Dashboard to log affiliate/promo codes with campaign end date, video/page title, and source URL. Flags which codes expire soon and which videos need a description update before the code goes dead. Also find where a code already appears: scan any YouTube channel and/or any website for the code, then Add selected / Add all into the tracker with sponsor + expiry filled in the results dialog. Product folder name: Affiliate Code Expiry Tracker Version: 1.1.0 Difficulty: Easy Category: People & Blogs / Creator business No Gemini — local JSON dashboard + optional YouTube Data API for channel scans. Local JSON store in %LOCALAPPDATA%\CaseyBuilds\AffiliateCodeExpiryTracker\codes.json. Dates: DD-MM-YYYY (also accepts DD/MM/YYYY; legacy ISO still loads). Configurable "expiring soon" threshold in days. Filters: All / Needs description update / Expiring soon / Expired / Active. Codes table columns: Code, Campaign, End date, Days left, Status, Video/title, URL. Toolbar: Refresh · Export CSV · Delete selected · Delete all. Export CSV → tool folder exports\ as campaign_date.csv (timestamp fallback); contiguous rows, no blank line spacing; UTF-8 with BOM for Excel. Delete all asks for confirmation, then clears the store. Find a code panel: - CODE TO FIND - Shared YouTube Data API key (masked, Save + YouTube setup help) - YouTube channel (optional; needs API key) - Website URL (optional; no API key required for site-only) - Find where this code appears → results list (multi-select), then Add selected to tracker / Add all to tracker Demo / script data on camera: Casey Builds It + https://caseybuildsit.com only. STACK (standalone desktop app) - Python 3 + tkinter GUI — standalone desktop tool (not a website). - Even if an idea brief says "web app" / "site", ship a Python desktop GUI for v1. - Include: main .py, requirements.txt, run_*.bat, build_exe.bat (PyInstaller), exports/ folder. - Smoke-test core logic offline without requiring live API keys when possible.