Files
obsidian/Test/EventKit/DiscoveryQuestions/02-DiscoveryQuestions.md

7.9 KiB

tags
tags
eventkit
discovery-questions

Discovery Questions — Round 3

Now that all high-level decisions are made, this round focuses on implementation details, edge cases, and workflow specifics that will shape the actual code.


📦 Inventory — Asset Model

1. Asset Numbering Scheme

How should human-readable asset IDs work? Examples:

  • SM58-001, SM58-002 — product prefix + sequential number
  • A-2024-00001 — company prefix + year + sequence
  • User-defined per product category
  • No scheme — just UUID, users label however they want

Answer: Product prefix + sequential number for human readable id, UUID for internal id

2. Asset Condition Tracking

How granular should condition states be?

  • Simple: Good / Damaged / Written Off
  • Detailed: New / Excellent / Good / Fair / Needs Repair / Damaged / Written Off
  • User-definable condition states

Answer: Simple: Good / Damaged / Written Off, but user-definable

3. Kit / Set Behaviour

When a Kit is added to a pull list, should:

  • All items in the Kit be individually reserved (items tracked separately)
  • The Kit be treated as a single unit (all-or-nothing)
  • Both options — user chooses per Kit

Answer: Both options — user chooses per Kit. Default option is all-or-nothing.


🗂️ Data & Schema

4. Soft Delete vs Hard Delete

Should deleted records be:

  • Soft deleted (marked as deleted, hidden from UI, recoverable)
  • Hard deleted (permanently removed)
  • Soft delete by default, hard delete with admin action after a retention period

Answer: Soft delete by default, hard delete with admin action after a retention period.

5. Audit Trail Depth

How much should be logged?

  • Just entity-level changes (who changed what, when)
  • Field-level change history (old value → new value for every field)
  • Full audit trail with field-level diff (like a Git history for every record)

Answer: Field-level change history (old value → new value for every field). Full autit train in the future

6. Multi-Warehouse

Can a company have multiple warehouse locations?

  • Yes — from the start
  • No — single warehouse per instance for MVP
  • Yes, but only a "primary" + "secondary" distinction

Answer: Yes — from the start


💰 Accounting & Finances

7. Tax Calculation

How should VAT/tax work?

  • Single tax rate per instance (e.g. 20% Austrian USt for everything)
  • Per-product tax rates (some items exempt, some reduced rate)
  • Per-product + per-customer tax logic (reverse charge for EU B2B)
  • Configurable — I want flexibility

Answer: Per-product + per-customer tax logic (reverse charge for EU B2B). Configurable — I want flexibility

8. Payment Methods

Which payment methods should be tracked?

  • Just record that a payment was made (manual)
  • Bank transfer details (IBAN, reference)
  • Online payments (Stripe, PayPal integration)
  • Start manual, add online payments later

Answer: Just record that a payment was made (manual). Online Payment's arn't planned, but integration with Bank APIs for automatic payment tracking is planned.

9. Deposit / Advance Payments

Should the system support deposits (e.g. 50% upfront, 50% after event)?

  • Yes — multiple partial payments against an invoice
  • Yes — separate deposit invoice + final invoice
  • Not needed for MVP

Answer: Yes — separate deposit invoice + final invoice


👥 Users & Permissions

10. Custom Roles

Beyond the predefined roles (Admin, Manager, Planner, Warehouse, Sales, Crew, Read-only), should admins be able to create fully custom roles with granular permissions?

  • Yes — from the start
  • No — predefined roles are enough for MVP
  • Predefined roles, but with optional per-role permission overrides

Answer: Yes, User and Role Management is planned with Keycloak as an authentication provider. Roles should be managed in Keycloak, not in the application. The application should only read the roles from Keycloak. And granting Permissions to roles should also be handled in our application.

11. User Invitation Flow

How should new users be onboarded?

  • Admin creates account, sends login credentials
  • Email invitation with sign-up link
  • Both — admin creates, user sets own password via email link

Answer: All users shoud be confirmed by an admin in some way. So the admin creates the user and sends an email invitation to the user. The user can then set his own password via email link.

12. SSO Providers

Which SSO providers should be supported for MVP?

  • None — email/password only for MVP
  • Google OAuth
  • Microsoft / Azure AD
  • Generic OIDC (works with Keycloak, Auth0, etc.)
  • All of the above

Answer: Generic OIDC (works with Keycloak, Auth0, etc.)


📋 Quoting & Sales

13. Quote Versioning

When a quote is revised, should:

  • The original be overwritten
  • Each revision be saved as a separate version (v1, v2, v3...)
  • Revision history tracked but only latest version visible to client

Answer: Each revision be saved as a separate version (v1, v2, v3...)

14. Quote → Invoice Flow

How should a confirmed quote become an invoice?

  • Auto-generate invoice from quote (one click)
  • Copy quote to invoice draft for manual adjustment
  • Both options

Answer: Copy quote to invoice draft for manual adjustment

15. Client Approval Workflow

For the client portal, when a client approves a quote:

  • Instant approval — quote status changes immediately
  • Approval with e-signature (legally binding)
  • Approval with comment / conditions
  • Simple approval for MVP, e-signature later

Answer: Approval with e-signature (legally binding) and comments / conditions.


🏗️ Event Workflow

16. Event Phases

Should events have customisable phases, or a fixed lifecycle?

  • Fixed: Draft → Confirmed → In Progress → Completed → Closed
  • Customisable phases per event type
  • Fixed lifecycle with optional sub-statuses

Answer: Customisable phases per event type, but default phases should be provided. Draft - Confirmed - In Progress - Completed - Closed

17. Recurring Events

Should recurring events be supported (e.g. weekly residency at same venue)?

  • Yes — template-based with auto-generation
  • Yes — clone previous event
  • Not needed for MVP

Answer: Yes — template-based with auto-generation and clone previous event

18. Projects / Multi-Day Events

Should a "Project" (grouping multiple related events) be a first-class entity?

  • Yes — project contains multiple events, shared budget/client
  • No — events are standalone, just tag them for grouping
  • Simple grouping for MVP, full project entity later

Answer: Events are standalone, but can be grouped in projects. Projects can have multiple events, shared budget/client. Simple grouping for MVP, full project entity later.


🔐 Security & Auth

19. Session Management

How should user sessions work?

  • JWT with short expiry + refresh token
  • Session-based (server-side session store)
  • JWT for API, session for web UI

Answer: Handled by Keycloak

20. API Key Scoping

Should API keys be scoped to specific permissions/modules?

  • Yes — granular scopes (e.g. inventory:read, planning:write)
  • No — API keys get full access of the user who created them
  • Start simple (full access), add scopes later

Answer: Yes — granular scopes (e.g. inventory:read, planning:write). Start simple (full access), add scopes later.