Players and collectors of trading card games often run into a costly problem: where did that card go? Knowing you own 6 copies of a card isn't useful if you don't know where any of them are, and inventory spreadsheets are hard to keep up to date when the process of deck building is constantly moving cards around.
Where's that Pokemon? aims to solve the problem by integrating deck construction into inventory management. As you build and modify decks, card inventory is automatically managed behind the scenes to prevent losing track of their storage location.
- Set up a PostgreSQL server somewhere. I use a raspberry pi on my home network, and if you want to go that route I suggest following step 6 of this tutorial on setting up a mastodon instance. Most cloud providers offer these kinds of services for free or low cost. Amazon Web Services has a tutorial on setting up a free PostgreSQL instance if that fits your needs better.
- Download this repository using
git clone --recurse-submodules https://github.com/chrisbrickhouse/ptcg-inventory.git
- Navigate to the site directory using
cd ptcg-inventory/cardsite
- Install the python dependancies using
python -m pip install -r requirements.txt
- Install the grunt dependancies using
npm install
- Navigate to the ptcg-inventory directory using
cd ..
- Configure the Django site and database using [the instructions for configuring a site](#Configuring the site)
- Import the card data using
python make_set_fixtures.py
To get the site running, you need to modify cardsite/my_pokemon_cards/settings.py
to point to your PostgreSQL server.
- In
cardsite/my_pokemon_cards/settings.py
modify theDATABASES
entry with the information for your SQL server. If you need help, see the reference doc. - Set a
SECRET_KEY
. By default, the distributed settings check for an environment variable with that info, but you can also add it to the file directly. You can usedjango.core.management.utils.get_random_secret_key()
to generate one.
Where's that Pokemon? is still in initial development and the interface may change rapidly. The roadmap below contains planned features and likely migrations to help mitigate disruption. The main use case is for hobbyists who want to run their own instance, but long term it may be useful to deploy as a platform.
Minimal viable deck building interfaceNew deckDeck detailsAdd and remove cards from deck
Implement storage locationsGeneric CardStash tableMigrate Deck to subclass of CardStash(Destructive)Migrate CardAllocation to use CardStash(Destructive)
Collection overview pageList summary stats for a collection
Overview of each CardStashCardStash to CardStash allocation interfaceSelect two CardStashes and move cards between them- Modify Deck building interface to wrap this as an implementation of moving cards to and from deck and storage
- User accounts phase 1
Gate database access to logged-in users (security)
- Feature Freeze
- Improve testing and fix observed bugs
Front-end styling to make the interface pretty
- Release 1.0 - minimal viable product
- TCG Player integration
- (prereq?) InventoriedCard subclass of Card to handle card-specific metadata
- Currently no way to distinguish normal vs reverse holo, different stamps, different langs, conditions, etc
- e.g. Two pgo-1 cards could have different prices because one is Lightly Played and the other is a PSA 7
- More extensible than modding the card DB
- Pricing for cards in collection or needed for decks
- (Long term, needs defined) Store management integration
- (prereq?) InventoriedCard subclass of Card to handle card-specific metadata
- User accounts phases 2+ (Long term, needs defined)
- Add "created by" field to stash objects
- Implement permissions for accessing and modifying stash objects
- Add back Card-specific data
- Card images, attacks, etc were removed for simplicity in 1.0 fixtures