2 min read

KCL D&D App

A digital companion for the KCL D&D Society.

KCL D&D App post cover image

A comprehensive digital companion for the KCL Dungeons & Dragons Society. This application serves as an organisational tool to enhance the users’ experience, providing features for character management, party organisation, campaign tracking, and achievement systems. It is not a replacement for pen-and-paper play, but rather a magical addon that complements traditional D&D sessions at the university.

As I mentioned in my manifesto to be the President of the society, I started working on the web app in late March, and it has come a long way, with 30 thousand lines of code — probably the biggest thing I’ve created.

It is made with Next.js as the full-stack framework, with full type safety all around, even when accessing the database. Speaking of, it uses a self-hosted Supabase instance with schema migrations defined in the repo.

I’ve given a lot of thought about the minute things, the exact things that will make or break the usage of the app. The app is very responsive and works on all screens. The feature set is very extensive: associate’s sign up, journal, polling system, resouce pages, achievements system, character management, party organisation, and a when2dnd page for organising online sessions. The app also includes a very extensive dashboard for users: everything in one place.

dashboard.png

Users of the app can have one of three roles: admin, DM, and player. Each of them have different access permissions, also defined as RLS policies in the database. In addition, we can consider these roles as subsets of each other, as a DM can also have a player page, with characters of their own — because a player might want to be a DM in the next term, for example.

I’m also going to add a trades system for different PCs to exchange items between them, could be between parties too! Of course, with DMs controlling the exchange in every step so that there isn’t any broken items in the story.


§