Skip to content

Latest commit

 

History

History
150 lines (125 loc) · 5.05 KB

File metadata and controls

150 lines (125 loc) · 5.05 KB

CardCast Project Summary

What We've Accomplished

1. Fixed Build System ✅

  • Removed problematic pkg executable approach - Too many compatibility issues with modern Node modules
  • Created portable distribution system - Works reliably with all dependencies
  • Auto-downloads portable Node.js - Users don't need Node.js pre-installed
  • One-click launcher - CardCast.bat handles everything automatically

2. Updated Game Support ✅

  • Pokemon TCG: Fully functional with 20,000+ cards
  • Other TCGs: Marked as "Coming Soon" with proper UI indicators
  • Prevents confusion: Users can't try to download unavailable games
  • Toast notifications: Friendly messages when clicking coming soon games

3. Project Documentation ✅

Created comprehensive documentation:

  • README.md: Professional documentation with features, setup, and troubleshooting
  • LICENSE: GPL-3.0 to ensure it stays open source
  • CHANGELOG.md: Version history and roadmap
  • .gitignore: Proper file exclusions for Git
  • config.json: Default configuration with correct game availability

4. Code Updates ✅

Modified files to support "Coming Soon" games:

  • public/js/main.js: Added coming soon checks and toast notifications
  • server.js: Added availability flag to game configuration
  • CSS styles: Added styling for disabled games and toast notifications
  • Build script: Updated to include correct default configuration

Current Project Structure

CardCast/
├── server.js                 # Main Express server
├── index.html               # Web interface
├── config.json              # Default configuration
├── package.json             # Dependencies (simplified)
├── README.md                # Documentation
├── LICENSE                  # GPL-3.0 license
├── CHANGELOG.md             # Version history
├── .gitignore               # Git exclusions
│
├── scripts/
│   ├── build-portable.js    # Build script (working!)
│   ├── test-setup.js        # System test script
│   └── build-exe.js         # OLD - can be deleted
│
├── src/
│   ├── database.js          # SQLite integration
│   ├── tcg-api.js          # TCGCSV.com API
│   └── overlay-server.js   # WebSocket handling
│
├── public/
│   ├── css/
│   │   └── style.css       # Main styles + coming soon styles
│   └── js/
│       └── main.js         # Frontend logic with game checks
│
├── overlays/
│   ├── main.html           # Dual card display
│   ├── prizes.html         # Prize tracker
│   └── decklist.html       # Deck viewer
│
├── data/                   # Created on use (databases)
└── cache/                  # Created on use (card images)

How to Use

For Development:

npm install          # Install dependencies
npm run dev         # Start with auto-restart
npm run build       # Create distribution

For Distribution:

  1. Run npm run build
  2. ZIP the dist-portable folder
  3. Users extract and run CardCast.bat
  4. It auto-downloads Node.js if needed (30MB)
  5. Auto-installs dependencies on first run
  6. Opens browser automatically

What Works Now

Pokemon TCG - COMPLETE

  • Full card search (20,000+ cards)
  • Set code search (e.g., "Pikachu SV01 25")
  • Fuzzy name matching
  • OBS overlays (main, prizes, decklist)
  • Pokemon Match mode
  • Deck import/export
  • Offline mode after download

Infrastructure - COMPLETE

  • Express server with Socket.io
  • SQLite database
  • Real-time updates to OBS
  • Dark theme UI
  • Auto-update checking
  • Error handling

What's Coming Soon

Other TCGs (marked as "Coming Soon" in UI)

  • Magic: The Gathering
  • Yu-Gi-Oh!
  • Disney Lorcana
  • One Piece Card Game
  • Digimon Card Game
  • Flesh and Blood
  • Star Wars Unlimited

Files You Can Delete

  • scripts/build-exe.js - Old build script, no longer needed
  • dist/ folder if it exists - From old build attempts

Next Steps for Development

  1. Complete TCGCSV.com integration for other games
  2. Add more overlay designs for different streaming styles
  3. Implement deck statistics and win rate tracking
  4. Add tournament mode for competitive play
  5. Create overlay customization options

Important Notes

  • Node.js version: Uses 0.27.2 of axios for compatibility
  • Database: SQLite with better-sqlite3
  • Real-time: Socket.io for OBS communication
  • License: GPL-3.0 ensures it stays free forever
  • Port: Default 3888, configurable in config.json

Distribution Size

  • Initial download: ~10MB (without node_modules)
  • After setup: ~50MB (with dependencies)
  • With Pokemon data: ~100MB (includes card database)
  • Portable Node.js: 30MB (downloaded automatically if needed)

This project is now ready for:

  1. Public release (Pokemon only)
  2. Community feedback
  3. Adding more TCGs incrementally

The portable distribution approach is much more reliable than trying to bundle everything into an exe, and the auto-download of Node.js makes it just as user-friendly!