PBS Planning - Changelog
All notable changes to the PBS Planning documentation will be documented in this file.
The format is based on Keep a Changelog.
[4.8.0] - 2025-12-09
Changed
Terminology Consistency - Project Status
- Updated
project.statusterminology: Changed frompreliminarytoplanningfor consistency- Updated schema.dbml field definition:
status varchar [not null, default: 'planning', note: 'planning | confirmed | completed'] - Updated all schema documentation and comments
- Updated docs/views.md references
- Updated docs/database/entities-reference.md
- Reason: UI prototypes use "Planning" status; schema now matches UI terminology
- Status flow:
planning → confirmed → completed
- Updated schema.dbml field definition:
Technical Notes
- Schema version: 4.8.0
- Files changed:
schema.dbml(lines 461, 507, 1165, 1287)docs/views.md(line 676)docs/database/entities-reference.md(lines 445, 458, 469)
- No database migration needed: This is a terminology update; value remains a varchar field
[4.7.1] - 2025-12-02
Changed
Project Notes - Rich Text Support
- Updated
projects.notesfield: Added rich text/HTML formatting support- Frontend can now use rich text editor (bold, italic, strikethrough, lists, etc.)
- Field type remains
text(stores HTML markup) - Consistent with
contract_templatefields that also support HTML - Enables better project documentation with formatted notes
Technical Notes
- Schema version: 4.7.1
- Files changed:
schema.dbml(line 483) - No database migration needed: Field type unchanged, just clarified HTML support
[4.7.0] - 2025-11-28
🎯 Manual PM Confirmation Workflow
This is a MINOR release restoring PM manual confirmation after crew accepts offers.
Changed
Assignment Offers Workflow - Manual PM Confirmation Required
- Restored PM confirmation step: Crew acceptance no longer creates assignment automatically
- OLD (v4.6):
pending → accepted → assignment created immediately - NEW (v4.7):
pending → accepted → [PM confirms] → confirmed → assignment created
- OLD (v4.6):
- New status:
confirmed: Added toassignment_offers.statusenum- Full status list:
pending | accepted | confirmed | declined | negotiating
- Full status list:
acceptednow means "needs PM action": Changed from green (done) to yellow (warning)- Visual indicator that PM confirmation is required
- PM must manually verify and confirm each acceptance
Status Colors Updated (v4.7)
unassigned: ○ Light Grey #e9ecef - No person assigned yet
selected: 👤 Light Blue #d1ecf1 - PM picked person, drafting offer
pending: ⏳ Blue #cce5ff - Offer sent, awaiting crew response
accepted: 👤✓ Yellow #fff3cd - Crew accepted, PM MUST CONFIRM (action needed!)
negotiating: 👤💬 Purple #e2d9f3 - Crew wants to discuss rates
declined: 👤✕ Red #f8d7da - Crew rejected offer
confirmed: ✅ Green #d4edda - PM confirmed booking, assignment created
active: 🎬 Dark Green #c3e6c3 - Project underway, crew working
completed: ✔️ Grey #e2e3e5 - Assignment finished
cancelled: 🚫 Red #f8d7da - Assignment cancelled
Note: Crew response statuses (accepted, negotiating, declined) all use 👤 person icon to visually indicate crew actions.
Why This Change?
Simplicity & PM Control Principles:
- PM verifies crew response is genuine
- PM can add internal notes before final confirmation
- PM checks for conflicts before creating assignment
- PM stays in control of all bookings (aligns with project principles)
- Consistent workflow: all offer responses require PM action
Workflow States (Updated v4.7)
- Unassigned: Function exists, no person selected
- Selected: PM picks person, drafting offer
- Pending: Offer sent, awaiting crew response (
status='pending') - Accepted: Crew accepts, PM must confirm (
status='accepted', ⚠️ Yellow) - Confirmed: PM confirms booking (
status='confirmed', ✅ Green) → Assignment created - Negotiating: Crew wants to discuss rates (
status='negotiating') - Declined: Crew rejects offer (
status='declined')
Updated
Documentation Changes
- Updated
schema.dbml: Version 4.7, updated status workflow notes - Updated
docs/user-cases/02-admin-staffing.md: UC-05 now shows manual confirmation flow - Updated all prototype config.js files: Added 'accepted' status with yellow warning colors
Database Changes
- Updated
assignment_offers.statusenum: Added 'confirmed' value - Updated workflow: Assignment creation moved from crew acceptance to PM confirmation
Technical Notes
- Schema version: 4.7
- Backward compatible: Existing 'confirmed' assignments unaffected (status on
assignmentstable) - Prototype version: 1.5
- Migration: No data migration needed (just enum update)
[4.6.1] - 2025-11-25
🎯 Selected Crew Tracking on Project Functions
This is a PATCH release refining the status workflow architecture based on architectural review.
Added
Selected Crew Tracking on Project Functions
-
Added
selected_crew_profile_idfield toproject_functionstable- Tracks draft crew selection during planning phase
- Can change freely until offer is sent
- Persists across sessions (not UI-only)
- Enables multi-PM collaboration on same project
-
Added
assignment_idfield toproject_functionstable- Links function slot to confirmed assignment once crew accepts
- Provides direct relationship: function → assignment
- Simplifies grid view queries
Changed
Workflow Architecture Refinement
-
"Selected" state now lives in database on
project_functions.selected_crew_profile_id- OLD approach (v4.6.0): Described as "UI-only state"
- NEW approach (v4.6.1): Stored in database for persistence and collaboration
-
Cleaner separation of concerns:
project_functions.selected_crew_profile_id= Draft selection (can change freely)assignment_offerstable = Only created when offer actually sentproject_functions.assignment_id= Link to confirmed booking
Grid View Status Logic (Updated)
// Determine row status:
if (project_function.assignment_id) → show assignment.current_status
else if (has_offer_record) → show offer.status
else if (project_function.selected_crew_profile_id) → show 'selected'
else → show 'unassigned'
Technical Notes
- Schema: 2 new fields on
project_functionstable - Indexes: Added indexes on
selected_crew_profile_idandassignment_id - Migration: Both fields nullable, backward compatible
[4.6.0] - 2025-11-25
🎯 Simplified Assignment Status Workflow & Complete Project Activity Logging
This is a MINOR release simplifying the offer acceptance workflow and adding comprehensive project event tracking.
Changed
Assignment Offers Workflow Simplification
- Removed PM confirmation step: Crew acceptance now creates assignment immediately
- OLD:
pending → accepted → [PM confirms] → converted → assignment created - NEW:
pending → accepted → assignment created immediately
- OLD:
- Removed status values:
withdrawnandconvertedfromassignment_offers.status- Simplified to:
pending | accepted | declined | negotiating
- Simplified to:
- Declined offers stay visible: When crew declines, offer remains in declined state until PM selects another person
- PM must explicitly create new offer for different crew member
- Provides clear audit trail of who declined what
Workflow States (UI + Database)
- Unassigned: Function exists, no person selected (no offer record)
- Selected: PM picks person, drafting offer (UI-only state, no database record)
- Pending: Offer sent, awaiting crew response (
status='pending') - Accepted: Crew accepts → Assignment created immediately (
status='accepted') - Negotiating: Crew wants to discuss rates (
status='negotiating') - Declined: Crew rejects, stays declined until PM selects new person (
status='declined') - Confirmed: Assignment created, crew officially booked (
assignments.current_status='confirmed')
Added
Project Activity Logs (New Table)
- Added
project_activity_logstable to schema.dbml- Complete audit trail for all project-related events
- Tracks: project changes, function additions, offers, status updates, assignments
- Flexible JSON
changesfield for before/after values - Human-readable
descriptionfor timeline display
Tracked Events:
- Project changes: dates, status, budget, location modifications
- Function management: roles added/removed/updated
- Offer lifecycle: created, sent, accepted, declined, negotiating
- Assignment management: created, updated, cancelled
- Budget & equipment: items added/modified
Example Event:
{
"event_type": "offer_declined",
"entity_type": "assignment_offer",
"entity_id": "uuid",
"description": "Lisa Berg declined offer for EVS Operator",
"user_name": "Lisa Berg (crew response)",
"changes": {"status": {"old": "pending", "new": "declined"}},
"created_at": "2025-11-25T14:30:00Z"
}
Updated Documentation
- ✅
schema.dbml- Updated version to 4.6, simplified offer status, added project_activity_logs table - ✅
docs/database/schema.md- Updated workflow diagrams and status descriptions - 🔄
docs/user-cases/02-admin-staffing.md- Workflow updates in progress - 🔄
docs/views.md- Status badge specifications in progress - 🔄
website/static/proto/grid-view/- Prototype status updates in progress
Migration Notes
- Database: Remove status values 'withdrawn' and 'converted' from enum constraints
- Backend: Update offer acceptance logic to create assignments immediately
- Frontend: Remove PM confirmation step from offer review workflow
- Frontend: Add project activity timeline view showing all events
[4.5.1] - 2025-11-20
🔧 Prototypes Integration & Build Fix
This is a PATCH release fixing webpack build conflicts and integrating prototypes into documentation navigation.
Fixed
- Resolved webpack compilation error: "Multiple assets emit different content to the same filename index.html"
- Moved prototypes from
/prototypes/to/website/static/proto/ - Updated
docusaurus.config.jsto serve prototypes as static files only - Removed conflicts between Docusaurus routing and static HTML serving
- Moved prototypes from
Changed
- Prototypes now accessible at
/proto/instead of/prototypes/- Prototypes Gallery:
/proto/ - Create Project Wizard:
/proto/create-project/ - Grid View:
/proto/grid-view/
- Prototypes Gallery:
- Added "🎨 Prototypes" to documentation sidebar
- Created
docs/prototypes-overview.mdas gateway page - Links to prototypes gallery with descriptions of available prototypes
- Created
- Updated all prototype links in documentation to use new
/proto/path
[4.5.0] - 2025-11-20
🎯 Create Project - Equipment, Other Costs & Hotel Estimates
This is a MINOR release expanding the Create Project wizard to include equipment, miscellaneous costs, and hotel cost estimation.
Added
Hotel Cost Estimation (Schema Change)
- Added
target_hotel_rate_centsfield toproject_functionstable- Stores estimated hotel cost per night per person for budget planning
- Optional field (nullable)
- Added
estimated_hotel_nightsfield toproject_functionstable- Stores expected number of hotel nights per person
- Optional field (nullable)
- Budget calculation formula:
quantity × estimated_hotel_nights × target_hotel_rate_cents - Estimated vs Actual tracking:
- Estimated: Stored in
project_functionsduring project creation - Actual: Tracked in
hotel_bookingstable when hotels are booked per assignment
- Estimated: Stored in
Changed
Create Project Wizard Expansion (View 1.6)
- Updated Create Project wizard from 2 steps to 3 steps
- Step 1: Basic Information (unchanged)
- Step 2: Crew Roles (renamed from "Required Roles", now uses two-column layout)
- Added hotel cost estimate inputs (nights and rate per night)
- Budget breakdown shows crew day rates and hotel costs separately
- Step 3: Equipment & Other Costs (NEW)
- Added equipment management to project creation
- Company-owned equipment selection from inventory
- Quantity, days, and daily rate input
- Automatic cost calculation (quantity × days × rate)
- Added other costs tracking for miscellaneous expenses
- Free-text description field
- Amount and currency input
- Examples: venue rental, catering, transportation
- Enhanced budget calculations to include all cost types
- Crew day rates (work + travel days from Step 2)
- Hotel costs estimated (from Step 2)
- Equipment costs (from Step 3)
- Other costs (from Step 3)
- Complete budget breakdown with percentage used
- Updated two-column layout pattern for Steps 2 and 3
- Left column: Form to add new items
- Right column: List of added items + budget summary
- Real-time updates when items added/removed
Database Integration
- Added
project_equipmenttable usage in UC-03 - Added
project_budget_itemstable usage in UC-03 - Updated SQL examples to show equipment and cost creation
Documentation Updates
- Updated
/docs/views.md- View 1.6 Create Project specification - Updated
/docs/user-cases/01-admin-project-management.md- UC-03 Create Project - Updated
/prototypes/create-project/index.html- Interactive prototype - Updated
/prototypes/index.html- Prototype listing
Technical Details
- Equipment rates auto-fill from company inventory
- Hotel cost estimates are optional (fields can be left empty)
- Budget summary shows complete breakdown across all cost categories:
- Crew day rates (work + travel)
- Hotel costs (estimated, for planning)
- Equipment costs
- Other miscellaneous costs
- Empty state handling for equipment and cost lists
- Consistent two-column form pattern across Steps 2 and 3
- Role cards show cost breakdown when hotel estimates are provided
[4.4.0] - 2025-11-20
🎯 Grid View - Spreadsheet-Style Crew Overview
This is a MINOR release adding a comprehensive grid view mode to the Project Details page, inspired by production managers' current Excel-based workflows.
Added
Grid View Mode for Crew Assignments (View 1.7)
- Added comprehensive Grid View mode to View 1.7 Project Details > Crew Assignments Tab
- Purpose: Dense, spreadsheet-like interface for production managers who need at-a-glance overview of entire crew
- Inspiration: Based on actual Excel crew booking sheet analysis (Idre Freestyle production example)
- Key Benefits:
- See 20-30 crew members at once (vs 5-10 in List View)
- Quick visual scanning of work schedules with daily grid
- Instant cost overview (offered vs actual)
- Fast inline editing for common tasks
- Excel-like keyboard navigation
Column Groups (A-F)
- A. Crew Info (frozen columns): Row #, Favorite star, Name, Function, Team, Role Note, Status
- B. Logistics: Accommodation assignment, Travel method with icons and status
- C. Work Schedule: Daily grid with visual indicators (■ work day, □ travel day), summary counts (W/T/Total)
- D. Financial: Day Rate, Travel Rate, Crew Total, Hotel costs, Travel costs, Other expenses, TOTAL per crew
- E. Admin Tasks: Travel booked ✓, Hotel booked ✓, Roadbook sent ✓, Invoice handled ✓ (checkboxes)
- F. Actual Costs (hidden by default): Act. Days, Act. Rate, Act. Total, Variance, Invoice # (for post-production)
Grid Features
- View Mode Toggle: List View (default) / Grid View / Timeline View (post-MVP)
- Header Controls: Quick filters, date range display, crew count, bulk actions
- Row Interactions: Click to open detail modal, hover for quick actions, right-click context menu, double-click inline edit, drag to reorder
- Row Grouping: Optional grouping by Function/Team/Status with collapsible groups and subtotals
- Footer Row: Sticky summary with total calculations and budget comparison (Offered vs Actual)
- Column Visibility Controls: Show/hide column groups, save as personal preference
- Keyboard Navigation: Tab, Enter, Esc, Ctrl+C/V, Ctrl+F, Arrow keys (Excel-like)
- Export Options: Excel (.xlsx), PDF, Copy to clipboard
Visual Design
- Density: Compact 32px row height for information density
- Zebra striping: Alternating row colors for readability
- Monospace numbers: For proper alignment
- Color coding: Work days (blue), Travel days (gray), Status badges (green/yellow), Budget warnings (red)
- Frozen columns: Subtle shadow when scrolling horizontally
- Performance: Virtualized scrolling for 100+ crew, debounced inline editing, client-side calculations
Responsive Behavior
- Desktop only: Requires 1280px+ width
- Mobile fallback: Grid View unavailable, falls back to List View
- Horizontal/vertical scroll: For many dates (>14) or crew (>20)
Stakeholder Questions
- Added 8 questions for stakeholders about Grid View preferences:
- Daily work schedule grid usefulness
- Accommodation display (roommates vs room code)
- Actual Costs column visibility priority
- Must-have vs nice-to-have columns
- Meal per diem tracking
- Countdown timer display
- Color-coding for conflicts
- Export format preferences
Changed
- Restructured Crew Assignments Tab in View 1.7
- Split into three view modes: List View (default), Grid View (new), Timeline View (post-MVP)
- List View retains all existing functionality (card-based layout with detailed info)
- Added explicit comparison: List View shows 5-10 crew (more detail) vs Grid View 20-30 crew (more overview)
[4.3.2] - 2025-11-19
📊 KPI Dashboard Placeholder & Final Consistency Fixes
This is a PATCH release adding KPI dashboard placeholder and achieving 100% documentation consistency.
Added
Project KPIs & Dashboard Metrics Placeholder
-
Added KPI dashboard section to View 1.7 (Project Details)
- Purpose: At-a-glance project health and progress indicators
- Placement: Below project header, above tabs
- Status: Needs stakeholder input to finalize metrics
- Suggested metrics: Crew staffing %, budget utilization %, admin tasks %, timeline status, financial summary
- Visual design options provided for stakeholder decision
- Questions for stakeholders documented inline
-
Added Question 4b to Open Questions document
- Comprehensive KPI discussion questions for stakeholders
- 6 key question areas: metrics priority, visual presentation, trends, real-time vs cached, role-based, status-based
- Suggested MVP approach: 6 simple metrics cards
- Cross-reference to View 1.7 for context
Changed
Documentation Consistency Fixes (100% Consistency Achieved!)
-
Updated README.md
- Fixed line 147: Updated from 18 tables to complete 27 tables list
- Fixed lines 200-207: Updated status section with current statistics (27 tables, 32 views, 16 user cases)
- Removed outdated v3.0 reference
- Added link to changelog for version history
-
Updated CLAUDE.md
- Fixed line 394: Updated from "18 tables, 840 lines" to "27 tables, 1,300+ lines"
- Fixed line 397: Updated from "17 views" to "32 views"
- Fixed line 398: Updated from "29 questions" to "60+ questions across 3 sessions"
- Added new completed items: Post-MVP features, Post-planning tasks, Single source of truth
-
Fixed all broken schema.dbml links (5 files)
docs/user-cases/01-admin-project-management.md:727docs/user-cases/02-admin-staffing.md:1409docs/user-cases/03-admin-operations.md:979docs/user-cases/04-staff-workflows.md:1147docs/user-cases/README.md:176- All changed from
../schema.dbml(broken) to/database/schema(human-readable docs)
-
Updated docs/user-cases/README.md
- Removed "Version: 2.0" reference (consistency with versioning policy)
- Updated "Last Updated" to November 19, 2025
- Fixed Related Documents section with current links
- Removed references to deprecated files (ENTITIES_REFERENCE.md, DATABASE.md, SCHEMA_CHANGES.md)
Verified
Documentation Statistics Confirmed
- ✅ Tables: 27 (verified in schema.dbml)
- ✅ Views: 32 (verified by count)
- Chapter 1 (Backend): 20 views (1.1-1.20)
- Chapter 2 (Crew Portal): 7 views (2.1-2.7)
- Chapter 3 (Auth & Admin): 5 views (3.1-3.5)
- ✅ User Cases: 16 (UC-01 to UC-16)
- ✅ Q&A Decisions: 60+ across 3 sessions
- ✅ Total Documentation: ~16,000+ lines
Impact:
- ✅ 100% consistency achieved across all documentation
- ✅ Zero broken links (build warnings resolved)
- ✅ Single source of truth fully established
- ✅ Ready for stakeholder review with accurate statistics
[4.3.1] - 2025-11-19
📝 Documentation Consistency & Version Simplification
This is a PATCH release focused on documentation consistency and establishing single source of truth for versioning.
Changed
Version Management Simplification
- Removed version badges from all documentation files (except changelog.md)
- Updated
docs/overview.md- Removed version badge, changed to "Last Updated" format - Updated
docs/views.md- Removed version number - Updated
docs/database/schema.md- Removed version number - Updated
docs/reference/progress.md- Complete rewrite to be version-agnostic - Updated
docs/reference/api-requirements.md- Removed version number - Updated
docs/reference/open-questions.md- Removed version number - Updated
docs/reference/feature-analysis-brainstorm.md- Removed version number - Updated
docs/reference/qa-answers.md- Removed version reference
- Updated
- Established changelog.md as ONLY place for version tracking
- Updated CLAUDE.md with comprehensive versioning instructions
Schema Consistency Fixes
- Fixed table name references in user cases:
profiles→crew_profiles- Fixed
docs/user-cases/01-admin-project-management.md(line 411) - Fixed
docs/user-cases/02-admin-staffing.md(SQL comment) - Fixed
docs/user-cases/04-staff-workflows.md(INSERT and UPDATE statements)
- Fixed
Added
v4.3 Dual Role Features to UI
- Added dual role UI elements to
docs/views.md:- Admin User Profile (1.20): "Switch to Crew Portal" link when
users.crew_profile_idis set - Crew Dashboard (2.3): "Switch to Admin Portal" link in navigation menu for dual role users
- Full portal switching workflow documentation
- Admin User Profile (1.20): "Switch to Crew Portal" link when
New Reference Documents
-
Created
docs/reference/post-mvp-features.md- Comprehensive list of all post-MVP features
- Organized by category (Automation, Financial, Mobile, etc.)
- Priority ratings (High/Medium/Low)
- Features from brainstorming session
- Features from audit
- Features from Q&A sessions
-
Created
docs/reference/post-planning-tasks.md- Complete checklist for post-planning phase
- Tasks before development starts
- Development environment setup
- Testing strategy
- UI/UX tasks
- Security & compliance
- Deployment & DevOps
- Launch preparation
Documentation Updates
-
Updated
CLAUDE.mdwith version control section- Added "Version Control & Changelog" section
- Clear rules for when to update changelog
- Semantic versioning guidelines
- Examples of proper versioning workflow
- Updated consistency checklists to include changelog updates
-
Updated
website/sidebars.js- Added post-mvp-features.md to navigation
- Added post-planning-tasks.md to navigation
Documentation Impact
- Files updated: 13
- New files created: 2
- Total documentation: ~8,000+ lines (from ~6,000)
- Version strategy: Simplified to single source of truth (changelog.md)
Why This Matters
✅ Consistency: All SQL examples now use correct table names ✅ Clarity: Version history in one place only (no conflicts) ✅ Completeness: All v4.3 features documented in UI specs ✅ Planning: Clear roadmap for post-MVP and post-planning phases ✅ Developer Experience: Better onboarding with task checklists
[4.3.0] - 2025-11-16
🔗 Dual Role Support
This is a MINOR release adding support for admin users who also work as crew members.
Added
Admin/Crew Dual Role Linking
- Added:
crew_profile_idfield onuserstable (uuid, nullable, references crew_profiles.id) - Links admin accounts to crew profiles when admin also works as crew
- Solves email constraint issue: Same email can exist in both systems when linked
- Example use case: Production Lead Johan is both admin and crew member
- Login flow: Admin sees "Switch to Crew Portal" link when crew_profile_id is set
- Maintains architectural separation: System users vs crew users
- No changes to existing crew multi-company architecture
Documentation Updates
- Updated
schema.dbmlto version 4.3 with dual role support - Updated
docs/database/schema.mdwith dual role explanation - Added detailed Note section in users table schema explaining dual role workflow
- Clarified Q12b implementation in architectural documentation
Technical Implementation
- Database: Foreign key constraint from users.crew_profile_id to crew_profiles.id
- Authentication: Admin login checks for crew_profile_id to show portal switching
- Access Control: Admin retains admin permissions + can access crew data for their linked profile
- Email Constraints: Same email allowed in both tables when properly linked
[4.2.0] - 2025-11-13
🏢 Company Website Field
This is a PATCH release adding company website field for logo scraping.
Added
Company Website Support
- Added:
websitefield oncompaniestable (varchar, nullable) - Company website URL input in registration form (1.1 Company Registration)
- Company website URL input in Company Settings (1.18 Company Settings)
- Used for automatic logo scraping and company information retrieval
- Updated UC-01 Company Setup workflow and SQL examples
- Updated API documentation for
POST /admin/companiesendpoint
Documentation Updates
- Updated
schema.dbmlto version 4.2 - Updated
docs/database/schema.mdwith company website description - Updated
docs/views.mdregistration and settings forms - Updated
docs/user-cases/01-admin-project-management.mdwith website field - Updated
docs/reference/api-requirements.mdwith website parameter - Clarified admin avatar upload as Post-MVP feature (crew photos remain MVP requirement)
[4.1.0] - 2025-11-11
🔧 Administrative Workflow Enhancements
This is a MINOR release with workflow improvements and frontend features.
Added
Favorite Crew System
- Added:
is_favoritefield oncompany_crewtable (boolean, default: false) - Star/favorite crew members for easier filtering
- Company-specific favorites (each company has own list)
- Filter option: "Show Favorites Only" in crew directory
- Star icon visible in crew directory and all crew-related views
- Simple toggle on/off functionality
Administrative Task Tracking
- Added:
travel_statusfield onassignments- Manual tracking ('not_booked' / 'booked') - Added:
hotel_statusfield onassignments- Manual tracking ('not_booked' / 'booked') - Added:
roadbook_statusfield onassignments- Manual tracking ('not_sent' / 'sent') - Added:
invoice_statusfield onassignments- Manual tracking ('not_handled' / 'handled') - Freelancers only - Project grid view with admin checkboxes for workflow tracking
- All checkboxes are manual (no auto-detection)
- Helps admins track completion of all tasks per crew member
- Filter by task completion status
Contract Acceptance Workflow
- Added:
contract_accepted_atfield onassignment_offers(timestamp) - Required contract acceptance for freelancers when accepting offers
- Contract text displayed in acceptance modal
- Checkbox: "I accept the contract terms and conditions"
- Cannot accept offer without checking contract acceptance
- Timestamp recorded when accepted
- Staff (direct booking) bypass contract workflow
Custom Data Storage
- Added:
custom_datafield onprojectstable (json, nullable) - Flexible storage for future features
- Use cases: useful links, custom fields, integration data
- Future-proof schema for extensions without migrations
Frontend Features (No Schema Changes)
- Travel copy helpers (pure JavaScript):
- "Copy from Another Crew" button - Pre-fills travel form with another crew's details
- "Create Return Trip" button - Auto-reverses route and dates
- Saves time when booking travel for groups
- Priority: crew-to-crew copy > reverse trip
Changed
UI Enhancements
- Crew directory filter enhanced with "Favorites" option
- Project crew grid now includes administrative task checkboxes
- Offer acceptance modal includes contract display and acceptance checkbox
- Star icons visible throughout admin interface
Documentation Updates
- Enhanced: views.md - Updated all views with v4.1 features (favorite stars, admin checkboxes, contract acceptance)
- Enhanced: schema.md - Added 4 new design decisions (12-15)
- Enhanced: Q&A Answers - Session 3 added (10 Q&A pairs covering brainstorm features)
- New: Feature Analysis - Complete analysis of brainstormed features with decisions
Schema Statistics
- Tables: 25 (no new tables)
- New Fields: 7 (+5.6% fields)
- Lines: 1,238 → 1,269 (+31 lines, +2.5%)
- Documentation: ~5,500 → ~6,000+ lines (+9%)
Migration Notes
- Breaking changes: No - all changes are additive
- SQL migration: Simple ALTER TABLE statements to add new columns
- User cases: Minor updates needed for new workflows
- Impact: Low - existing functionality unchanged, only additions
Design Decisions
Approved for v4.1:
- Favorite crew filtering - Enhances crew selection workflow
- Admin task tracking - Essential for managing project completion
- Contract acceptance - Legal requirement for freelancer bookings
- Travel copy helpers - Significant time savings for bulk operations
- Custom data storage - Future-proofs schema for extensions
Deferred to Post-MVP:
- QR codes for WhatsApp groups
- Structured accreditation system
- Useful links UI (schema support added, UI later)
- Proximity-based location search
[4.0.0] - 2025-11-11
🎉 Major Update - Multi-Company Crew Support
This is a BREAKING CHANGE release with significant schema restructuring.
Added
Multi-Company Crew System
- New Table:
crew_users- Crew member accounts (one email = one account across all companies) - New Table:
crew_profiles- Crew profiles (can exist without accounts, claimed later) - New Table:
company_crew- Many-to-many junction with company-specific private notes - New Table:
crew_availability- Availability tracking (employed staff only) - Account claiming workflow - admin creates profiles, crew registers and claims later
- Complete data isolation between companies
- Employment tracking (
employer_idoncrew_users- only ONE employer allowed)
Equipment Management
- New Table:
company_equipment- Company-owned equipment inventory (OB-vans, GFX servers, etc.) - New Table:
project_equipment- Equipment bookings with availability tracking - Equipment availability conflict detection (prevents double-booking)
- Per-project rate adjustments (adjustable from equipment defaults)
Global Functions System
- New Table:
global_functions- System-wide function library - Enhanced:
functions_catalog- References global functions OR custom company functions - Company-specific fees even for global functions
- Clear distinction between global and custom functions
Budget & Financial
- New Table:
project_budget_items- Generic budget line items (rentals, venue costs, catering) - New Table:
exchange_rates- Manual currency conversion rates per company - Multi-currency support throughout (per-booking currencies)
- Currency conversion in reporting (to company base currency)
- Economic reporting with full breakdowns
Communication & Audit
- New Table:
communication_logs- Full audit trail of all emails/requests sent - Communication status tracking (sent, delivered, opened, responded, failed)
- Communication history view per project and per crew member
Enhanced Crew Management
- Added:
capabilitiesfield oncrew_profiles- Free-text, crew-editable skills description - Added:
private_notesfield oncompany_crew- Company-specific confidential notes (GDPR-sensitive) - Added:
employer_idfield oncrew_users- Employment tracking (staff vs freelancer) - Staff-only availability tracking (freelancers manage own conflicts)
Enhanced Assignment Management
- Added:
role_notefield onassignments- Per-booking description (e.g., "Main", "Backup") - Added:
team_labelfield onassignments- Simple team assignment (e.g., "Camera A") - Added:
start_dateandend_datefields onassignments- Actual booking dates (can be outside project dates) - Currency fields on all financial records
Enhanced Project Management
- Added:
base_currencyfield oncompanies- Company default currency - Added:
general_contract_templatefield oncompanies- Company-wide contract template (rich text) - Added:
contract_templatefield onprojects- Project-specific contract customization - Project dates are informational (bookings can be outside main event dates)
UI & Documentation
- 19 complete view specifications (up from 17) - all updated for v4.0
- New View: Equipment Management - Complete equipment inventory UI
- New View: Global Functions Management - Function catalog management
- New View: Add/Invite Crew - Enhanced crew onboarding with multi-company handling
- New View: Communication History - Audit trail viewing
- All existing views updated with v4.0 features
Documentation
- New: V4.0 Migration Guide - Complete guide for updating user cases
- Enhanced: Database Schema Documentation - 11 key design decisions documented
- Enhanced: Q&A Answers - Session 2 added (21 new Q&A pairs)
- Enhanced: Views Documentation - 1,382 lines (up from 786, +76%)
Changed
Breaking Changes
- Crew data model completely restructured for multi-company support
profilestable renamed tocrew_profiles(conceptual change)userstable now only for admin users (crew usecrew_users)- Availability tracking now staff-only (linked to employment)
- Currency storage changed to cents with currency code fields
Enhanced Workflows
- Crew can work for multiple companies with one account
- Crew profiles can exist without accounts (claimed later)
- Project dates are soft (availability warnings, not blocking)
- Assignment dates can be outside project dates (pre-visits, post-production, etc.)
- Multi-currency bookings with manual exchange rates
Schema Statistics
- Tables: 18 → 25 (+7 new tables, +39%)
- Lines: 840 → 1,238 (+398 lines, +47%)
- Documentation: ~3,300 → ~5,500+ lines (+67%)
Migration Notes
- Breaking changes: Yes - requires data migration for crew profiles
- SQL migration: Manual migration required from v3.0
- User cases: Need updating (14-21 hours estimated)
- See V4.0 Migration Guide for details
[3.0.0] - 2025-10-23
🎯 MVP Specification Complete
First complete specification release after comprehensive Q&A session.
Added
Core Features
- Multi-tenant architecture with company isolation
- Dual subdomain system (backend.pbs.com + crew.pbs.com)
- Complete assignment lifecycle tracking
- Dual booking modes (offers + direct booking)
- Invite-only registration system
Database Schema
- 18 tables covering complete MVP scope
- PostgreSQL with UUID primary keys
- Multi-tenant isolation via
company_id - Polymorphic document attachments
User Cases
- 16 complete user cases (UC-01 to UC-16)
- 5 user personas (Susanne, Ken, Jonas, Lisa, Johan)
- Complete UI journeys with SQL examples
- Business rules and validations documented
Documentation
- 17 view specifications with complete UI details
- Database schema documentation
- Q&A session with 29 decisions documented
- Project principles and core values
Assignment Management
- Offer creation and management
- Acceptance/decline/negotiation flows
- Direct booking for employees
- Financial tracking (planned vs actual)
- Project completion workflow
- Financial finalization with locking
Operations
- Travel booking tracking (flights, trains, etc.)
- Hotel booking management
- Road book generation from structured data
- Document management (contracts, travel docs, road books)
- Report generation (crew lists, meal lists, budget reports)
Staff Portal
- Profile management
- Assignment viewing
- Offer responses (one-click accept)
- Document downloads
- Mobile-first responsive design
Design Decisions
- No automated email notifications for MVP (manual workflow)
- Fixed status workflows (not customizable)
- Invite-only registration (no public forms)
- Simplified project status (draft → active → completed)
- Company-wide admin access to all projects
Technical Specifications
- Separate subdomains with role-based access
- Personal message override on offers
- Soft expiration on offers (can respond after deadline)
- Conflict detection with override capability
- Financial completion with actual vs planned tracking
[2.0.0] - 2025-10-15 (Initial Planning)
Added
- Initial project structure
- Basic personas defined
- Preliminary database schema
- Core workflow concepts
Notes
- Early planning phase
- Pre-Q&A session
- Multiple iterations before finalization
[1.0.0] - 2025-10-01 (Project Inception)
Added
- Project repository created
- Initial README
- Basic project concept
- Team formation
Version History Summary
| Version | Date | Description | Breaking Changes | Tables | Lines |
|---|---|---|---|---|---|
| 4.1.0 | 2025-11-11 | Administrative workflow enhancements | ❌ No | 25 | 1,269 |
| 4.0.0 | 2025-11-11 | Multi-company crew support | ✅ Yes | 25 | 1,238 |
| 3.0.0 | 2025-10-23 | MVP specification complete | ❌ No | 18 | 840 |
| 2.0.0 | 2025-10-15 | Initial planning | ❌ No | 15 | ~600 |
| 1.0.0 | 2025-10-01 | Project inception | - | - | - |
Upcoming Changes
Planned for v4.1 (Future)
- User case updates for v4.0
- UI mockup generation
- Technology stack selection
- Sprint planning
Planned for v5.0 (Post-MVP)
- Automated email notifications
- Real-time collaboration features
- Advanced analytics and dashboards
- Public crew registration forms
- API for third-party integrations
- Contract PDF generation
- Invoicing system integration
How to Read This Changelog
Version Format: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes, significant restructuring (e.g., 3.0 → 4.0)
- MINOR: New features, enhancements (e.g., 4.0 → 4.1)
- PATCH: Bug fixes, documentation corrections (e.g., 4.1 → 4.1.1)
Change Categories:
- Added: New features, tables, documentation
- Changed: Modifications to existing features
- Deprecated: Features being phased out
- Removed: Features removed in this version
- Fixed: Bug fixes, corrections
- Security: Security-related changes
Breaking Changes: Marked with ⚠️ or explicitly noted in "Breaking Changes" section
Contributors
Version 4.0:
- Stakeholder meeting feedback (2025-11-11)
- Multi-company requirements integration
- Equipment and budget tracking requirements
- Currency and internationalization requirements
Version 3.0:
- Q&A Session 1 (2025-10-23)
- Initial MVP requirements gathering
- User persona development
- Workflow documentation
Last Updated: 2025-11-11 Current Version: 4.1.0 Next Review: As needed for development