A comprehensive web application for managing comic book collections with data synchronization from multiple sources including GCD (Grand Comics Database), Metron API, and other comic databases.
- Collection Management: Organize and track your comic book collection
- Multi-Source Data Sync: Import data from GCD, Metron API, and other sources
- Cover Image Management: Automated cover image fetching and storage
- Search and Filtering: Advanced search capabilities across your collection
- User Collections: Personal collection management with wishlist and shopping list features
- Admin Tools: Content editing and management capabilities
- Node.js >= 24.0.0
- npm >= 10.0.0
- Supabase account and project
- Clone the repository
- Install dependencies:
npm install
- Set up environment variables (copy
.env.exampleto.env.local) - Run the development server:
npm run dev
The project includes a comprehensive CLI tool for synchronizing comic book data from the Metron API.
Quick Start:
# Fetch latest comics (default: 14 days)
npm run metron latest
# Sync specific series
npm run metron series 12345
# Sync specific issue
npm run metron issue 67890
# Get help
npm run metron helpDocumentation:
- Metron CLI Guide - Comprehensive usage guide
- Quick Reference - Command reference
- Troubleshooting - Common issues and solutions
- GCD Integration: Scripts for importing from Grand Comics Database
- CLZ Integration: Import from CLZ Comics collections
- Image Comics: Specialized scrapers for Image Comics data
- Marvel Comics: Marvel-specific data import tools
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
npm run test- Run all testsnpm run test:watch- Run tests in watch modenpm run test:unit- Run unit tests onlynpm run test:integration- Run integration testsnpm run test:e2e- Run end-to-end testsnpm run test:pbt- Run property-based tests
npm run metron- Metron API integration CLInpm run scrape:gcd- GCD data scrapingnpm run scrape:clz- CLZ Comics importnpm run scraper:image-comics- Image Comics scrapernpm run scraper:marvel-creators- Marvel creators scraper
npm run db:reset- Reset databasenpm run db:backup- Create database backupnpm run db:restore- Restore from backupnpm run migrate:gcd- Run GCD migrationnpm run db:audit- Run database audit
npm run gcd:covers- GCD cover fetchernpm run gcd:cover-downloader- Cover downloader toolnpm run covers:clz- Upload CLZ covers to S3npm run covers:image- Upload Image Comics coversnpm run covers:marvel- Upload Marvel covers
├── src/
│ ├── app/ # Next.js app directory
│ ├── components/ # React components
│ ├── lib/ # Utility libraries and services
│ ├── hooks/ # Custom React hooks
│ └── types/ # TypeScript type definitions
├── bin/ # CLI tools and scripts
├── scripts/ # Database and utility scripts
├── docs/ # Documentation
├── supabase/ # Supabase configuration and migrations
└── aws/ # AWS infrastructure code
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Run the test suite
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues and questions:
- Check the troubleshooting guides
- Search existing issues
- Create a new issue with detailed information
- Frontend: Next.js, React, TypeScript, Tailwind CSS
- Backend: Next.js API routes, Supabase
- Database: PostgreSQL (via Supabase)
- Storage: AWS S3 (cover images)
- Testing: Vitest, Testing Library, Property-based testing
- CLI Tools: Commander.js, Winston (logging)
- Infrastructure: AWS CDK, Lambda, CloudFront