Files
obsidian/Test/EventKit/00 - System Overview.md

5.8 KiB

tags
tags
eventkit

EventKit — System Overview

Vision

EventKit is a decentralised, 04 - Federation Architecture 01 - Inventory Management, 02 - Planning Module, and 03 - CRM Module platform purpose-built for the event industry. Each company hosts its own instance with full data sovereignty, while optional federation enables cross-company workflows like sub-hire tracking, equipment sharing, and inter-company asset visibility.

Business Model

Open core — free self-hosted with community support, paid SaaS with premium features.

MVP Scope

Build order: Inventory + Scanning → Planning → CRM → Federation

Target sectors for MVP:

  • 🔊 Audio (PA systems, microphones, mixing desks)
  • 💡 Lighting (moving heads, LED fixtures, dimmers)
  • 🔩 Rigging (truss, motors, chains, shackles)
  • Power distribution (distros, cables, generators)

Core Modules

Module Purpose
01 - Inventory Management Inventory Management Track equipment assets, flight cases, consumables, warehouse locations, maintenance, and availability
02 - Planning Module Event Planning Manage events end-to-end — pull lists, crew scheduling, transport/logistics, timelines, and venue specs
03 - CRM Module CRM Client relationships, sales pipeline, quoting, invoicing, and communication tracking

Key Differentiators

1. Event-Industry Specialised

Not a generic inventory tool — built around the realities of event production:

2. Decentralised / Federated

3. Barcode / QR Code Scanning


System Architecture

graph TB
    subgraph "Single Instance"
        UI["Web UI / PWA"]
        Scanner["Scanner Module"]
        API["API Server"]
        Fed["Federation Service"]
        Worker["Background Workers"]
        MQ[("NATS / Redis")]
        DB[(Database)]
        Files[(File Storage)]

        UI --> API
        Scanner --> API
        API --> DB
        API --> Files
        API --> Fed
        API --> MQ
        MQ --> Worker
        Worker --> DB
    end

    Fed <-->|"Federation Protocol\n(mTLS + signed requests)"| ExtFed["Other Instances"]

Module Interaction

graph LR
    CRM["CRM"] -->|"Client enquiry\n→ create event"| Planning["Planning"]
    Planning -->|"Reserve equipment\nfrom pull list"| Inventory["Inventory"]
    Planning -->|"Book crew &\narrange transport"| Resources["Crew & Transport"]
    Inventory -->|"Availability data &\npricing"| Planning
    Inventory -->|"Equipment costs"| CRM
    CRM -->|"Client & pricing"| Planning
    Planning -->|"Final costs & usage"| CRM

Terminology

Term Definition
Instance A single company's deployment of EventKit
Federation The protocol enabling inter-instance communication
Asset An individual, trackable piece of equipment (with serial number / UUID)
Product / Model A type of equipment — assets are instances of a product
Case / Flight Case A container holding multiple assets, tracked as its own entity
Kit / Set A logical grouping of equipment that typically deploys together
Event A job/gig — the core planning entity
Pull List The equipment list required for a specific event
Sub-hire Borrowing or lending equipment between companies
Consumable Items that don't return (tape, batteries, haze fluid)