Skip to content

litwicki/comics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Comic Collection Manager

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.

Features

  • 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

Quick Start

Prerequisites

  • Node.js >= 24.0.0
  • npm >= 10.0.0
  • Supabase account and project

Installation

  1. Clone the repository
  2. Install dependencies:
    npm install
  3. Set up environment variables (copy .env.example to .env.local)
  4. Run the development server:
    npm run dev

Data Synchronization Tools

Metron API Integration

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 help

Documentation:

Other Data Sources

  • 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

Available Scripts

Development

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint

Testing

  • npm run test - Run all tests
  • npm run test:watch - Run tests in watch mode
  • npm run test:unit - Run unit tests only
  • npm run test:integration - Run integration tests
  • npm run test:e2e - Run end-to-end tests
  • npm run test:pbt - Run property-based tests

Data Synchronization

  • npm run metron - Metron API integration CLI
  • npm run scrape:gcd - GCD data scraping
  • npm run scrape:clz - CLZ Comics import
  • npm run scraper:image-comics - Image Comics scraper
  • npm run scraper:marvel-creators - Marvel creators scraper

Database Management

  • npm run db:reset - Reset database
  • npm run db:backup - Create database backup
  • npm run db:restore - Restore from backup
  • npm run migrate:gcd - Run GCD migration
  • npm run db:audit - Run database audit

Cover Management

  • npm run gcd:covers - GCD cover fetcher
  • npm run gcd:cover-downloader - Cover downloader tool
  • npm run covers:clz - Upload CLZ covers to S3
  • npm run covers:image - Upload Image Comics covers
  • npm run covers:marvel - Upload Marvel covers

Project Structure

├── 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

Documentation

API Integration

Components

Database

AWS Infrastructure

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Run the test suite
  6. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For issues and questions:

  1. Check the troubleshooting guides
  2. Search existing issues
  3. Create a new issue with detailed information

Technology Stack

  • 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

About

Comics Catalog App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published