Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Repository files navigation

majora

Repository for information for RP games

Build Status Codacy Badge Codacy Badge

majora

Current Version: 0.70.0

Next Release: 0.70.1

About

Majora is an RPG campaign management system for tabletop roleplaying games. It allows users to organise campaigns by registering games and their associated content: player characters (PCs), non-player characters (NPCs), locations, quests, diary entries, links, and images.

The application is structured as a Django REST API backend and a React single-page application frontend, served together through the Tent reverse proxy.

Technology Stack

Backend

  • Python 3.11 / Django 5 — Application framework
  • Django REST Framework — API layer
  • MySQL 8 — Relational database
  • Gunicorn — Production WSGI server
  • Poetry — Dependency management
  • pytest + pytest-django — Test suite
  • ruff — Linting (max line length: 100)

Frontend

  • React 19 + React Bootstrap 5 — UI framework
  • Vite — Build tool and dev server
  • Jasmine + c8 — Tests and coverage
  • ESLint — Linting
  • Yarn — Package manager

Infrastructure

  • Docker & Docker Compose — Containerisation and orchestration
  • darthjee/tent — Reverse proxy (port 3000)

Project Structure

majora/
├── backend/              # Django backend (Python)
├── frontend/             # React + Vite frontend
├── proxy/                # PHP proxy (dartjee/tent) configuration and extensions
├── crawler/              # STL-site crawler client (Node.js scaffold)
├── dockerfiles/          # Dockerfiles for each service
├── docker_volumes/       # Bind-mounted volumes (static assets, proxy config)
├── docs/                 # Project documentation
└── docker-compose.yml    # Full stack service definitions

Development Setup

Prerequisites

First Time Setup

  1. Clone the repository:

    git clone https://github.com/darthjee/majora.git
    cd majora
  2. Create the .env file and run database migrations:

    make setup
  3. Review and adjust .env values if needed.

Running the Application

# Start the full stack (proxy + backend + frontend dev server)
make dev-up

The application will be available at:

Development Shells

# Open a backend shell
make dev

# Open a test shell
make tests

Running Tests

Inside the backend shell (make dev):

poetry run pytest

Inside the test shell (make tests):

poetry run pytest

Frontend tests (from frontend/):

yarn test        # run Jasmine specs
yarn coverage    # generate coverage with c8
yarn lint        # lint source and specs

About

Repository for information for RP games

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages