The Niv Deckbuilder


Stats
  • Language(s): Python Flask web app
  • Date: Fall 2023
  • Overview: Web application utilizing the Scryfall API to create a Magic the Gathering deckbuilder and analytics tool.

Description

I created a web application in Flask for building a deck in the popular trading card game Magic the Gathering, called the Niv Deckbuilder (named after the MtG character Niv-Mizzet). In order to build a deck, I created a few classes: Deck, Card, and User. Card is used to store information about individual MtG cards that can be displayed or used in the search feature. The Deck class will store information about a deck, as well as contain a few methods for analysis. In order to save Decks across multiple sessions, there is also a User class. In order to create and save a deck, a user must create an account first. This links every deck created with an account, so that when one goes to edit a deck, only their own decks show up. In addition to the deck building tool, there are also a few other features to the app. The Search function works as a simplified version of Scryfall search, where it will build a query based on the user's selections, and then display the result of the search and filter. After creating and saving a deck, there is also a page that shows information about a deck, such as a in-depth card list with prices, a mana curve (graph of mana values of each card), legalities, and more.