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 [email protected]:AndrewPMurray/GameMasterStudio.git
- Install dependencies for backend
pipenv install
- Install dependencies for frontend
cd react-app
npm 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
.env
file in the root directory based on the.env.example
file - In
.env
file:- 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 shell
flask db upgrade
flask seed all
- Start backend server in root directory
flask run
- Start frontend server in
react-app
directorynpm start
- In your browser go to
localhost:3000
- You may use the Demo user by clicking on the
Login
button or create a new user by clicking on theSign Up
button. 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