- 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.bathandles everything automatically
- 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
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
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
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)
npm install # Install dependencies
npm run dev # Start with auto-restart
npm run build # Create distribution- Run
npm run build - ZIP the
dist-portablefolder - Users extract and run
CardCast.bat - It auto-downloads Node.js if needed (30MB)
- Auto-installs dependencies on first run
- Opens browser automatically
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
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
scripts/build-exe.js- Old build script, no longer neededdist/folder if it exists - From old build attempts
- Complete TCGCSV.com integration for other games
- Add more overlay designs for different streaming styles
- Implement deck statistics and win rate tracking
- Add tournament mode for competitive play
- Create overlay customization options
- 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
- 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:
- Public release (Pokemon only)
- Community feedback
- 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!