Inspiration

While there are a lot of DM (Dungeon Master) tools with which you can play fully remote, there is a disturbing lack of tools that allow one to play face-to-face while still leveraging the advantages of technology. So we set out to build one ourselves, starting with a tool to manage encounters.

What it does

It allows the DM to create and manage encounters for their sessions and campaigns. We wrote an algorithm to generate encounters based on the strength of the players.

How we built it

The application is split in into two parts:

Backend

The backend is a Spring Boot Application which exposes a REST-API. To fill in the vast amounts of Dungeons and Dragons data we needed, we used the public 5e-srd-api. To document the REST-API we used Swagger.

You can take a look at the repo here or our Swagger-documentation available here.

Frontend

The frontend is completely build in Vue.js with Vuetify on top of it. Because Vue.js is a single page application we also used Vue Router to simulated a more traditional webpage.

You can take a look at the repository here.

Challenges we ran into

We ran into two major challenges:

  • The public 5e-srd-api did not return some of the data as we hoped it would. This made the further processing of this data a bit more complex that we would have liked.
  • Because we are both backend developer by trade, we have very little experience in coding a frontend on this scale. Which made this an interesting endeavor to say the least.
  • Because one of us had to quarantine himself on short notice, we had to switch to a fully remote participation instead of meeting up.

Accomplishments that we are proud of

We made an application that works and that we can actually use. Even if it there may still be some bugs here and there.

We are also proud of our teamwork. Even though it was a fully remote environment it worked flawlessly.

What we learned

We learned a lot, and we really mean a lot, especially about Vue.js and Vuetify. Also that it is apparently possible to only sleep two hours during this entire time frame.

What's next for Encounter Tavern

There is a big list of ideas that we want to implement:

  • The possibility to create an account and keep the encounters private
  • A tool to create encounters from scratch without any generation
  • Better encounter management(tags, story elements...)
  • More possibilities in generating encounters(terrain, languages, alignments...)
  • A face lift for the UI :)

We are also looking to host this in a Kubernetes environment to take advantages of the scalable container technology.

Built With

Share this project:

Updates