deckhearth/scripts/README.md
Randall Stillwell e75a4a6649 Major redesign: Enhanced card display with particle effects, improved filters, and search functionality
- Redesigned card display with 2.5:3.5 aspect ratio and image-only view
- Added infinite scroll to replace pagination
- Implemented authentic card back placeholders for MTG, Pokemon, and Lorcana
- Added rarity-based particle effects with tiered intensity (mythic/enchanted/rare/uncommon)
- Enhanced hover details panel with structured card information
- Fixed search functionality with debouncing and Enter key support
- Improved filter system with working TCG, rarity, set, and price filters
- Added favorite system for cards in both hover and detail views
- Updated card detail page with comprehensive metadata and actions
- Fixed API filtering with proper Vercel Postgres implementation
- Added particle animations and rarity glow effects
- Improved overall UX with better visual hierarchy and interactions
2025-07-23 21:26:54 -05:00

3.6 KiB

TCG Vault Bulk Import Scripts

This directory contains scripts for bulk importing TCG card data into the database.

Available Scripts

Imports the most popular and recent sets from all three TCGs (Magic, Pokemon, Lorcana).

Usage:

npm run import-popular

What it imports:

  • Magic: The Gathering: ~100+ sets from Alpha to recent releases
  • Pokemon: ~100+ sets from Base Set to current Scarlet & Violet
  • Lorcana: All 3 available sets

Estimated time: 2-4 hours (depending on API response times)

2. bulk-import-all.js - Complete Import

Imports ALL available sets from all TCGs (comprehensive import).

Usage:

npm run import-all

What it imports:

  • Magic: The Gathering: 100+ sets (Alpha to current)
  • Pokemon: 100+ sets (Base Set to current)
  • Lorcana: All available sets

Estimated time: 4-8 hours (depending on API response times)

How It Works

  1. Sequential Import: Scripts import sets one by one to avoid overwhelming the APIs
  2. Error Handling: Failed imports are logged but don't stop the process
  3. Progress Tracking: Real-time console output shows progress
  4. Results Logging: Detailed results are saved to JSON files
  5. Rate Limiting: 1-second delays between imports to be respectful to APIs

Output Files

After running, you'll get timestamped JSON files with detailed results:

  • popular-sets-import-results-[timestamp].json
  • bulk-import-results-[timestamp].json

These files contain:

  • Success/failure status for each set
  • Number of cards imported per set
  • Error messages for failed imports
  • Summary statistics

Prerequisites

  1. Server Running: Make sure your Next.js dev server is running (npm run dev)
  2. Database Setup: Ensure the database is initialized (npm run setup-db)
  3. Dependencies: All required packages are installed

Recommendations

For First-Time Setup

Start with the popular sets import:

npm run import-popular

This will give you a solid foundation with the most relevant cards.

For Complete Database

If you want everything, use the full import:

npm run import-all

For Ongoing Management

After the initial bulk import, use the admin interface at /admin/card-import for:

  • Importing new sets as they release
  • Selective imports of specific sets
  • Monitoring import progress

Troubleshooting

Common Issues

  1. API Rate Limits: If you get rate limit errors, the scripts will continue but log failures
  2. Network Issues: Scripts will retry and continue with the next set
  3. Server Restart: If the server restarts, just restart the import script

Monitoring Progress

Watch the console output for:

  • Successful imports with card counts
  • Failed imports with error messages
  • 📊 Summary statistics at the end

Stopping and Resuming

You can stop the script with Ctrl+C and restart it later. The scripts will start from the beginning, but the database will only store unique cards (no duplicates).

API Endpoints Used

  • POST /api/cards/import-mtg - Magic: The Gathering imports
  • POST /api/cards/import-pokemon - Pokemon imports
  • POST /api/cards/import-lorcana - Lorcana imports

Data Sources

  • Magic: The Gathering: Scryfall API
  • Pokemon: Pokemon TCG API
  • Lorcana: Lorcana API (limited availability)

Performance Notes

  • Each set typically contains 100-400 cards
  • Total database size after full import: ~50,000-100,000 cards
  • Import speed: ~1 set per minute (with delays)
  • Database storage: ~100-200MB after full import