vault backup: 2026-02-27 10:49:39
This commit is contained in:
135
Test/EventKit/00-SystemOverview.md
Normal file
135
Test/EventKit/00-SystemOverview.md
Normal file
@@ -0,0 +1,135 @@
|
||||
---
|
||||
tags:
|
||||
- eventkit
|
||||
---
|
||||
|
||||
# EventKit — System Overview
|
||||
|
||||
## Vision
|
||||
|
||||
EventKit is a **decentralised, [[04-FederationArchitecture|federated]]** [[01-InventoryManagement|inventory management]], [[02-PlanningModule|planning]], and [[03-CRMModule|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-InventoryManagement#Cases & Packing|flight cases]]** and move between **warehouses and venues**
|
||||
- Everything is driven by **[[02-PlanningModule|event dates and schedules]]**
|
||||
- **[[01-InventoryManagement#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-FederationArchitecture|federate]]** with trusted partners for cross-company workflows
|
||||
- No central authority or vendor lock-in
|
||||
- Equipment can be **[[04-FederationArchitecture#Global Asset Identity|tracked across company boundaries]]** via federation
|
||||
|
||||
### 3. Barcode / QR Code Scanning
|
||||
|
||||
- Every asset, case, and warehouse location gets a **[[05-BarcodeAndQRScanning#QR Code Design|scannable QR code]]**
|
||||
- QR codes encode a **URL** — works with any phone camera or dedicated scanner
|
||||
- Scanning powers [[05-BarcodeAndQRScanning#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-InventoryManagement]] — Equipment, cases, locations, maintenance
|
||||
- [[02-PlanningModule]] — Events, crew, transport, scheduling
|
||||
- [[03-CRMModule]] — Clients, pipeline, quotes
|
||||
- [[04-FederationArchitecture]] — Decentralised design & protocol
|
||||
- [[05-BarcodeAndQRScanning]] — Scanning workflows & label design
|
||||
- [[06-ModuleIntegration]] — Cross-module flows
|
||||
- [[07-TechnicalRequirements]] — Non-functional requirements
|
||||
- [[08-OpenQuestions]] — Remaining decisions
|
||||
Reference in New Issue
Block a user