GameMasterStudio, a fullstack website inspired partially by Roll20.net and DnD Beyond, is an online Dungeons & Dragons character & campaign creator. Users who have created campaigns can invite other users to those campaigns, who can add the characters they've created.
- Backend: Python, Flask, WTForms, boto3/botocore (for uploading to AWS/S3)
- Frontend: JavaScript, React/Redux, AJAX, React-Drag-And-Drop(for image upload functionality), react-quilljs (for creating and editing articles)
- Database: PostgresSQL
- Image hosting: AWS/S3
- Clone this repo
git clone git@github.com:AndrewPMurray/GameMasterStudio.git
- Install dependencies for backend
pipenv install
- Install dependencies for frontend
cd react-appnpm install
- Create PostgreSQL user
CREATE USER gms_user WITH CREATEDB PASSWORD '<password>'
- Create PostgreSQL database
- `CREATE DATABASE gms_db WITH OWNER gms_user
- Create a
.envfile in the root directory based on the.env.examplefile - In
.envfile:- Replace 'password' in DATABASE_URL with your chosen password
- Enter a secure combination of characters for your SECRET_KEY
- This website uses Minio for image hosting. Instructions for setting up a Minio host can be found here: https://www.digitalocean.com/community/tutorials/how-to-set-up-minio-object-storage-server-in-standalone-mode-on-ubuntu-20-04
- Set env variables for MINIO_BUCKET, MINIO_KEY, MINIO_SECRET, and MINIO_API_HOST
- Flask Migrate and Seed your database in root directory
pipenv shellflask db upgradeflask seed all
- Start backend server in root directory
flask run
- Start frontend server in
react-appdirectorynpm start
- In your browser go to
localhost:3000 - You may use the Demo user by clicking on the
Loginbutton or create a new user by clicking on theSign Upbutton. Then you can create a new character or campaign or invite other users to a campaign.
- Ability to add sections/articles to campaigns, for users in a campaign to keep track of their sessions
- Search campaigns for articles within that campaign





