Skip to content

Artwork Management

User Scenarios & Testing

User Story 1 - Upload Artwork Files (Priority: P1)

As a sponsor, I need to upload artwork files for my stand so that Nimlok can print my graphics according to the specifications.

Why this priority: This is the core workflow - without the ability to upload artwork, the entire feature is non-functional. This delivers immediate value by allowing sponsors to submit their graphics.

Independent Test: Can be fully tested by having a sponsor with a configured stand view their artwork requirements, upload files up to 1GB, and verify the files are stored and Nimlogix is notified. Delivers value by accepting artwork submissions.

Acceptance Scenarios:

  1. Given a sponsor has a configured stand with artwork requirements, When they view their artwork list, Then they see all required artwork items with specifications
  2. Given a sponsor is viewing an artwork requirement, When they download the specification document, Then they receive the PDF guidance from Nimlogix
  3. Given a sponsor is uploading a 500MB PDF file, When the upload connection is interrupted mid-transfer, Then the upload resumes from where it left off
  4. Given a sponsor successfully uploads an artwork file, When the upload completes, Then Nimlogix receives a webhook notification with the file details
  5. Given a sponsor uploads a file larger than 1GB, When they attempt the upload, Then they see an error message stating the maximum file size

User Story 2 - Handle Artwork Approval/Rejection (Priority: P1)

As a sponsor, I need to know whether my artwork was approved or rejected so that I can correct any issues and resubmit if necessary.

Why this priority: This is essential feedback for the core workflow. Without approval/rejection handling, sponsors cannot know if their artwork is acceptable, blocking the entire process.

Independent Test: Can be tested by simulating Nimlogix webhook responses (approved/rejected) and verifying sponsors receive appropriate notifications and can take corrective action. Delivers value by closing the feedback loop.

Acceptance Scenarios:

  1. Given a sponsor has uploaded artwork, When Nimlogix approves the artwork via webhook, Then the sponsor sees the artwork status as "Approved"
  2. Given a sponsor has uploaded artwork, When Nimlogix rejects the artwork via webhook with a reason, Then the sponsor receives both an in-app notification and an email with the rejection reason
  3. Given a sponsor's artwork was rejected, When they view the rejected artwork, Then they can see the rejection reason and upload a corrected version
  4. Given a sponsor uploads a corrected version after rejection, When the new file is uploaded, Then the previous version is retained in history and Nimlogix is notified of the new submission

User Story 3 - Approve Artwork Proofs (Priority: P1)

As a sponsor or organiser, I need to review and approve final artwork proofs so that Nimlok can proceed with printing my graphics.

Why this priority: This is the final step before printing and is essential for the complete workflow. Without proof approval, the artwork cannot move to production.

Independent Test: Can be tested by having Nimlogix upload proof documents and verifying sponsors/organisers can view, approve, or reject them with reasons. Delivers value by enabling final sign-off.

Acceptance Scenarios:

  1. Given Nimlogix uploads a proof document, When the sponsor views their artwork, Then they see the proof is available for review
  2. Given a sponsor is reviewing a proof, When they approve it, Then Nimlogix receives a webhook notification of the approval
  3. Given a sponsor is reviewing a proof, When they reject it, Then they must enter a rejection reason before submitting
  4. Given an organiser has proof approval enabled for an event with sponsor-first sequence, When a sponsor approves a proof, Then the organiser receives a notification to review and approve
  5. Given an organiser has proof approval enabled with organiser-first sequence, When Nimlogix uploads a proof, Then the organiser must approve before sponsor can review
  6. Given an organiser has proof approval enabled with parallel sequence, When Nimlogix uploads a proof, Then both sponsor and organiser can approve in any order
  7. Given both sponsor and organiser must approve, When both parties have approved the proof according to the configured sequence, Then Nimlogix receives the final approval notification

User Story 4 - Track Artwork Progress (Priority: P2)

As a sponsor or organiser, I need to see the status of all artwork items so that I can track progress and identify any blockers.

Why this priority: This provides visibility and helps users manage their workflow, but the system can function without it. It enhances user experience rather than enabling core functionality.

Independent Test: Can be tested by viewing artwork lists with various statuses (pending upload, submitted, rejected, approved, proof pending, proof approved) and verifying status displays are accurate.

Acceptance Scenarios:

  1. Given a sponsor has multiple artwork items, When they view their artwork dashboard, Then they see the status of each item (not uploaded, submitted, rejected, approved, proof pending, proof approved)
  2. Given an organiser is viewing an event, When they view the artwork overview, Then they see a summary of all sponsors' artwork progress
  3. Given artwork has been rejected, When a user views the artwork history, Then they can see all previous submissions and rejection reasons

Edge Cases

  • What happens when a sponsor uploads a file in an unsupported format (not PDF)?
  • How does the system handle Nimlogix webhook failures or timeouts?
  • What happens if a sponsor tries to upload artwork before their stand configuration is complete?
  • How does the system handle simultaneous proof approvals by sponsor and organiser?
  • What happens when a sponsor uploads a new artwork version while the previous version is still being reviewed by Nimlogix?
  • How does the system handle file uploads that are interrupted multiple times?
  • What happens if organiser approval is disabled after a proof is already pending organiser review?
  • What happens when Nimlogix uploads a proof for artwork that was subsequently rejected?

Requirements

