Skip to content

DKPistilli/hosebox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to...


The official deckbuilding and inventory-management application for the competitors of the Meadow Lane: Magic the Gathering (MLMTG) league.

Unlike other Magic: The Gathering deckbuilding and inventory-management sites, hosebox has a host of wonderful features -- designed specifically for ML:MTG competitors -- that it provides free of charge, alongide help from the Scryfall API and the Hosebot discord bot (who happens to be hosebox's #1 pal in the world...)

Features

That's right, folks -- hosebox and hosebot are teaming up, allowing MLMTG Wizards to...

  • Create and manage decklists, sideboards, and scratchpads, all free of charge.
  • Manage privacy for each individual decklist, allowing Wizards to display public decks (e.g. playoff lists) while leaving the rest of their decks safe from Goose and Gavin's prying eyes. Massively, this removes the need to maintain multiple deckbox accounts and inventories.
  • Generate random reward (!reward) cards/packs via Discord (!reward), post those rewards, then have those rewards auto-added to the correct wizard's inventory.
  • Initiate trades via Discord (!trade), generate/post correct trade image, then auto-update both wizard's inventories to reflect the trade.
  • Submit decklists via Discord (!submit), taking each wizard's OFFICIAL DECKLIST and emailing it to the official MLMTG email account for record-keeping. No more late decklists!
  • View the current season's MLMTG schedules, records, and standings.

To-Do (Car (Bicycle (Skateboard)))

Back End

  • (potential) add some sort of LeagueModel which stores season, standings (all manually updated??), and like..."about"? So that I can add some of the flavor currently relegated to challonge.com
  • Users
    • Validate username (no weird chars, no spaces)
    • Add user GET func which returns username and (public) decks
    • Add FOLLOWING [{name, userId}] so users can follow others
  • update api to NO LONGER USE CARDIDS, instead taking cardNames
  • inventoryCards
    • design inventoryCardSchema model (what card info is needed on our server) and corresponding api calls
    • implement inventoryCard model, router, and controller
  • scryfallCards
    • design local scryfall DB and corresponding api (non-http, local server requests only).
    • implement scryfallCard model, router, and controller, so that all card information is blackboxed from the front end -- they send cardId, they get a full card, and never need to know about implementation or what extra fields we're removing from the actual scryfall.com card schema.
  • Decks
    • design deckSchema and corresponding api calls. Big Question: how to structure mainboard/sideboard/scratchpad (needs privateList option! don't forget).
    • implement decks model, router, and controller

Front End

  • Deckview

    • design and implement page/component, which is GUI for user to view/edit their decklists
    • mainboard/sideboard/scratchpad
    • add "deckname" pop-up window for creating a new deck.
    • FUTURE VERSIONS: Add inventory qty to deckview, which will require a GET to api.hosebox.net/api/users/inventoryCards/:userId/:deckId (most likely)
  • (potential) add "League" to front-end

    • create "/league" page and add League button to
    • create some sort of league schedule-view and/or standings-view.
    • write and display some sort of flavor about the history of the league?
  • KNOWN BUG: MDFC (Modal Dual Face Cards). Currently, they do not display correctly, due to JSON structure.

  • Inventory / Wishlist

    • implement component which queries our server for cardIds
    • implement addCard
    • implement addCardList
  • Sidebar

    • implement component which has a button to view , ,
    • Create file structure for Sidebar so that decks can display down the sidebar (and scroll)
    • implement component which grabs all decks w/ userId and lists them on left sidebar. Clicking navs to hosebox.net/decks/:deckId
  • Register

    • Hide passwords
    • Validate username (no weird chars, no spaces)
  • component

  • Add hosebot and generate mock "Welcome" landing index

  • Fix Toast not displaying err messages correctly

  • make the to-do list lol

  • EC2 setup/systemd: https://www.youtube.com/watch?v=oHAQ3TzUTro

  • EC2 nginx: https://www.youtube.com/watch?v=_EBARqreeao (localhost:8k)

  • EC2 ssl certbot: https://dev.to/greenteabiscuit/using-let-s-encrypt-on-aws-ec2-instance-2aca

  • https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2023.html#ssl_enable // sudo systemctl start/restart/status nginx/hosebox.service

About

The hosebox web application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors