Skip to content

Bohndiggin/storymaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

238 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฐ Storymaster

Visual Story Plotting & World-Building Tool for Creative Writers

GitHub Python Version Platform

Storymaster is a comprehensive PySide6-based creative writing application that seamlessly combines visual story structure planning with detailed world-building capabilities. Perfect for novelists, screenwriters, and game designers who need to organize complex narratives and rich fictional worlds.

โœจ Key Features

๐Ÿ“ˆ Litographer - Visual Story Plotting

  • Interactive node-based interface for plotting story beats with drag-and-drop functionality
  • Multiple plot support - manage main plots, subplots, and character arcs simultaneously
  • Tension mapping with visual flow indicators (Rising, Flat, Point, Lower)
  • Customizable node shapes - rectangles, circles, diamonds, stars, hexagons, triangles
  • Linked-list navigation for easy story flow management
  • Integrated scene notes and beat descriptions

๐ŸŽญ Character Arcs

  • Individual character development tracking with dedicated arc management
  • Arc point system for plotting character growth and transformation
  • Character-to-node connections linking story beats to character development
  • Arc type customization for different character journey patterns

๐ŸŒ Lorekeeper - World Building Database

  • Character management - detailed actor profiles with relationships, backgrounds, classes, and races
  • Faction system - complex organizational structures with hierarchies and conflicts
  • Location catalog - comprehensive setting database with descriptions and connections
  • Historical timeline - track events with multi-entity involvement
  • Object repository - manage items, artifacts, and world elements
  • Dynamic relationship mapping between all entities

๐Ÿ› ๏ธ Technical Excellence

  • SQLite backend - completely offline, portable, and backup-friendly
  • MVC architecture - clean separation of concerns with SQLAlchemy ORM
  • Multi-user support - user accounts with complete data isolation
  • Project isolation - multiple stories/worlds in organized workspaces
  • Professional dark theme - eye-friendly interface for long writing sessions
  • Cross-platform compatibility - Windows, macOS, and Linux support

๐Ÿš€ Quick Start

๐ŸŒŸ Instant Installation (Recommended)

The fastest way to get started - no setup required!

# Install and run with uvx (Python 3.8+ required)
uvx run git+https://github.com/Bohndiggin/storymaster.git

# Alternative: Install with pip
pip install git+https://github.com/Bohndiggin/storymaster.git
storymaster

This method automatically handles dependencies, database setup, and launches the application!

๐Ÿ”ง Development Installation

For contributors and developers who want to modify the code:

git clone https://github.com/Bohndiggin/storymaster.git
cd storymaster

# Create virtual environment
python -m venv .venv
source .venv/bin/activate    # Linux/Mac
.venv\Scripts\activate       # Windows

# Install dependencies
pip install -r requirements.txt

# Initialize database
python scripts/init_database.py

# Load sample data (optional)
python scripts/seed.py

# Start Storymaster
python storymaster/main.py

๐Ÿ’ป Windows Executable

Download ready-to-run executable from our releases:

  • No Python installation required
  • All dependencies included
  • Just download, extract, and run storymaster.exe
  • Available in GitHub Releases

๐Ÿง Linux AppImage

Portable application for all Linux distributions:

  • Download the .AppImage file from releases
  • Make executable: chmod +x Storymaster-x86_64.AppImage
  • Run directly: ./Storymaster-x86_64.AppImage
  • Works on any Linux distribution without installation

๐Ÿ“ Architecture

storymaster/
โ”œโ”€โ”€ storymaster/
โ”‚   โ”œโ”€โ”€ model/              # Data layer
โ”‚   โ”‚   โ”œโ”€โ”€ database/       # SQLAlchemy models and schema
โ”‚   โ”‚   โ”œโ”€โ”€ common/         # Shared model components
โ”‚   โ”‚   โ”œโ”€โ”€ litographer/    # Story plotting data models
โ”‚   โ”‚   โ””โ”€โ”€ lorekeeper/     # World-building data models
โ”‚   โ”œโ”€โ”€ view/               # UI components (PySide6)
โ”‚   โ”‚   โ”œโ”€โ”€ common/         # Shared UI elements & user management
โ”‚   โ”‚   โ”œโ”€โ”€ litographer/    # Story plotting interface
โ”‚   โ”‚   โ”œโ”€โ”€ lorekeeper/     # World-building interface
โ”‚   โ”‚   โ””โ”€โ”€ character_arcs/ # Character development interface
โ”‚   โ”œโ”€โ”€ controller/         # Business logic
โ”‚   โ”‚   โ””โ”€โ”€ common/         # Shared controllers & user management
โ”‚   โ””โ”€โ”€ main.py            # Application entry point
โ”œโ”€โ”€ tests/                  # Comprehensive test suite
โ”‚   โ”œโ”€โ”€ model/             # Database and logic tests
โ”‚   โ”‚   โ”œโ”€โ”€ database/      # Schema and test data
โ”‚   โ”‚   โ”œโ”€โ”€ litographer/   # Story plotting tests
โ”‚   โ”‚   โ””โ”€โ”€ lorekeeper/    # World-building tests
โ”‚   โ””โ”€โ”€ fixtures/          # Test utilities and data
โ”œโ”€โ”€ assets/                 # Application assets
โ”‚   โ”œโ”€โ”€ storymaster_icon.ico    # Windows executable icon
โ”‚   โ”œโ”€โ”€ storymaster_icon.svg    # Vector icon (cross-platform)
โ”‚   โ””โ”€โ”€ storymaster_icon_*.png  # Various sizes for system integration
โ”œโ”€โ”€ scripts/                # Build and utility scripts
โ”‚   โ”œโ”€โ”€ build_executable.py        # Cross-platform executable builder
โ”‚   โ”œโ”€โ”€ build_standalone.py        # Standalone executable builder (recommended)
โ”‚   โ”œโ”€โ”€ build_fast.py              # Fast development build
โ”‚   โ”œโ”€โ”€ build_appimage.py          # Linux AppImage builder
โ”‚   โ”œโ”€โ”€ build_rpm.py              # Linux RPM package builder
โ”‚   โ”œโ”€โ”€ build_macos.py            # macOS app bundle builder
โ”‚   โ”œโ”€โ”€ run_tests.py              # Lightweight test runner
โ”‚   โ”œโ”€โ”€ run_comprehensive_tests.py # Comprehensive test suite with coverage
โ”‚   โ”œโ”€โ”€ init_database.py          # Database initialization
โ”‚   โ”œโ”€โ”€ migrate_database.py       # Database migration tool
โ”‚   โ””โ”€โ”€ seed.py                  # Sample data loader
โ”œโ”€โ”€ storymaster.spec          # PyInstaller configuration
โ”œโ”€โ”€ storymaster.spec.rpm      # RPM package specification
โ””โ”€โ”€ requirements.txt         # Python dependencies

๐ŸŽฎ Using Storymaster

Story Plotting Workflow

  1. Create Project - Start with a new story workspace
  2. Add Plots - Create main plot and subplots using the Plot menu
  3. Build Structure - Add story nodes with custom shapes and connections
  4. Organize Sections - Group scenes into acts or chapters
  5. Add Details - Include notes, tension levels, and scene descriptions

World Building Workflow

  1. Design Characters - Create actors with detailed backgrounds
  2. Build Locations - Establish settings with rich descriptions
  3. Create Factions - Define organizations and their relationships
  4. Track History - Record significant events and timelines
  5. Manage Objects - Catalog important items and artifacts

Plot Management

Access via the Plot menu:

  • New Plot - Create additional storylines or character arcs
  • Switch Plot - Navigate between different plot threads
  • Delete Plot - Remove unused or completed plots
  • Open Project - Switch between different story worlds

User Management

Access via the User menu:

  • New User - Create additional user accounts for multi-user environments
  • Switch User - Change active user without restarting the application
  • Manage Users - Add, switch, or delete user accounts
  • Data Isolation - Each user maintains separate stories, settings, and data

