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.
Stack: Bag of Holding is built primarily using the following technologies:
- Typescript
- React, bootstrapped with Next.js via
create-next-app
and Chakra UI for styling - MongoDB Cloud with Mongoose
- Hosted on Vercel
Status: Bag of Holding is currently on version 1.0.1
How to install and locally host your own installation of Bag of Holding:
- Fork + Clone this repository
- Run the
yarn
command (yarn must be installed) and wait for installation of packages to finish - 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)
- Create a file named
.env
in the root directory of your forked repository. In that file, writeMONGO_URL=*your connection string*
- Run
yarn start:dev
to run the development server, or justyarn start
for the production server.
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.
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 withESlint
. 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 usescommitlint
to enforce high quality commit messages, and this extension makes it extremely easy to generate commit messages that will be accepted bycommitlint
.
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.
- 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*
MIT