/bag-of-holding

store your RPG party's inventory in the cloud

Primary LanguageTypeScriptMIT LicenseMIT

Bag of Holding

Bag of Holding is a web app that lets all the players in a tabletop RPG session track their inventory in one central location. Inventory sheets are created without requiring any account creation or authentication and update in real time, allowing for easy and convenient collaboration between players, as well as offering advanced filters and searching that makes it suitable for tracking both the group inventory and the inventory of individual players.

Live Site

Stack: Bag of Holding is built primarily using the following technologies:

Status: Bag of Holding is currently on version 1.0.1

Installation

How to install and locally host your own installation of Bag of Holding:

  1. Fork + Clone this repository
  2. Run the yarn command (yarn must be installed) and wait for installation of packages to finish
  3. Create a MongoDB Atlas collection and get the connection string (for help, follow this guide up to the point that you get the connection string in step 4)
  4. Create a file named .env in the root directory of your forked repository. In that file, write MONGO_URL=*your connection string*
  5. Run yarn start:dev to run the development server, or just yarn start for the production server.

Development

We will gladly accept any help you want to offer us. If you want to contribute to Bag of Holding, please read this section and follow any instructions.

Extensions

It is recommended that you install the following extensions before starting work on Bag of Holding:

  • Prettier (esbenp.prettier-vscode): An extension for formatting your code.
  • Prettier ESLint (rvest.vs-code-prettier-eslint): An extension that allows the Prettier extension operate in conjunction with ESlint. By using both of these extensions we can make sure we are following a consistent code style which goes a long way to making the codebase consistent and predictable.
  • Conventional Commits (vivaxy.vscode-conventional-commits): Helps you generate commit messages in the standard conventional-commits format. It is recommended that you use this tool when you make commits. This repository uses commitlint to enforce high quality commit messages, and this extension makes it extremely easy to generate commit messages that will be accepted by commitlint.

Workflow

When making commits to this repository, it is recommended you do so using the Conventional Commits vscode extension, or failing that, run yarn commit in your terminal to open up the command line tool for writing high quality commit messages.

Configuration

  • Fetch Intervals: By default, inventory sheets will request new data from the server once every 30000 milliseconds. The regularity of this can be customized. To do this, add NEXT_PUBLIC_REFETCH_INTERVAL=*desired refetch intervals in milliseconds*

License

MIT