Functional Requirements

  • FR-001: System MUST allow Nimlogix to create artwork requirements via API after stand configuration
  • FR-002: System MUST store and display artwork specification documents (typically PDF) for each required artwork item
  • FR-003: System MUST support file uploads up to 1GB for artwork files
  • FR-004: System MUST use chunked upload mechanism to handle connection interruptions gracefully
  • FR-005: System MUST support PDF format only for artwork uploads
  • FR-006: System MUST send webhook notification to Nimlogix when artwork is uploaded
  • FR-007: System MUST receive webhook from Nimlogix containing approval or rejection status with reason
  • FR-008: System MUST notify sponsors when their artwork is rejected with the rejection reason via both in-app notification and email
  • FR-009: System MUST allow sponsors to upload corrected artwork files after rejection
  • FR-010: System MUST retain version history of all uploaded artwork files for the event lifecycle plus 3 years post-event
  • FR-011: System MUST allow Nimlogix to upload proof documents via API
  • FR-012: System MUST display proof documents to sponsors for review
  • FR-013: System MUST allow sponsors to approve or reject proofs
  • FR-014: System MUST require sponsors to provide a reason when rejecting a proof
  • FR-015: System MUST send webhook notification to Nimlogix when proof is approved
  • FR-016: System MUST support optional organiser approval of proofs based on event configuration, including configurable approval sequence (sponsor-first, organiser-first, or parallel)
  • FR-017: System MUST display artwork specification documents to sponsors before upload
  • FR-018: System MUST track status of each artwork item through the workflow (not uploaded, submitted, under review, rejected, approved, proof pending, proof approved)
  • FR-019: System MUST prevent artwork upload if stand configuration is incomplete
  • FR-020: System MUST validate file size before accepting uploads
  • FR-021: System MUST validate file format and reject non-PDF uploads with clear error message
  • FR-022: System MUST handle Nimlogix webhook failures with automatic retry logic (3 attempts with exponential backoff over 30 minutes) and send email notification to administrators on final failure
  • FR-023: System MUST automatically archive or purge artwork version history 3 years after event completion date

Key Entities

  • Artwork Requirement: Represents a single artwork item needed for a stand, created by Nimlogix via API. Contains artwork specifications (typically PDF), status, and metadata
  • Artwork Submission: Represents an uploaded artwork file from a sponsor. Contains file reference, upload timestamp, version number, and approval status. Related to an Artwork Requirement
  • Artwork Specification Document: PDF or document provided by Nimlogix that guides sponsors on artwork requirements. Associated with an Artwork Requirement
  • Artwork Proof: Final proof document uploaded by Nimlogix for sponsor and optional organiser approval. Contains file reference, approval status by sponsor, approval status by organiser (if required)
  • Artwork Version History: Historical record of all submissions for an Artwork Requirement, including rejected versions with rejection reasons

Success Criteria

Measurable Outcomes

  • SC-001: Sponsors can successfully upload files up to 1GB without connection failures
  • SC-002: Artwork upload process resumes automatically after connection interruption without data loss
  • SC-003: Nimlogix receives webhook notifications within 5 seconds of artwork upload or proof approval
  • SC-004: Sponsors receive rejection notifications (both in-app and email) within 1 minute of Nimlogix webhook callback
  • SC-005: 95% of sponsors can complete the artwork upload process without requiring support assistance
  • SC-006: Sponsors can view complete history of all artwork submissions and status changes
  • SC-007: Proof approval workflow (when organiser approval required) completes within defined business timeline
  • SC-008: System handles concurrent uploads and approvals without data corruption or race conditions

Assumptions

  • Chunked upload mechanism will use industry-standard approaches (e.g., multipart uploads with resume capability)
  • Nimlogix API provides reliable webhook endpoints with reasonable timeout thresholds (assumed 30 seconds)
  • Proof documents are typically PDF format
  • Sponsors must convert all artwork to PDF format before upload (simplifies validation and processing)
  • Artwork specification documents are static once created by Nimlogix
  • Stand configuration must be in "approved" or "complete" status before artwork requirements are generated
  • Webhook authentication will use standard approaches (e.g., HMAC signatures, API keys)
  • File storage will use secure, scalable object storage (consistent with existing infrastructure)
  • Maximum of 20 artwork items per stand (based on typical exhibition requirements)
  • Nimlogix webhooks will be idempotent (can be safely retried)
  • Organiser approval requirement and approval sequence (sponsor-first, organiser-first, or parallel) are both configured at event level, not per artwork item
  • Webhook retry mechanism uses exponential backoff (e.g., retry after 1 min, 5 min, 15 min)
  • Administrator email notifications are sent via existing notification system
  • Artwork version history retained for 3 years post-event for business records compliance

Dependencies

  • Stand configuration feature must be complete (006-stand-configuration)
  • Nimlogix API integration for creating artwork requirements
  • Nimlogix webhook endpoints for artwork upload and proof approval notifications
  • Nimlogix webhook callbacks for approval/rejection responses
  • File storage infrastructure for large file handling
  • User notification system for rejection alerts
  • Email notification system for administrator alerts on webhook failures
  • Event management configuration for organiser approval settings (enabled/disabled, approval sequence preference)

Constraints

  • Maximum file size: 1GB per artwork file
  • Upload mechanism must be resilient to network interruptions
  • Webhook delivery must be reliable with appropriate retry mechanisms
  • File storage must be secure and access-controlled
  • Version history must be maintained for audit purposes (retained for event lifecycle + 3 years)
  • System must handle concurrent proof approvals by multiple parties
  • Proof rejection reasons must be captured and stored