๐Ÿงช Development

Manual Development Setup

# Clone repository
git clone https://github.com/Bohndiggin/storymaster.git
cd storymaster

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows

# Install dependencies
pip install -r requirements.txt

# Initialize database
python scripts/init_database.py

# Load sample data
python scripts/seed.py

# Run application
python storymaster/main.py

Testing

# Run all tests
python scripts/run_tests.py

# Run pytest tests
pytest tests/ -v

# Run specific test modules
pytest tests/model/litographer/ -v
pytest tests/controller/litographer/ -v

# Run comprehensive tests with coverage
python scripts/run_comprehensive_tests.py

Code Quality

# Format code
black .

# Sort imports
isort .

# Type checking (if mypy is installed)
mypy storymaster/

Database Management

# Initialize database
python scripts/init_database.py

# Load sample data
python scripts/seed.py

# Handle schema updates
python scripts/migrate_database.py

๐Ÿ“ฆ Distribution & Building

Storymaster provides multiple distribution options for different platforms and use cases:

Executable Builds

# Standalone executables (recommended for distribution)
python scripts/build_standalone.py

# Traditional PyInstaller build
python scripts/build_executable.py

# Linux AppImage
python scripts/build_appimage.py

# Fast development build
python scripts/build_fast.py

# Platform-specific builds
python scripts/build_rpm.py         # Linux RPM packages  
python scripts/build_macos.py       # macOS app bundles

Distribution Features

  • Windows: Standalone .exe with all dependencies
  • Linux AppImage: Universal binary that runs on any distribution
  • Linux RPM: Native packages for Red Hat-based systems
  • macOS: Native .app bundles with installer DMG
  • Cross-platform: Portable executables for development/testing

Icon Assets

All build systems use proper icons from the assets/ directory:

  • storymaster_icon.ico - Windows executables
  • storymaster_icon.svg - Cross-platform vector icon
  • storymaster_icon_*.png - Various sizes for system integration

๐Ÿ—„๏ธ Data Management

Database Features

  • SQLite backend - Single file database (storymaster.db)
  • Portable storage - Copy .db file to backup entire project
  • Offline operation - No internet connection required
  • Relational integrity - Foreign key constraints and data validation
  • Sample data included - Example characters, locations, and story structure

Backup Strategy

Simply copy storymaster.db to preserve all your work:

cp storymaster.db backup/storymaster_backup_$(date +%Y%m%d).db

๐Ÿ”ง Troubleshooting

Common Issues

Environment Problems:

  • ModuleNotFoundError โ†’ Ensure virtual environment is activated
  • Database connection failed โ†’ Run python scripts/init_database.py
  • PySide6 import error โ†’ Reinstall with pip install PySide6

Database Issues:

  • Corrupt database โ†’ Delete storymaster.db and run init_database.py
  • Missing tables โ†’ Run python scripts/init_database.py to recreate schema
  • Performance issues โ†’ Consider archiving old projects

UI Problems:

  • Blank interface โ†’ Check console for PySide6 errors
  • Node positioning issues โ†’ Clear cache and restart application
  • Menu not responding โ†’ Verify database connection

Getting Support

  • ๐Ÿ“– Check CLAUDE.md for detailed technical documentation
  • ๐Ÿ› Report bugs at GitHub Issues
  • ๐Ÿ’ก Request features via GitHub Issues with the "enhancement" label
  • ๐Ÿ“ Review sample data to understand the data model

๐ŸŒŸ Contributing

We welcome contributions! Please see our development workflow:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style (Black formatting)
  • Add tests for new features
  • Update documentation as needed
  • Ensure all tests pass before submitting

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Built with PySide6 (Qt for Python) for the user interface
  • Database powered by SQLAlchemy ORM
  • Inspired by professional story development tools and writing methodologies

Start crafting your next great story today! ๐Ÿ“šโœจ

For detailed technical documentation, see CLAUDE.md

About

Edit story lines and lore about your stories.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages