An interactive map application for Dungeons & Dragons campaigns. Built with React (TypeScript), Django/GraphQL, and PostgreSQL, containerized with Docker.
- Interactive map viewing and editing
- Support for Underdark and Elturel maps
- Edit mode for dungeon masters
- Frontend: React, TypeScript
- Backend: Django, GraphQL (Strawberry/Graphene)
- Database: PostgreSQL
- Infrastructure: Docker, Docker Compose
Open your web browser and navigate to:
Frontend (Main App): http://localhost:3000
Backend API/GraphQL: http://localhost:8000
- Docker Desktop installed and running
- Copy
.env.exampleto.envand fill in the values:
cp backend/.env.example backend/.env
- Then edit
backend/.envwith your actualDB_PASSWORD,SECRET_KEY, etc.
-
Make sure Docker Desktop is running
-
Open Command Prompt or PowerShell and navigate to your project:
cd C:\Users\beebs\PycharmProjects\dnd-interactive-maps -
Start all services with Docker Compose:
docker-compose up --build -
Wait for all services to start – you'll see messages like:
database system is ready to accept connections(Database ready)Watching for file changes with StatReloader(Backend ready)webpack compiled successfullyorCompiled successfully!(Frontend ready)
-
Open your browser to:
- http://localhost:3000 – to view the React app
Press Ctrl+C in the terminal where docker-compose is running, then run:
docker-compose down
After the first build, you can start faster without rebuilding:
docker-compose up
Only use --build if you've changed dependencies or Dockerfiles.
To run frontend tests (React/TypeScript with Jest):
docker-compose exec frontend npm test
To run backend tests (Django with PostgreSQL):
- Ensure the app is running:
docker-compose up --build - Run tests:
docker-compose exec backend python manage.py test