A custom character creator for DND 5.5 with homebrew options.
  • TypeScript 95.6%
  • Python 3.8%
  • CSS 0.2%
  • JavaScript 0.2%
  • Dockerfile 0.1%
Find a file
openhands 29ab1f373a fix(ai-generator): set saving throw proficiencies and add best-guess fallbacks on overview page
- Fix calculateProficiencies to include saving_throws from D&D API class data
- Add fallback using CLASS_SAVING_THROWS when API data doesn't include saving_throws
- Map D&D API abbreviated ability names (DEX, INT) to full names (Dexterity, Intelligence)
- Add inferAlignment(), inferName(), inferSavingThrows() inference functions
- Add alignment fallback to True Neutral when can't be inferred
- Add savingThrows field to CharacterPromptParse and overview page
- Display saving throw proficiencies on overview and confirm pages in AI wizard
- Pass savingThrows through from parsed result to editable params
- Remove useAiEnabled gate from CharacterAIGenerator
- Render AI wizard as modal overlay in CharacterGenerator
- Add 16 new tests for inference functions
2026-08-03 13:14:39 +00:00
backend fix(ai-generator): set saving throw proficiencies and add best-guess fallbacks on overview page 2026-08-03 13:14:39 +00:00
docs docs: update campaign module plan with timeline, session reports, map editor, and party integration 2026-07-31 15:46:06 +00:00
frontend fix(ai-generator): set saving throw proficiencies and add best-guess fallbacks on overview page 2026-08-03 13:14:39 +00:00
mcp-server refactor(mcp-server): remove source_book from homebrew import tools 2026-08-02 13:29:00 +00:00
shared fix(ai-generator): set saving throw proficiencies and add best-guess fallbacks on overview page 2026-08-03 13:14:39 +00:00
.dockerignore Fix .dockerignore: keep start-backend.sh in image (needed at runtime) 2026-07-27 17:17:55 +02:00
.gitignore Add mounts/vehicles dropdown, fix MCP server HTTP transport and port, pin mcp to v1 2026-08-01 13:58:12 +00:00
deploy.sh Harden Docker deployment: add .dockerignore, non-root backend, security headers, resource limits, disable sourcemaps 2026-07-27 16:38:47 +02:00
docker-compose-test.yml fix(ai-generator): set saving throw proficiencies and add best-guess fallbacks on overview page 2026-08-03 13:14:39 +00:00
docker-compose.yml agent: honor MCP_ENDPOINT env in containerized deployments 2026-08-02 06:22:22 +00:00
docker-nginx.conf Fix 413 error on map image upload: increase nginx client_max_body_size to 20m 2026-08-01 07:32:46 +00:00
docker-supervisord.conf chore: configurable default role for new users, docker config, equipment item id fix 2026-07-31 06:43:55 +00:00
Dockerfile Persist OAuth provider settings across container rebuilds 2026-07-29 07:00:46 +00:00
kill-services.sh feat: add dice rolling and action filtering to ActionsSection 2026-07-30 14:32:30 +00:00
package-lock.json Add mounts/vehicles dropdown, fix MCP server HTTP transport and port, pin mcp to v1 2026-08-01 13:58:12 +00:00
package.json Initial commit: D&D 5.5 Character Generator with homebrew support 2026-06-18 19:13:27 +02:00
README.md Merge remaining work: party service tests, character service updates, homebrew changes, frontend improvements 2026-08-01 07:37:33 +00:00
security.md Add user accounts, OAuth providers, character ownership/audit, party auth, and bug fixes 2026-07-28 14:47:44 +00:00
start-backend.sh Fix module resolution and Docker build issues 2026-07-17 11:59:38 +00:00

D&D 5.5 Character Generator

A comprehensive D&D 5.5 character generator with homebrew content support.

Built with React, TypeScript, Express, and Vite as an npm workspaces monorepo.

Architecture

dnd-character-generator/
├── backend/          # Express API server (port 3001)
├── frontend/         # Vite + React SPA (port 3000)
├── shared/           # Shared TypeScript types, constants, utils
├── docker-compose.yml
├── Dockerfile        # Single container: nginx (frontend) + supervisord (backend)
├── docker-nginx.conf
└── docker-supervisord.conf
  • Production: Single Docker container. Nginx serves the built frontend; supervisord manages Nginx + the Express backend.
  • Development: npm run dev starts both backend (ts-node-dev) and frontend (Vite dev server) concurrently. Vite proxies /api to localhost:3001.

Quick Start

npm install          # installs all workspaces (backend, frontend, shared)
npm run dev          # starts backend + frontend concurrently

Testing

# Backend (Jest)
cd backend && npm test

# Frontend (Vitest)
cd frontend && npm test

Deployment

docker compose up -d --build

Environment is configured via docker-supervisord.conf (production) or backend/.env (development).

Find your default login with Owner permissions with this command: sudo docker compose exec dndgen-test cat /var/log/backend.log | grep -A4 "DEFAULT OWNER ACCOUNT"

!! This will appear only once so save it !!

API

All routes are under /api. See backend/src/routes/ for the full route tree. Key groups:

  • /api/dnd/* — Proxy to D&D 5.5 API
  • /api/homebrew/* — Custom homebrew CRUD
  • /api/characters/* — Character management
  • /api/combined/* — Merged official + homebrew data
  • /api/parties/* / /api/party/inventory/* — Party management
  • /api/settings — App settings
  • /api/auth/* — Login, register, OAuth
  • /api/users/* / /api/roles/* — User and role administration