Skip to main content

Admin User Cases: Project Management

Actor: Susanne (Admin/PM) User Cases: UC-01, UC-02, UC-03


Overview​

This document covers the foundational administrative workflows for setting up and managing projects in PBS:

  • UC-01: Company Setup (One-time initialization)
  • UC-02: Create Staff Profile (Building the crew directory)
  • UC-03: Create Project (Defining event requirements)

These are typically performed by company administrators and project managers as initial setup and ongoing project creation tasks.


UC-01: Company Setup (One-time)​

Goal: Set up a new customer company in PBS so their team can start managing projects.

Actor: System Admin (initial setup)

Preconditions: None (new company onboarding)

System: backend.pbs.com (admin setup)


UI Journey​

Step 1: Admin navigates to System Admin Dashboard

  • Clicks: "Add New Company" button

Step 2: Company Setup Form

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create New Company β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Company Name: [New Century Production] β”‚
β”‚ Org Number: [556677-8899] β”‚
β”‚ Website: [https://ncp.se] β”‚
β”‚ Default Currency: [SEK β–Ό] β”‚
β”‚ β”‚
β”‚ [Cancel] [Next: Project Settings β†’] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Admin fills in:

  • Company Name: New Century Production (NCP)
  • Org Number: 556677-8899
  • Website: https://ncp.se (for logo scraping)
  • Default Currency: SEK

Clicks: "Next: Project Settings"

Step 3: Project ID Configuration

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Project ID Settings β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Mode: β”‚
β”‚ β—‹ Manual (PM enters codes) β”‚
β”‚ ● Auto-generate β”‚
β”‚ β”‚
β”‚ Prefix: [NCP] β”‚
β”‚ Starting number: [1] β”‚
β”‚ β”‚
β”‚ Preview: NCP-001, NCP-002... β”‚
β”‚ β”‚
β”‚ [← Back] [Next: Create Admin User β†’]β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Selects:

  • Mode: Auto-generate
  • Prefix: "NCP"
  • Starting number: 1

Clicks: "Next: Create Admin User"

Step 4: Admin User Setup

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create Company Administrator β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Name: [Susanne Larsson] β”‚
β”‚ Email: [susanne@ncp.se] β”‚
β”‚ Role: [ADMIN] (fixed) β”‚
β”‚ β”‚
β”‚ β˜‘ Send welcome email with setup linkβ”‚
β”‚ β”‚
β”‚ [← Back] [Finish Setup] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Fills in:

  • Name: Susanne Larsson
  • Email: susanne@ncp.se
  • Checks: "Send welcome email"

Clicks: "Finish Setup"

Step 5: Function Catalog Seeding (automatic)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Setting up company... β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ βœ“ Company created β”‚
β”‚ βœ“ Project settings configured β”‚
β”‚ βœ“ Admin user created β”‚
β”‚ ⏳ Loading function catalog... β”‚
β”‚ β”‚
β”‚ Importing standard functions: β”‚
β”‚ β€’ Camera Department (5 functions) β”‚
β”‚ β€’ Audio Department (4 functions) β”‚
β”‚ β€’ Production (6 functions) β”‚
β”‚ β€’ Technical (5 functions) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Step 6: Success Confirmation

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ βœ“ Company Setup Complete! β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ NCP is ready to use. β”‚
β”‚ β”‚
β”‚ Admin access sent to: β”‚
β”‚ susanne@ncp.se β”‚
β”‚ β”‚
β”‚ Next steps: β”‚
β”‚ β€’ Susanne will receive setup email β”‚
β”‚ β€’ She can create profiles & projects β”‚
β”‚ β”‚
β”‚ [View Company] [Add Another Company] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

System Actions​

  1. Create company record:
INSERT INTO companies (
id, name, org_number, website, default_currency
) VALUES (
uuid_generate_v4(),
'New Century Production',
'556677-8899',
'https://ncp.se',
'SEK'
)
  1. Generate project ID settings:
INSERT INTO project_id_settings (
company_id, mode, prefix, sequence_number
) VALUES (
{company_id},
'auto',
'NCP',
1
)
  1. Create admin user:
INSERT INTO users (
company_id, email, name, role
) VALUES (
{company_id},
'susanne@ncp.se',
'Susanne Larsson',
'ADMIN'
)
  1. Seed function catalog (20+ standard functions):
INSERT INTO functions_catalog (company_id, department, name, avg_work_rate_cents, avg_travel_rate_cents, avg_rate_currency, is_custom)
SELECT
{company_id},
department,
name,
avg_work_rate_cents,
avg_travel_rate_cents,
'SEK',
false
FROM standard_functions_template
  1. Send welcome email to susanne@ncp.se with password setup link

Entities Created​

  • companies (1 row)
  • project_id_settings (1 row)
  • users (1 row, role=ADMIN)
  • functions_catalog (20+ rows, seeded from template)

UC-02: Create Staff Profile (Manual Entry)​

Goal: Add a new freelancer (Lisa Berg, EVS Operator) to the staff directory so she can be assigned to projects.

Actor: Susanne (Admin)

Preconditions: Susanne is logged in as ADMIN

System: backend.pbs.com


UI Journey​

Step 1: Navigate to Staff Section

Susanne logs in to PBS β†’ Dashboard shows recent projects, pending offers, quick actions

Clicks: Main menu β†’ "Staff"

Staff list page appears showing existing profiles

Step 2: Initiate Profile Creation

Clicks: "+ Add New Profile" button (top right)

Step 3: Profile Creation Form - Page 1: Basic Info

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create New Profile [1/4] ●○○○│
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Basic Information β”‚
β”‚ β”‚
β”‚ First Name: [Lisa] β”‚
β”‚ Last Name: [Berg] β”‚
β”‚ Email: [lisa@example.com] β”‚
β”‚ Phone: [+46 70 123 4567] β”‚
β”‚ β”‚
β”‚ Type: [● Staff β—‹ Employee β—‹ Contractor] β”‚
β”‚ (Use "Staff" for MVP) β”‚
β”‚ β”‚
β”‚ [Cancel] [Save Draft] [Next: Identity Info β†’] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Fills in:

  • First Name: Lisa
  • Last Name: Berg
  • Email: lisa@example.com
  • Phone: +46 70 123 4567
  • Type: Staff

Clicks: "Next: Identity Info"

Step 4: Profile Creation Form - Page 2: Identity & Location

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create New Profile [2/4] ○●○○│
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Identity & Location β”‚
β”‚ β”‚
β”‚ Address: [Storgatan 12, 114 51 Stockholm] β”‚
β”‚ Personal ID: [19850615-1234] (Personnummer) β”‚
β”‚ Nationality: [SE - Sweden β–Ό] β”‚
β”‚ Home Base City: [Stockholm β–Ό] β”‚
β”‚ β”‚
β”‚ Emergency Contact β”‚
β”‚ Name: [Anna Berg] β”‚
β”‚ Phone: [+46 70 987 6543] β”‚
β”‚ Relation: [Spouse β–Ό] β”‚
β”‚ β”‚
β”‚ [← Back] [Save Draft] [Next: Skills β†’] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Fills in:

  • Address, Personal ID, Nationality, Home Base
  • Emergency Contact: Anna Berg (Spouse), phone

Clicks: "Next: Skills"

Step 5: Profile Creation Form - Page 3: Functions & Skills

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create New Profile [3/4] ○○●○│
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Functions & Skills β”‚
β”‚ β”‚
β”‚ Select functions this person can perform: β”‚
β”‚ β”‚
β”‚ [Search functions...] β”‚
β”‚ β”‚
β”‚ Selected Functions: β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ EVS Operator β”‚ β”‚
β”‚ β”‚ Department: Video/Replay β”‚ β”‚
β”‚ β”‚ Seniority: [Senior β–Ό] [Remove Γ—] β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ VAR Operator β”‚ β”‚
β”‚ β”‚ Department: Video/Replay β”‚ β”‚
β”‚ β”‚ Seniority: [Mid β–Ό] [Remove Γ—] β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚
β”‚ [+ Add Function] β”‚
β”‚ β”‚
β”‚ [← Back] [Save Draft] [Next: Preferences β†’] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Searches and adds:

  • EVS Operator (Senior)
  • VAR Operator (Mid)

Clicks: "Next: Preferences"

Step 6: Profile Creation Form - Page 4: Preferences & Photo

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create New Profile [4/4] ○○○●│
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Preferences & Photo β”‚
β”‚ β”‚
β”‚ Languages: β”‚
β”‚ β€’ Swedish [Native β–Ό] [Remove] β”‚
β”‚ β€’ English [Fluent β–Ό] [Remove] β”‚
β”‚ [+ Add Language] β”‚
β”‚ β”‚
β”‚ Food Preferences: β”‚
β”‚ Diet: [Vegetarian β–Ό] β”‚
β”‚ Allergies: [No shellfish (allergy)] β”‚
β”‚ Notes: [] β”‚
β”‚ β”‚
β”‚ Clothing Sizes: β”‚
β”‚ Shirt: [M β–Ό] Pants: [32 β–Ό] Shoes: [39 β–Ό] β”‚
β”‚ β”‚
β”‚ Profile Photo: (for crew passes & accreditation)β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ β”‚ [Upload Photo] β”‚
β”‚ β”‚ No photo β”‚ JPG, PNG (max 5MB) β”‚
β”‚ β”‚ β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚
β”‚ Internal Notes: (not visible to staff) β”‚
β”‚ [Excellent EVS operator, worked Champions League]β”‚
β”‚ β”‚
β”‚ [← Back] [Save Draft] [Create Profile] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Adds:

  • Languages: Swedish (Native), English (Fluent)
  • Food: Vegetarian, No shellfish
  • Clothing sizes
  • Uploads photo: lisa_berg.jpg
  • Internal notes about Lisa's experience

Clicks: "Create Profile"

Step 7: Confirmation

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ βœ“ Profile Created Successfully! β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Lisa Berg is now in your staff β”‚
β”‚ directory. β”‚
β”‚ β”‚
β”‚ What's next? β”‚
β”‚ β€’ Send her a login invite β”‚
β”‚ β€’ Assign her to a project β”‚
β”‚ β€’ Add more profiles β”‚
β”‚ β”‚
β”‚ [Send Login Invite] [View Profile] β”‚
β”‚ [Add Another Profile] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Susanne clicks "View Profile" β†’ Profile page shows all information, now searchable in staff directory


System Actions​

  1. Create profile:
INSERT INTO crew_profiles (
first_name, last_name, email, phone,
address, personal_id_number, nationality, home_base_city,
emergency_contact_name, emergency_contact_phone, emergency_contact_relation,
photo_url,
languages, food_preferences, clothing_sizes
) VALUES (
{company_id}, 'staff',
'Lisa', 'Berg', 'lisa@example.com', '+46 70 123 4567',
'Storgatan 12, 114 51 Stockholm', '19850615-1234', 'SE', 'Stockholm',
'Anna Berg', '+46 70 987 6543', 'spouse',
's3://photos/lisa_berg.jpg',
'[{"code": "sv", "proficiency": "native"}, {"code": "en", "proficiency": "fluent"}]',
'["Vegetarian", "No shellfish (allergy)"]',
'{"shirt": "M", "pants": "32", "shoes": "39"}',
'Excellent EVS operator, worked Champions League'
)
  1. Create profile functions:
INSERT INTO profile_functions (profile_id, function_id, seniority) VALUES
({profile_id}, {evs_operator_function_id}, 'senior'),
({profile_id}, {var_operator_function_id}, 'mid')
  1. Store photo:
INSERT INTO documents (
documentable_type, documentable_id,
doc_type, file_url, file_name,
uploaded_by_user_id
) VALUES (
'Profile', {profile_id},
'photo', 's3://photos/lisa_berg.jpg', 'lisa_berg.jpg',
{susanne_user_id}
)

Entities Created​

  • profiles (1 row)
  • profile_functions (2 rows: EVS Operator, VAR Operator)
  • documents (1 row: photo)

UC-03: Create Project​

Goal: Set up a new project (Champions League Final 2025) and define all required crew roles so Susanne can start staffing.

Actor: Susanne (Admin)

Preconditions: Susanne is logged in as ADMIN

System: backend.pbs.com


UI Journey​

Step 1: Navigate to Projects

From Dashboard, clicks: Main menu β†’ "Projects"

Projects list page appears showing existing projects

Step 2: Start New Project

Clicks: "+ Create New Project" button (top right)

Step 3: Project Creation Wizard - Step 1: Basic Info

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create New Project [1/3] ●○○ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Basic Information β”‚
β”‚ β”‚
β”‚ Project Code: [NCP-001] (auto-generated) [βš™οΈ Edit] β”‚
β”‚ β”‚
β”‚ Project Name: [Champions League Final 2025] β”‚
β”‚ β”‚
β”‚ Client Name: [UEFA] β”‚
β”‚ (Optional - external client if different) β”‚
β”‚ β”‚
β”‚ Status: [● Draft β—‹ Active β—‹ Completed] β”‚
β”‚ β”‚
β”‚ Dates: β”‚
β”‚ Start: [2025-05-10 πŸ“…] End: [2025-05-15 πŸ“…] β”‚
β”‚ β”‚
β”‚ Location: β”‚
β”‚ City: [Madrid] Country: [Spain β–Ό] β”‚
β”‚ Venue: [Estadio Santiago BernabΓ©u] β”‚
β”‚ Address: [Av. de Concha Espina 1, Madrid] β”‚
β”‚ β”‚
β”‚ Budget: β”‚
β”‚ Amount: [150,000] Currency: [SEK β–Ό] β”‚
β”‚ β”‚
β”‚ Internal Notes: β”‚
β”‚ [Major UEFA production, 5 crew members needed] β”‚
β”‚ β”‚
β”‚ [Cancel] [Save Draft] [Next: Crew Roles β†’] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

System auto-generates: NCP-001

Susanne fills in:

  • Name: Champions League Final 2025
  • Client: UEFA
  • Status: Draft
  • Dates: May 10-15, 2025
  • Location: Madrid, Spain
  • Venue: Estadio Santiago BernabΓ©u (with address)
  • Budget: 150,000 SEK

Clicks: "Next: Crew Roles"

Step 4: Project Creation Wizard - Step 2: Crew Roles

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create New Project [2/3] ○●○ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Crew Roles β”‚
β”‚ β”‚
β”‚ LEFT COLUMN (Form) β”‚ RIGHT COLUMN (List) β”‚
β”‚ ──────────────────────────── β”‚ ────────────────── β”‚
β”‚ Add New Role β”‚ Added Roles (2) β”‚
β”‚ β”‚ β”‚
β”‚ Function: [EVS Operator β–Ό] β”‚ 1. EVS Operator β”‚
β”‚ Quantity: [2] people β”‚ Γ— 2 people β”‚
β”‚ β”‚ Work: 3 days β”‚
β”‚ Days Required: β”‚ Travel: 2 days β”‚
β”‚ Work: [3] Travel: [2] β”‚ Rate: 5,500/day β”‚
β”‚ β”‚ Cost: 44,000 SEK β”‚
β”‚ Target Rates: β”‚ [Remove] β”‚
β”‚ Work: [5,500] SEK/day β”‚ β”‚
β”‚ Travel: [2,750] SEK/day β”‚ 2. Camera Operator β”‚
β”‚ β”‚ Γ— 1 person β”‚
β”‚ Requirements/Notes: β”‚ Work: 5 days β”‚
β”‚ [Champions League exp...] β”‚ Travel: 2 days β”‚
β”‚ β”‚ Rate: 6,000/day β”‚
β”‚ [+ Add Role] β”‚ Cost: 42,000 SEK β”‚
β”‚ β”‚ [Remove] β”‚
β”‚ β”‚ β”‚
β”‚ β”‚ Budget Summary β”‚
β”‚ β”‚ Crew: 86,000 SEK β”‚
β”‚ β”‚ Total: 86,000 SEK β”‚
β”‚ β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ 57% β”‚
β”‚ β”‚ β”‚
β”‚ [← Back] [Save Draft] [Next: Equipment & Other β†’] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Susanne clicks: "+ Add Role"

Fills in first role:

  • Function: EVS Operator
  • Quantity: 2 people
  • Work days: 3, Travel days: 2
  • Work rate: 5,500 SEK/day, Travel rate: 2,750 SEK/day
  • Est. hotel nights: 4, Est. hotel rate: 1,200 SEK/night
  • Requirements: "Champions League experience preferred"

System calculates:

  • Crew day costs: 2 Γ— (3Γ—5,500 + 2Γ—2,750) = 44,000 SEK
  • Hotel costs: 2 Γ— 4 Γ— 1,200 = 9,600 SEK
  • Total role cost: 53,600 SEK

Susanne adds second role:

  • Function: Camera Operator
  • Quantity: 1 person
  • Work days: 5, Travel days: 2
  • Work rate: 6,000 SEK/day, Travel rate: 3,000 SEK/day
  • Est. hotel nights: 6, Est. hotel rate: 1,200 SEK/night

System calculates:

  • Crew day costs: 1 Γ— (5Γ—6,000 + 2Γ—3,000) = 42,000 SEK
  • Hotel costs: 1 Γ— 6 Γ— 1,200 = 7,200 SEK
  • Total role cost: 49,200 SEK

Step 2 Total:

  • Crew day rates: 86,000 SEK
  • Hotel costs (estimated): 16,800 SEK
  • Total crew budget: 102,800 SEK (69% of 150,000 SEK budget)

Clicks: "Next: Equipment & Other"

Step 5: Project Creation Wizard - Step 3: Equipment & Other Costs

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Create New Project [3/3] ○○● β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Equipment & Other Costs β”‚
β”‚ β”‚
β”‚ LEFT COLUMN (Forms) β”‚ RIGHT COLUMN (Lists) β”‚
β”‚ ──────────────────────────── β”‚ ────────────────── β”‚
β”‚ Add Equipment β”‚ Equipment (1) β”‚
β”‚ β”‚ β”‚
β”‚ Equipment: [EVS 6-Channel β–Ό]β”‚ 1. EVS 6-Channel β”‚
β”‚ Quantity: [2] units β”‚ Γ— 2 Γ— 5 days β”‚
β”‚ Days: [5] days β”‚ @ 3,000/day β”‚
β”‚ Rate: [3,000] SEK/day β”‚ Cost: 30,000 SEK β”‚
β”‚ β”‚ [Remove] β”‚
β”‚ [+ Add Equipment] β”‚ β”‚
β”‚ β”‚ Other Costs (1) β”‚
β”‚ ───────────────────────── β”‚ β”‚
β”‚ Add Other Cost β”‚ 1. Venue Rental β”‚
β”‚ β”‚ 10,000 SEK β”‚
β”‚ Description: β”‚ [Remove] β”‚
β”‚ [Venue Rental] β”‚ β”‚
β”‚ Amount: [10,000] β”‚ ───────────────── β”‚
β”‚ Currency: [SEK β–Ό] β”‚ Complete Budget β”‚
β”‚ β”‚ β”‚
β”‚ [+ Add Cost] β”‚ Crew day rates: β”‚
β”‚ β”‚ 86,000 SEK β”‚
β”‚ β”‚ Hotel (est.): β”‚
β”‚ β”‚ 16,800 SEK β”‚
β”‚ β”‚ Equipment: β”‚
β”‚ β”‚ 30,000 SEK β”‚
β”‚ β”‚ Other: 10,000 SEK β”‚
β”‚ β”‚ ───────────────── β”‚
β”‚ β”‚ Total: 142,800 SEK β”‚
β”‚ β”‚ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘ 95% β”‚
β”‚ β”‚ β”‚
β”‚ [← Back] [Save Draft] [Create Project] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Susanne adds equipment:

  • Equipment: EVS 6-Channel
  • Quantity: 2 units
  • Days: 5 days
  • Rate: 3,000 SEK/day

System calculates: 2 Γ— 5 Γ— 3,000 = 30,000 SEK

Susanne adds other cost:

  • Description: Venue Rental
  • Amount: 10,000 SEK

Complete Project Budget Breakdown:

  • Crew day rates: 86,000 SEK
  • Hotel costs (estimated): 16,800 SEK
  • Equipment costs: 30,000 SEK
  • Other costs: 10,000 SEK
  • ─────────────────
  • Total: 142,800 SEK (95% of 150,000 SEK budget)

Step 6: Review and Create

Reviews complete budget breakdown with all cost types

Clicks: "Create Project"

Step 7: Confirmation

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ βœ“ Project Created Successfully! β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Champions League Final 2025 β”‚
β”‚ NCP-001 β”‚
β”‚ β”‚
β”‚ Status: Draft β”‚
β”‚ Required roles: 2 positions β”‚
β”‚ Total crew needed: 5 people β”‚
β”‚ β”‚
β”‚ What's next? β”‚
β”‚ β€’ Start sending offers to crew β”‚
β”‚ β€’ Add more roles if needed β”‚
β”‚ β”‚
β”‚ [Start Staffing] [View Project] β”‚
β”‚ [Add More Roles] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Susanne clicks "View Project" β†’ Project dashboard shows all details, empty crew slots, budget status


System Actions​

  1. Create project:
INSERT INTO projects (
id, company_id,
project_code, name, client_name,
status, start_date, end_date,
budget_cents, budget_currency,
location_city, location_country,
location_venue, location_venue_address,
notes
) VALUES (
uuid_generate_v4(), {company_id},
'NCP-001', 'Champions League Final 2025', 'UEFA',
'draft', '2025-05-10', '2025-05-15',
15000000, 'SEK', -- 150,000 SEK in cents
'Madrid', 'Spain',
'Estadio Santiago BernabΓ©u', 'Av. de Concha Espina 1, Madrid',
'Major UEFA production, 5 crew members needed'
)
  1. Update project code sequence:
UPDATE project_id_settings
SET sequence_number = sequence_number + 1
WHERE company_id = {company_id}
  1. Create project functions (crew roles):
-- EVS Operator (2 people)
INSERT INTO project_functions (
project_id, team_id, function_id,
work_days, travel_days, quantity,
target_work_rate_cents, target_travel_rate_cents, target_rate_currency,
target_hotel_rate_cents, estimated_hotel_nights,
notes
) VALUES (
{project_id}, NULL, {evs_operator_function_id},
3, 2, 2,
550000, 275000, 'SEK',
120000, 4, -- 1,200 SEK/night Γ— 4 nights
'Champions League experience preferred'
);

-- Camera Operator (1 person)
INSERT INTO project_functions (
project_id, team_id, function_id,
work_days, travel_days, quantity,
target_work_rate_cents, target_travel_rate_cents, target_rate_currency,
target_hotel_rate_cents, estimated_hotel_nights,
notes
) VALUES (
{project_id}, NULL, {camera_operator_function_id},
5, 2, 1,
600000, 300000, 'SEK',
120000, 6, -- 1,200 SEK/night Γ— 6 nights
NULL
);
  1. Create project equipment:
INSERT INTO project_equipment (
project_id, company_equipment_id,
quantity, days,
rate_cents, rate_currency
) VALUES (
{project_id}, {evs_equipment_id},
2, 5,
300000, 'SEK' -- 3,000 SEK/day in cents
);
  1. Create project budget items (other costs):
INSERT INTO project_budget_items (
project_id,
description,
amount_cents, currency
) VALUES (
{project_id},
'Venue Rental',
1000000, 'SEK' -- 10,000 SEK in cents
);

Entities Created​

  • projects (1 row)
  • project_functions (2+ rows for each crew role type)
  • project_equipment (1+ rows for each equipment item)
  • project_budget_items (1+ rows for each other cost)
  • project_id_settings (updated sequence)

Summary: Project Management Workflows​

UC-01: Company Setup
└─→ Create company β†’ Configure project IDs β†’ Create admin user β†’ Seed functions

UC-02: Create Staff Profile
└─→ Basic info β†’ Identity β†’ Skills/functions β†’ Preferences/photo β†’ Create

UC-03: Create Project
└─→ Basic info β†’ Crew roles β†’ Equipment & other costs β†’ Create

Key MVP Features Demonstrated​

  1. Auto-generated project codes: NCP-001, NCP-002, etc.
  2. Multi-step wizards: Progressive disclosure for complex forms
  3. Comprehensive budget tracking: Real-time calculation of crew + equipment + other costs
  4. Function catalog: Standardized roles seeded per company
  5. Equipment management: Company-owned equipment with daily rates
  6. Flexible cost tracking: Miscellaneous costs (venue, catering, etc.)
  7. Separate work/travel rates: Budget accurately for different day types
  8. Two-column layout: Form on left, added items list on right


Database Tables Used​

  • companies - Company records
  • project_id_settings - Project code generation
  • users - Admin accounts
  • functions_catalog - Standard roles
  • profiles - Staff directory
  • profile_functions - Skills/roles per person
  • projects - Project records
  • project_functions - Required roles per project
  • company_equipment - Company equipment inventory
  • project_equipment - Equipment assigned to project
  • project_budget_items - Miscellaneous costs
  • documents - Profile photos