--- tags: - eventkit --- # EventKit — System Overview ## Vision EventKit is a **decentralised, [[04 - Federation Architecture|federated]]** [[01 - Inventory Management|inventory management]], [[02 - Planning Module|planning]], and [[03 - CRM Module|CRM]] 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: - Equipment goes **out and comes back** (rental cycle, not linear supply chain) - Assets live in **[[01 - Inventory Management#Cases & Packing|flight cases]]** and move between **warehouses and venues** - Everything is driven by **[[02 - Planning Module|event dates and schedules]]** - **[[01 - Inventory Management#Sub-hire Management|Sub-hire]]** between companies is a first-class workflow ### 2. Decentralised / Federated - Every company runs their **own instance** with full control over their data - Instances can **[[04 - Federation Architecture|federate]]** with trusted partners for cross-company workflows - No central authority or vendor lock-in - Equipment can be **[[04 - Federation Architecture#Global Asset Identity|tracked across company boundaries]]** via federation ### 3. Barcode / QR Code Scanning - Every asset, case, and warehouse location gets a **[[05 - Barcode and QR Scanning#QR Code Design|scannable QR code]]** - QR codes encode a **URL** — works with any phone camera or dedicated scanner - Scanning powers [[05 - Barcode and QR Scanning#Scanning Workflows|workflows]]: check-out, check-in, stocktake, case packing, sub-hire receive/return --- ## System Architecture ```mermaid 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 ```mermaid 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) | --- ## Related Documentation - [[01 - Inventory Management]] — Equipment, cases, locations, maintenance - [[02 - Planning Module]] — Events, crew, transport, scheduling - [[03 - CRM Module]] — Clients, pipeline, quotes - [[04 - Federation Architecture]] — Decentralised design & protocol - [[05 - Barcode and QR Scanning]] — Scanning workflows & label design - [[06 - Module Integration]] — Cross-module flows - [[07 - Technical Requirements]] — Non-functional requirements - [[08 - Open Questions]] — Remaining decisions