Skip to content

jbourdin/expandedDecks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,307 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expanded Decks

CI codecov PHP 8.5+ Symfony 8.0 License

Audience: Developer, Player, Organizer · Scope: Overview

A web application for managing a shared library of physical Pokemon TCG decks in the Expanded format. It enables a community of players to register their decks, declare upcoming events, request to borrow decks, and track the full lending lifecycle — from request to return.

Deck lists are imported via copy-paste of standard PTCG text format, parsed and validated against TCGdex. Physical deck boxes are identified via Zebra-printed labels with scannable codes for fast check-in/check-out.

Philosophy

The Expanded format offers incredible deck diversity and deep strategy, but its large card pool can be a barrier for newcomers — out-of-print cards, unfamiliar combos, and significant upfront cost. Expanded Decks exists to lower that barrier by making it easy for experienced players to lend their decks to others at organized events. Try a real competitive deck, enjoy the format, and decide if you want to build your own.

This project is an independent community tool. It does not replace or compete with official Pokemon Organized Play services, and all users are expected to comply with official tournament rules and policies. It has no affiliation with The Pokemon Company.

Read the full Project Philosophy.

Stack

  • Backend: PHP 8.5, Symfony 8.0, Doctrine ORM
  • Frontend: React.js (via Symfony UX / Webpack Encore)
  • Database: MySQL 8
  • Infrastructure: Docker, Docker Compose
  • External APIs: TCGdex (card data, images), PrintNode (cloud printing)
  • Hardware: Zebra label printer (ZPL via PrintNode)

Features

Domain Summary
F1 — User Management Registration with email verification, screen name, player ID. Global roles: player, organizer, admin. Per-event staff. MFA and Pokemon SSO planned.
F2 — Deck Library Register physical decks, import lists via copy-paste (PTCG text format), browse catalog, track availability.
F3 — Event Management Declare events, list upcoming/past events, register participation, assign event staff.
F4 — Borrow Workflow Request, approve, hand-off, return — full lending lifecycle with staff-delegated lending, custody tracking, history, and overdue tracking.
F5 — Zebra Label Printing Generate ZPL labels, push to Zebra printer via PrintNode, scan barcodes for deck identification.
F6 — Card Data & Validation Parse PTCG text (ptcgo-parser), validate via TCGdex, Expanded format rules, card image display.
F7 — Administration Dashboard, user management, audit log.
F11 — CMS Content Pages Admin-managed content pages with Markdown, translatable fields (title, slug, content, SEO), menu categories, English fallback.
F14 — Deployment & Infrastructure Per-transport Messenger DSN, configurable sessions, health check endpoints, production Dockerfile, Sentry error tracking.

See the full feature list for detailed descriptions and priorities.


Documentation

Document Description
docs/philosophy.md Project philosophy and values
CLAUDE.md AI context: coding standards & workflow
docs/docs.md Technical documentation entry point
docs/features.md Full feature list with priorities
docs/roadmap.md Implementation roadmap (12 phases)

License

This project is licensed under the Apache License 2.0.

External References

About

Shared library manager for physical Pokemon TCG decks (Expanded format)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors