7.9 KiB
tags
| tags | ||
|---|---|---|
|
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 numberA-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.
Related Documentation
- 08-OpenQuestions — All 30 original questions now answered
- 00-DiscoveryQuestions — Round 1 answers
- 01-DiscoveryQuestions — Round 2 answers
- 07-TechnicalRequirements — Technical decisions made