TCG Collections Management
翻訳待ち
Loading the full README.
Read the full README ↗A self-hosted trading card collection manager with a web interface and an Android scanner.
Keep your collections from several TCGs in one place, track the versions you own, check their prices, and scan cards from your phone. Use the web interface from your computer or mobile browser and connect the Android app to the same server.
Zukan (図鑑) means “illustrated encyclopedia” in Japanese.
I started Zukan because I couldn't find a collection manager that fit the way I collect. General-purpose collection apps didn't handle the details of trading cards well enough. The TCG tools I tried each left something missing: paid features, too much complexity, support for only one game, no Android app, or no way to use them outside Android.
I wanted a straightforward tool for several games, available on both my computer and my phone, that I could host myself. Zukan grew out of that need.
I use AI agents to develop Zukan, and I stand by that choice. Agentic development helped me turn a personal need into working software. Without it, this project would never have happened, and that need would still be unmet.
I decide what Zukan should do and how it should evolve, but I don't pretend to have all the answers. If you're a developer, you're very welcome to help improve the project. I have a lot to learn and would appreciate guidance from people with more experience. Constructive criticism is welcome, whether it's about the code, the architecture or the product itself.
The web interface and the Android app are available in English, French, German and Spanish. Card languages are handled separately; coverage depends on the game and its data sources.
Pokémon has separate international, Asia and China catalogs; Yu-Gi-Oh! has separate TCG and OCG catalogs. Game providers are plugins, so more games can be added. See Supported games and sources for the full catalog list and language coverage.
| Component | Technologies |
|---|---|
| Backend and API | Python 3.14, FastAPI, Pydantic, HTTPX |
| Database | PostgreSQL 17, SQLAlchemy 2, Alembic migrations |
| Web interface | React 19, TypeScript, Vite, TanStack Query, i18next |
| Styling | Tailwind CSS 4, daisyUI 5 |
| Android app | Kotlin, Jetpack Compose, CameraX, ML Kit text recognition, Retrofit |
| Authentication | Local accounts, OpenID Connect; AppAuth for Android SSO |
| Deployment | Docker Compose, separate API and background worker services |
The API serves the built web interface. The worker refreshes catalogs, prices and cached card images. Android performs text recognition on the device and sends the recognized text to the server to identify cards; scanning requires a connection to your server.
ghcr.io/foxops/zukan.The Zukan wiki is the main documentation. It contains the user guides, deployment instructions, administration procedures and technical reference.
This is the beginning of the README. Read the rest at the original. Read the full README ↗