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

121 lines
No EOL
3.6 KiB
Markdown

# TCG Vault Bulk Import Scripts
This directory contains scripts for bulk importing TCG card data into the database.
## Available Scripts
### 1. `import-popular-sets.js` - Popular Sets Import
Imports the most popular and recent sets from all three TCGs (Magic, Pokemon, Lorcana).
**Usage:**
```bash
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:**
```bash
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:
```bash
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:
```bash
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