Skip to main content

Sheet Herder

·2 mins·
DHangaard
Author
DHangaard

Project Overview
#

Project: Portfolio & Exam Submission
Semester: DAT 3rd Semester 2026
Focus: Production-ready Java backend with authentication, role-based access control, external API integration, and automated deployment.

Sheet Herder is a backend API for a Tabletop Roleplaying Game (TTRPG) companion application. The system allows players to create and manage their characters and personal notes, while game masters can organise campaigns, track session progress, and keep an eye on their party — all in one place.


Vision
#

Players manage characters and notes. Game masters create campaigns, track sessions, and oversee their party. One API to power it all.

The longer-term vision is a rules-agnostic companion that supports any TTRPG system. The current implementation is built around the D&D 5e ruleset, using the D&D 5e REST API as its reference data source.


Architecture
#

Sheet Herder is implemented as a layered backend architecture with clear separation between HTTP handling, business logic, and persistence.

The system consists of:

  • Javalin controllers handling REST communication
  • Service layer implementing domain logic and business rules
  • DAO layer using JPA/Hibernate for database access
  • PostgreSQL relational data model
  • JWT authentication and role-based authorization
  • D&D 5e REST API integration for reference data (races, subraces, languages, traits)
  • Docker containerisation with Caddy as reverse proxy and automatic TLS
  • Automated CI/CD pipeline via GitHub Actions, Docker Hub and Watchtower

Development Log
#

The project is documented week by week in the devlog series.

  1. Devlog 0 - Initial Commit
  2. Devlog 1 - Domain modelling, business rules, user stories and first steps with JPA
  3. Devlog 2 - JPA relations, fetch types and the first real test of the domain model
  4. Devlog 3 - Fetching reference data from the D&D 5e API, threading with ExecutorService and mapping with DTOs
  5. Devlog 4 - REST principles, HTTP methods, status codes, logging and building the API layer with Javalin
  6. Devlog 5
  7. Devlog 6
  8. Devlog 8
  9. Devlog 9

Project Video
#

A short walkthrough of the Sheet Herder portfolio and backend system.

The video covers the project overview, development log, architecture, and a live backend demo.

Video Demo


Source Code
#


Live API
#

The deployed application is available at sheet-herder-api.dhangaard.dk.