vault backup: 2026-02-27 10:43:35
This commit is contained in:
216
Test/EventKit/DiscoveryQuestions/04-DiscoveryQuestions.md
Normal file
216
Test/EventKit/DiscoveryQuestions/04-DiscoveryQuestions.md
Normal file
@@ -0,0 +1,216 @@
|
||||
---
|
||||
tags:
|
||||
- eventkit
|
||||
- discovery-questions
|
||||
---
|
||||
|
||||
# Discovery Questions — Round 5
|
||||
|
||||
We're narrowing in on the final implementation details. This round focuses on **data architecture**, **notification specifics**, **multi-tenancy edge cases**, and **operational workflows**.
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ Data Architecture
|
||||
|
||||
### 1. Tenant Isolation (SaaS Mode)
|
||||
|
||||
For the shared-DB multi-tenancy with RLS — should tenants be able to:
|
||||
|
||||
- [ ] Share nothing (complete isolation, even separate schemas)
|
||||
- [ ] Share reference data (e.g. common product catalogues, venue databases)
|
||||
- [ ] Share everything except user data (federated approach within SaaS)
|
||||
- [x] Complete isolation via RLS — no cross-tenant data ever
|
||||
|
||||
> **Answer:** Federate using Federation Architecture
|
||||
|
||||
### 2. Data Retention Policy
|
||||
|
||||
How long should data be kept?
|
||||
|
||||
- [ ] Indefinitely (never auto-purge)
|
||||
- [x] Configurable retention per entity type (e.g. events: 5 years, audit logs: 7 years)
|
||||
- [ ] Configurable globally (e.g. "keep everything for 10 years")
|
||||
- [x] Follow Austrian/EU legal requirements (varies by document type)
|
||||
|
||||
> **Answer:**
|
||||
|
||||
### 3. File Versioning
|
||||
|
||||
When a file attached to an asset is updated (e.g. new manual version):
|
||||
|
||||
- [ ] Overwrite the old file
|
||||
- [x] Keep version history (v1, v2, v3)
|
||||
- [ ] Keep version history with diff/comparison view
|
||||
|
||||
> **Answer:**
|
||||
|
||||
---
|
||||
|
||||
## 🔔 Notifications
|
||||
|
||||
### 4. Notification Preferences
|
||||
|
||||
Should users control which notifications they receive?
|
||||
|
||||
- [x] Yes — granular per-event-type toggle (e.g. "notify me about overdue returns but not new quotes")
|
||||
- [ ] Yes — but only broad categories (e.g. "inventory alerts", "CRM updates")
|
||||
- [ ] No — admins configure notification rules globally
|
||||
|
||||
> **Answer:** Future feature
|
||||
|
||||
### 5. Email Templates
|
||||
|
||||
Should notification emails be customisable?
|
||||
|
||||
- [ ] Fixed templates (EventKit branding)
|
||||
- [ ] Tenant-branded templates (company logo, colours)
|
||||
- [ ] Fully customisable HTML templates per notification type
|
||||
- [x] Tenant-branded for MVP, full customisation later
|
||||
|
||||
> **Answer:**
|
||||
|
||||
---
|
||||
|
||||
## 🏢 Multi-Tenancy & Operations
|
||||
|
||||
### 6. Tenant Onboarding
|
||||
|
||||
For SaaS, how should new tenants be set up?
|
||||
|
||||
- [ ] Self-service sign-up (create account → start using immediately)
|
||||
- [x] Self-service with admin approval before activation
|
||||
- [x] Manual onboarding (admin creates tenant)
|
||||
- [ ] Self-service for MVP, approval flow later
|
||||
|
||||
> **Answer:**
|
||||
|
||||
### 7. Tenant Data Export
|
||||
|
||||
Should tenants be able to export all their data (GDPR Article 20)?
|
||||
|
||||
- [x] Yes — full data export in JSON/CSV at any time
|
||||
- [x] Yes — full export + ability to delete all data (right to be forgotten)
|
||||
- [ ] Admin-triggered export only
|
||||
|
||||
> **Answer:**
|
||||
|
||||
### 8. Tenant Limits / Quotas
|
||||
|
||||
Should the SaaS tier enforce limits?
|
||||
|
||||
- [ ] No limits (fair use policy)
|
||||
- [x] Soft limits with warnings (e.g. "you have 10,000 assets, consider upgrading")
|
||||
- [ ] Hard limits per plan (e.g. free: 100 assets, pro: 10,000, enterprise: unlimited)
|
||||
- [x] Decide pricing tiers later
|
||||
|
||||
> **Answer:**
|
||||
|
||||
---
|
||||
|
||||
## 📋 Operational Workflows
|
||||
|
||||
### 9. Return Inspection Detail
|
||||
|
||||
When equipment returns from an event, how detailed should the inspection be?
|
||||
|
||||
- [ ] Simple: scan asset → mark as returned → done
|
||||
- [ ] Standard: scan → condition check (good/damaged) → shelve
|
||||
- [x] Detailed: scan → per-item checklist → photos → condition update → cleaning queue → shelve
|
||||
- [ ] Configurable per product category
|
||||
|
||||
> **Answer:**
|
||||
|
||||
### 10. Consumable Allocation
|
||||
|
||||
How should consumables be tracked per event?
|
||||
|
||||
- [x] Estimated at planning stage, actual recorded after event
|
||||
- [ ] Deducted from stock when event is confirmed
|
||||
- [x] Deducted when physically dispatched (scan-based)
|
||||
- [ ] Flexible — user chooses per consumable type
|
||||
|
||||
> **Answer:**
|
||||
|
||||
### 11. Asset Reservation Rules
|
||||
|
||||
When equipment is reserved for an event, should:
|
||||
|
||||
- [ ] Hard reservation — cannot be booked for anything else in that window
|
||||
- [ ] Soft reservation — can be overridden with manager approval
|
||||
- [x] Configurable per event priority level
|
||||
|
||||
> **Answer:**
|
||||
|
||||
---
|
||||
|
||||
## 🔌 API & Developer Experience
|
||||
|
||||
### 12. API Documentation
|
||||
|
||||
How should the API be documented?
|
||||
|
||||
- [x] Auto-generated from Protobuf definitions (buf.build registry)
|
||||
- [ ] OpenAPI/Swagger (via ConnectRPC's REST mapping)
|
||||
- [ ] Both Protobuf docs + OpenAPI
|
||||
- [x] Minimal docs for now — just the .proto files
|
||||
|
||||
> **Answer:**
|
||||
|
||||
### 13. Plugin / Extension System
|
||||
|
||||
Should EventKit support third-party plugins or extensions?
|
||||
|
||||
- [ ] Yes — from the start (plugin API, hooks, event system)
|
||||
- [x] Yes — but later (design for it now, implement later)
|
||||
- [ ] No — keep it simple, extensibility via webhooks and API
|
||||
|
||||
> **Answer:**
|
||||
|
||||
### 14. Import from Other Systems
|
||||
|
||||
What systems might users migrate from?
|
||||
|
||||
- [x] Spreadsheets (Excel/Google Sheets)
|
||||
- [x] Rentman
|
||||
- [x] Flex Rental Solutions
|
||||
- [x] Current RMS
|
||||
- [x] EasyJob
|
||||
- [x] Custom / in-house systems
|
||||
- [x] Don't know yet — generic CSV import is enough for now
|
||||
|
||||
> **Answer:** All of the above, but optoinal feature for sumetimes in the future.
|
||||
|
||||
---
|
||||
|
||||
## 🎨 UI Detail
|
||||
|
||||
### 15. Table vs Card Views
|
||||
|
||||
For list pages (assets, events, contacts), should there be:
|
||||
|
||||
- [ ] Table view only (data-dense, sortable columns)
|
||||
- [ ] Card view only (visual, thumbnail-based)
|
||||
- [ ] Both — user toggles between table and card view
|
||||
- [x] Table default, card view for specific entities (e.g. assets with photos)
|
||||
|
||||
> **Answer:**
|
||||
|
||||
### 16. Keyboard Shortcuts
|
||||
|
||||
Beyond Cmd+K, should there be keyboard shortcuts for common actions?
|
||||
|
||||
- [x] Yes — full keyboard navigation (like Linear)
|
||||
- [ ] Basic shortcuts only (Cmd+N new, Cmd+S save, etc.)
|
||||
- [ ] Not needed for MVP
|
||||
|
||||
> **Answer:**
|
||||
|
||||
---
|
||||
|
||||
## Related Documentation
|
||||
|
||||
- [[00-DiscoveryQuestions]] — Round 1 answers
|
||||
- [[01-DiscoveryQuestions]] — Round 2 answers
|
||||
- [[02-DiscoveryQuestions]] — Round 3 answers
|
||||
- [[03-DiscoveryQuestions]] — Round 4 answers
|
||||
- [[07 - Technical Requirements]] — Technical decisions made
|
||||
Reference in New Issue
Block a user