← 5. Project & Event Listing
Chunks — 5. Project & Event Listing
The FRD markdown is the source of truth; these chunks are the derived retrieval index used to give the test-case generator only the relevant slices. Rebuilt automatically when the FRD is saved.
112 chunks · ~32,225 tokens
#1
(intro)
~6 tok
Project & Event Listing
#2
(intro)
~1 tok
#
#3
(intro)
~1 tok
#
#4
(intro)
~1 tok
#
#5
(intro)
~1 tok
#
#6
(intro)
~1 tok
#
#7
**Project & Event Listing**
~49 tok
# **Project & Event Listing** **Functional Requirement Document** **BA & Ideation: Deval Chauhan** **Reviewed By: Keval Gajjar** **Updated Date:25 December 2025 Status:** **Version: 1.0**
#8
**Project & Event Listing Module - FRD Summary**
~38 tok
# **Project & Event Listing Module - FRD Summary** **Module:** Project & Event Listing | **FRDs:** 5 | **Test Cases:** 100 | **Date:** December 25, 2024
#9
**Project & Event Listing Module - FRD Summary** > **FRD #1: Projects Listing**
~277 tok
## **FRD #1: Projects Listing** * **Hierarchical Display:** Master projects → Events → Services structure with collapsible rows * **Columns:** Project Name, Event Dates, Client, Brand, Service Areas, Contractor Status Icons, Actions * **Contractor Icons:** 4 status indicators (Contract Signed, Invoice Uploaded, Footage Uploaded, Payment Complete) * **Default Sort:** Nearest upcoming event date (chronological) * **Search:** Real-time filtering by project name, client name, event details * **Filters:** Event types, dates, brands, tags, contractors, team members, clients, lead sources, service areas, venues, packages, service types * **Pagination:** 10/25/50/100 rows per page (default: 10) * **Bulk Selection:** Maximum 50 projects for mass operations * **Auto-refresh:** Every 60 seconds for real-time updates * **Lead vs Booked:** Auto-conversion on first payment receipt * **Service Areas:** Primary shown, additional as "+X more" indicator * **Empty State:** Call-to-action button when no projects exist * **Overdue Highlighting:** Red text/background for past-due events
#10
**Project & Event Listing Module - FRD Summary** > **FRD #2: Events Listing**
~278 tok
## **FRD #2: Events Listing** * **Flattened View:** All events across projects without hierarchy * **Event Naming:** \[Project Name\] - \[Event Type\] auto-generated * **Default Sort:** Chronological by event date * **Service Display:** Each service on separate line with independent contractor management * **Color Coding:** Green (fully assigned), Yellow (partial), Red (unassigned) * **Today's Events:** Special highlighting and top positioning * **Multi-day Events:** Shows both start and end dates * **Primary Event Badge:** Indicates designated primary event * **Check Availability:** Direct integration without page navigation * **Duplicate Booking Warning:** Icon with conflict details for double-booked contractors * **Package Display:** Shows package name and included vs add-on services * **Auto-generated Indicator:** Special badge for lead form created events * **Keyboard Navigation:** Arrow keys for navigation, spacebar to expand/collapse * **Real-time Sync:** Changes reflect immediately in Projects Listing * **Pagination:** 20/50/100 rows per page (default: 20)
#11
**Project & Event Listing Module - FRD Summary** > **FRD #3: Create a New Project**
~301 tok
## **FRD #3: Create a New Project** * **Prerequisites:** At least one brand must be configured * **Mandatory Fields:** Project Name, Brand, Event Type(s), Event Date(s), Service(s), Client * **Brand Lock:** Cannot change brand after project creation * **Event Requirements:** Minimum 1 event per project, maximum 10 events * **Service Requirements:** Minimum 1 service per event * **Primary Event:** Required designation when multiple events selected * **Date Validation:** No past dates allowed (Phase 1) * **Multi-day Events:** Checkbox enables end date field; non-consecutive dates require separate events * **Service Areas:** Multiple geographic locations allowed per event * **Client Management:** Link existing or create new; duplicate detection by name/contact * **Duplicate Booking:** Warning displayed but creation allowed * **Lead Form Auto-creation:** Populates all fields from form submission * **Auto-save:** Every 2 seconds to browser storage * **Character Limits:** Project name max 100 chars (no < > & " ') * **Event Colors:** Uniform across brands via agency settings * **Post-Creation:** Redirects to Project Detail page; triggers automation if enabled
#12
**Project & Event Listing Module - FRD Summary** > **FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings**
~325 tok
## **FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** * **3 Locked Stages:** New Lead → Booked → Post-Event (cannot delete/reorder) * **Stage Customization:** Can rename stages but not delete; add custom statuses within stages * **Visual Design:** Blue stages with purple action buttons * **Drag & Drop:** Kanban-style status updates with optimistic UI * **Status Deletion Rules:** Cannot delete if assigned to events or used in automation * **Status Renaming:** Updates all historical and future references globally * **Automation Default:** Enabled for new projects * **Automation Triggers:** Proposal sent, Contract signed, Payment received, Email sent * **Automation Precedence:** Rules override manual changes unless disabled * **Manual Override:** Can disable automation globally, per project, or per rule * **Time-based Rules:** Status changes X days after trigger event * **Post-Production Logic:** Event completes only when all deliverables marked delivered * **No Deliverables:** Requires manual completion marking * **Conflict Resolution:** Rule priority (1-100) determines execution order * **Bulk Updates:** Support for multiple event status changes * **Audit Trail:** All changes logged with user and timestamp
#13
**Project & Event Listing Module - FRD Summary** > **FRD #5: Archived Listing**
~277 tok
## **FRD #5: Archived Listing** * **Archive Scope:** Project + all associated events/services archived as unit * **Data Preservation:** All data maintained (client info, contractors, payments, activity logs) * **Visual Indicator:** Muted colors or "Archived" badge * **Default View:** Last 90 days of archived projects * **Search/Filter:** Independent from active projects; searches only archived pool * **Restoration Process:** Returns to last known status (not initial) * **Restoration Validation:** Checks for conflicts, past dates, deleted configurations * **Bulk Restore:** Maximum 10 projects simultaneously * **Permanent Delete:** Two-step confirmation; appropriate permissions required * **Read-only Access:** No modifications to archived data * **Export Formats:** CSV, PDF, Excel with all project details * **Activity Log:** Complete history including archival action preserved * **Automation Suspension:** All rules/triggers disabled on archive * **Archive from Any Status:** No restrictions on project state * **Data Retention:** Indefinite unless manually deleted
#14
**Project & Event Listing Module - FRD Summary** > **Business Rules & Validations**
~205 tok
## **Business Rules & Validations** * **Project Hierarchy:** Master Project (client folder) → Sub-projects/Events (service dates) * **No Empty Projects:** Every project must have ≥1 event, every event must have ≥1 service * **Brand Immutability:** Brand cannot change after project creation * **Contractor Tracking:** 4 icons per contractor (contract, invoice, footage, payment) * **Pipeline Sync:** Project status changes cascade to all events * **Automation Wins:** Automation rules always override manual changes when enabled * **Past Date Restriction:** Cannot create/restore events with past dates (Phase 1) * **Archive Impact:** Archived projects excluded from all active counts/widgets * **Lead Conversion:** Automatic on first payment receipt * **Event Limits:** Maximum 10 events per project
#15
**Project & Event Listing Module - FRD Summary** > **Integration Points**
~129 tok
## **Integration Points** * Brand Management (required for project creation) * Client Management (links/creates client records) * Contractor Management (availability and assignment) * Payment Tracking (contractor payments per service) * Pipeline Automation (status triggers and rules) * Post-Production Board (deliverable completion) * Dashboard Widgets (real-time count updates) * Activity Log (complete audit trail) * Contract Management (signing status) * Email System (automation triggers)
#16
**Project & Event Listing Module - FRD Summary** > **TBD Items (Requiring PM Confirmation)**
~136 tok
## **TBD Items (Requiring PM Confirmation)** * Additional user roles for Phase 2 * Deletion of projects with active automations * Manual pipeline stage skipping rules * Automation conflict resolution details * Check Availability module full integration * Save & Resume functionality * Template creation for frequently used configurations * Notification settings for overdue events * Reporting module integration specifics **Total:** 5 FRDs | 12 Sections Each | 100 Test Cases | 61 Acceptance Criteria 1\. Projects Listing
#17
**FRD #1: Projects Listing**
~8 tok
# **FRD #1: Projects Listing**
#18
**FRD #1: Projects Listing** > **1\. Module Overview**
~163 tok
## **1\. Module Overview** **Module Name:** Projects Listing **Purpose:** The Projects Listing module serves as the primary interface for viewing and managing all client projects within the CRM system, displaying a hierarchical structure where master projects contain multiple events and services. **Business Goals:** Enable efficient project management by providing a centralized view of all projects with their associated events, contractor assignments, payment statuses, and operational readiness indicators, facilitating quick identification of projects requiring attention and streamlining workflow management across multiple client engagements.
#19
**FRD #1: Projects Listing** > **2\. User Roles & Permissions**
~87 tok
## **2\. User Roles & Permissions** **Role** **View Projects** **Create Projects** **Edit Projects** **Delete Projects** **Archive Projects** **Manage Settings** Owner Yes Yes Yes Yes Yes Yes Admin Yes Yes Yes Yes Yes Yes Project Manager Yes Yes Yes No Yes No Other Roles (TBD for Phase 2) TBD TBD TBD TBD TBD TBD
#20
**FRD #1: Projects Listing** > **3\. User Flow**
~663 tok
## **3\. User Flow** **Initial Access and Navigation** 3.1 The user navigates to the Projects module by clicking on "Projects" in the left sidebar navigation menu. 3.2 The system loads the Projects Listing page with the default "events" tab selected and displays all active events sorted by the nearest upcoming event date. The user navigates to the project to check the project listing. **Viewing and Expanding Project Information** 3.3 The user views the project list which shows project names with collapsible rows containing nested events and services information. 3.4 The user clicks on the expand arrow icon next to a project name to view the associated events and services within that project. 3.5 The system expands the project row and displays all events with their dates, assigned contractors, service areas, brands, and status information. 3.6 The user reviews the contractor assignment icons which indicate contract signing status, invoice upload status, raw footage upload status, and payment status for each contractor. **Navigation to Detailed Views** 3.7 The user clicks on the "View Details" link for a specific project to navigate to the detailed project view. 3.8 The system redirects the user to the Project Detail page showing comprehensive information about the selected project. **Filtering and Search Operations** 3.9 The user applies filters using the filter dropdown to narrow down the project list based on event types, dates, brands, tags, contractors, team members, clients, lead sources, service areas, venues, packages, or service types. 3.10 The system updates the project listing display to show only the projects matching the selected filter criteria. 3.11 The user uses the search bar at the top of the page to search for specific projects by name or client information. 3.12 The system displays search results in real-time as the user types, filtering the project list to match the search query. **Project Creation** 3.13 The user clicks on the "New Project" button to initiate the creation of a new project. 3.14 The system opens the Create New Project modal for the user to input project details. **Pagination and Bulk Operations** 3.15 The user navigates through pagination controls at the bottom of the list when viewing large numbers of projects. 3.16 The system loads the next or previous page of projects maintaining the current filter and sort settings. 3.17 The user selects multiple projects using checkboxes for bulk actions such as archiving or status updates. 3.18 The system enables bulk action buttons and allows the user to perform the selected action on all checked projects.
#21
**FRD #1: Projects Listing** > **4\. Functional Logic**
~721 tok
## **4\. Functional Logic** **Display and Structure** * The Projects Listing module displays all projects in a hierarchical structure where each master project serves as a container for multiple events, and each event contains one or more services. * When the module initially loads, the system fetches all active projects from the database and sorts them chronologically based on the nearest upcoming event date, ensuring projects with imminent events appear at the top of the list. * Each project row in the listing displays the project name as the primary identifier, with a collapsible indicator arrow that allows users to expand and view nested events and services. * Upon expanding a project row, the system reveals all associated events with their scheduled dates, service types, assigned contractors, and operational status indicators. * For projects with multiple service areas per event, the system displays the primary service area in the collapsed view and indicates additional areas with a "+X more" indicator. **Data Validation and Business Rules** * The system enforces that every project must contain at least one event and every event must have at least one service, preventing the creation of empty projects or events. * The brand associated with each project remains fixed throughout the project lifecycle and cannot be changed once the project is created, ensuring consistency in brand management. * When a project contains multiple events scheduled for the same date and time, the system displays all events without conflict warnings, allowing for concurrent event management. **Contractor and Payment Management** * The contractor assignment section within each expanded event displays four critical status icons that track contract signing status, invoice upload status, raw footage upload status, and payment completion status. * When multiple contractors are assigned to a single event and service combination, the system creates dynamic line items for each contractor, displaying their individual compliance and payment status. * When displaying contractor payment information, the system calculates and shows the total contractor costs per event rather than client revenue, focusing on operational expenses. **Visual Indicators and Status Management** * The system implements color-coded visual indicators where green checkmarks indicate completed items, yellow indicates pending status, and red indicates overdue or missing items. * Projects that have been marked as leads display a "Lead" badge, while confirmed bookings show a "Booked" status, with the conversion happening automatically upon first payment receipt. * For projects with overdue events or missing critical information, the system applies visual highlighting such as red text or background shading to draw attention. **Search and Filter Functionality**
#22
**FRD #1: Projects Listing** > **4\. Functional Logic**
~511 tok
* The filter functionality operates with multiple selection capability, allowing users to combine various filter criteria such as event type with date range and contractor availability. * The search functionality performs real-time string matching against project names, client names, and event descriptions, updating results dynamically as the user types. * The system maintains filter and sort preferences during the user session, preserving selected criteria when navigating between pages or returning from detail views. **Performance and Data Loading** * The listing automatically refreshes every 60 seconds to capture any updates made by other users, ensuring data currency without requiring manual page refresh. * The pagination system loads 10 projects per page by default, with options to adjust to 25, 50, or 100 projects per page based on user preference. * The system implements lazy loading for expanded project details, fetching event and service information only when a user expands a specific project row. **User Interactions and Navigation** * The View Details action for each project opens in the same window by default, with an option to right-click and open in a new tab for multi-project comparison. * Bulk selection functionality allows users to select up to 50 projects at once for mass operations, with a warning message appearing when attempting to exceed this limit. * When no projects exist in the system, the module displays an empty state message with a call-to-action button to create the first project. **System Integration and Tracking** * The module integrates with the dashboard widgets to update counts for new events, unassigned contractors, and date-pending events in real-time. * The system tracks and displays the last modified timestamp for each project, allowing users to identify recently updated projects. * The system maintains audit logging for all actions performed in the Projects Listing, tracking user actions, timestamps, and changes made for compliance purposes.
#23
**FRD #1: Projects Listing** > **5\. Field Details & Validations**
~285 tok
## **5\. Field Details & Validations** **Field Name** **Field Type** **Validation Rules** Project Name Text Required, Max 100 characters, Alphanumeric and special characters allowed except < > & " ' Event Date DateTime Required, Cannot be in the past for Phase 1, Format: MM/DD/YYYY HH:MM AM/PM Event Type Dropdown Required, Dynamically fetched from brand settings, At least one must be selected Service Type Multi-select Required, At least one service per event, Fetched from brand configuration Brand Dropdown Required, Cannot be changed after project creation, Fetched from agency settings Client Name Text Required, Max 100 characters, Linked to client record Lead Source Dropdown Optional, Fetched from agency settings Service Area Text/Dropdown Optional, Multiple areas allowed per event Venue Text Optional, Max 200 characters Package Dropdown Optional, Fetched from package settings Tags Multi-select Optional, Custom tags allowed, Max 10 tags per project Search Query Text No character limit, Real-time search with 300ms debounce Rows Per Page Dropdown Options: 10, 25, 50, 100, Default: 10
#24
**FRD #1: Projects Listing** > **6\. Success Message Handling**
~184 tok
## **6\. Success Message Handling** **Operation** **Success Message** **Trigger Condition** **Post-Success Action** Project Expanded No message displayed User clicks expand arrow Display nested events and services Filter Applied "Showing X projects matching your criteria" User applies one or more filters Update listing display Search Completed "Found X projects matching '\[search term\]'" User performs search Display filtered results Bulk Selection "X projects selected" User selects multiple projects Enable bulk action buttons Page Navigation No message displayed User changes page Load requested page data Sort Applied "Projects sorted by \[criteria\]" User changes sort order Reorder project listing
#25
**FRD #1: Projects Listing** > **7\. Error Message Handling**
~283 tok
## **7\. Error Message Handling** **Error Scenario** **Error Message** **Trigger Condition** **Required Action** No Projects Found "No projects found. Create your first project to get started." No projects exist in system Display create project button Search No Results "No projects match your search. Try different keywords." Search returns empty results Clear search or modify query Filter No Results "No projects match the selected filters. Try adjusting your criteria." Filters return no projects Modify or clear filters Loading Failed "Unable to load projects. Please refresh the page." Database connection error Retry loading or contact support Pagination Error "Unable to load page. Please try again." Page navigation fails Return to previous page Expansion Failed "Unable to load project details. Please try again." Event details fetch fails Retry expansion Session Timeout "Your session has expired. Please log in again." User session expires Redirect to login page Permission Denied "You don't have permission to view these projects." Insufficient user permissions Contact administrator
#26
**FRD #1: Projects Listing** > **8\. Edge Cases**
~314 tok
## **8\. Edge Cases** **Edge Case** **System Behavior** **Fallback Action** **User Notification** 1000+ projects in list Enable server-side pagination with virtual scrolling Load first 100 projects only "Showing first 100 projects. Use filters to narrow results." Concurrent user updates Implement optimistic locking with version control Show conflict resolution dialog "This project was updated by another user. Refresh to see changes." Multiple same-time events Display all events without warnings Show events in chronological then alphabetical order No notification needed Network connectivity loss Cache last loaded state in browser storage Display cached data with indicator "Working offline. Some features may be limited." Deleted contractor in list Show contractor name with "(Deleted)" suffix Maintain historical data integrity No notification needed Invalid filter combination Prevent selection of conflicting filters Disable incompatible options "This filter combination is not valid." Slow loading (>3 seconds) Show skeleton loading placeholders Display progress indicator "Loading projects..." Browser back button usage Maintain filter and pagination state Restore previous view state No notification needed
#27
**FRD #1: Projects Listing** > **9\. Acceptance Criteria**
~344 tok
## **9\. Acceptance Criteria** * The Projects Listing page must load within 2 seconds for up to 100 projects with standard network conditions. * All projects must be displayed in chronological order based on the nearest upcoming event date by default. * Users must be able to expand and collapse project rows to view nested events and services without page refresh. * The four contractor status icons must accurately reflect real-time status for contract, invoice, footage, and payment. * Filter functionality must support multiple simultaneous filters with AND logic applied between different filter types. * Search functionality must return results within 500ms of the user stopping typing with accurate string matching. * Pagination controls must correctly navigate between pages while maintaining applied filters and sort order. * The system must prevent creation of projects without at least one event and one service per event. * Bulk selection must support up to 50 projects with appropriate warning messages for exceeding limits. * The module must automatically refresh the listing every 60 seconds without disrupting user interactions. * Empty state messaging must be displayed when no projects exist with clear call-to-action for project creation. * All user actions must be logged in the audit trail with timestamp and user identification.
#28
**FRD #1: Projects Listing** > **10\. Manual Test Cases**
~68 tok
## **10\. Manual Test Cases** Test cases have been created in a separate Excel file: [Projects\_Listing\_Complete\_Test\_Cases.xlsx](https://docs.google.com/spreadsheets/d/1WnLW7AOtygIpIm6qXRDVz9AaEpGiiB0f/edit?usp=drive_link&ouid=105170312247554220827&rtpof=true&sd=true)
#29
**FRD #1: Projects Listing** > **11\. Dependencies**
~365 tok
## **11\. Dependencies** **Dependency Type** **Component/Module** **Description** **Fallback Behavior** Internal Module Brand Management Fetches available brands for project assignment Display error if brands not configured Internal Module Client Management Links projects to client records Cannot create project without client Internal Module Event Types Configuration Retrieves configured event types per brand Show error if no event types defined Internal Module Service Configuration Fetches available services per brand Cannot create event without services Internal Module Contractor Management Displays contractor assignment and status Show "Unassigned" if no contractors Internal Module Dashboard Widgets Updates widget counts for events and contractors Widgets show stale data if sync fails Internal Module Pipeline Automation Triggers status updates based on project actions Manual status management required Internal Module Payment Tracking Displays contractor payment status Payment status shows as unknown Internal Module Activity Log Records and displays project activity Activity tracking disabled External Service File Storage API Stores uploaded invoices and footage Upload functionality disabled System Component Database Persistent storage for all project data Complete module failure System Component Caching Layer Improves performance for frequently accessed data Slower page load times
#30
**FRD #1: Projects Listing** > **12\. References**
~41 tok
## **12\. References** * Figma: [Figma](https://www.figma.com/design/ej0kxwP45mDKmZCZfAJ5O8/Pixally?node-id=13409-70871&t=iPpK6Wpq1hKigBIn-0) 2\. Events Listing
#31
**FRD #2: Events Listing**
~7 tok
# **FRD #2: Events Listing**
#32
**FRD #2: Events Listing** > **1\. Module Overview**
~152 tok
## **1\. Module Overview** **Module Name:** Events Listing **Purpose:** The Events Listing module provides a dedicated view for managing individual events across all projects, enabling users to focus on event-level details, services, and contractor assignments without the hierarchical project structure. **Business Goals:** Facilitate efficient event management by providing a streamlined view of all events with their associated services, contractor details, and operational status, enabling quick identification of events requiring immediate attention and supporting day-to-day operational workflows.
#33
**FRD #2: Events Listing** > **2\. User Roles & Permissions**
~86 tok
## **2\. User Roles & Permissions** **Role** **View Events** **Create Events** **Edit Events** **Delete Events** **Assign Contractors** **Manage Services** Owner Yes Yes Yes Yes Yes Yes Admin Yes Yes Yes Yes Yes Yes Project Manager Yes Yes Yes No Yes Yes Other Roles (TBD for Phase 2) TBD TBD TBD TBD TBD TBD
#34
**FRD #2: Events Listing** > **3\. User Flow**
~617 tok
## **3\. User Flow** **Initial Access and Display** 3.1 The user navigates to the Events Listing by clicking on the "Events" tab within the Project Management module. 3.2 The system loads the Events Listing view displaying all events across all projects sorted by event date in chronological order. **Event Information Review** 3.3 The user views the event list showing event names, dates, associated services, assigned contractors, and current status for each event. 3.4 The user identifies events requiring attention through visual indicators such as missing contractor assignments or pending tasks. 3.5 The user clicks on a specific event row to view expanded details including all services and contractor assignments. 3.6 The system expands the selected event row revealing service-level information with contractor names, payment status, and compliance indicators. **Filtering and Search Operations** 3.7 The user applies filters from the filter panel to narrow the event list based on date ranges, event types, service types, or contractor availability. 3.8 The system updates the event listing to display only events matching the selected filter criteria while maintaining the sort order. 3.9 The user searches for specific events using the search bar by entering event names, client names, or service types. 3.10 The system displays filtered results in real-time as the user types in the search field. **Event Management Actions** 3.11 The user clicks on the "View Details" button for an event to navigate to the detailed event management page. 3.12 The system redirects the user to the Event Detail page showing comprehensive information about the selected event. 3.13 The user selects multiple events using checkboxes to perform bulk operations such as status updates or contractor assignments. 3.14 The system enables bulk action buttons allowing the user to apply changes to all selected events simultaneously. **Contractor Assignment and Navigation** 3.15 The user clicks on the "Check Availability" button for events with unassigned contractors to find available team members. 3.16 The system opens the Contractor Availability module displaying available contractors for the selected event date and service type. 3.17 The user navigates through pagination controls when viewing large numbers of events across multiple pages. 3.18 The system loads the requested page of events while preserving the current filter and sort settings.
#35
**FRD #2: Events Listing** > **4\. Functional Logic**
~748 tok
## **4\. Functional Logic** **Event Display and Structure** * The Events Listing module operates as a flattened view of all events across all projects, removing the hierarchical project structure to focus on individual event management. * Upon loading the Events tab, the system retrieves all events from active projects and displays them in a single list sorted by event date with the nearest upcoming events appearing first. * Each event row in the listing displays the event name derived from the parent project name with the event type appended, creating unique identifiers for each event. * The system displays the event date and time prominently for each event, with special formatting for multi-day events showing both start and end dates. **Service and Contractor Management** * For each event, the module shows all associated services as sub-items within the event row, with each service displaying its own set of contractor assignments and status indicators. * The contractor assignment section for each service shows assigned contractor names with visual indicators for their current status including contract signed, invoice uploaded, footage uploaded, and payment completed. * When an event has multiple services, the system displays each service on a separate line within the expanded event view, allowing independent contractor management per service. * When displaying contractor costs, the module shows individual contractor payments per service rather than aggregated project totals, supporting granular financial tracking. **Visual Indicators and Status Tracking** * The module implements color-coded status indicators where events with all contractors assigned and confirmed appear in green, partially assigned events in yellow, and unassigned events in red. * Events that are past their scheduled date but incomplete display with a special "overdue" indicator to highlight items requiring immediate attention. * Events that have been marked as completed in the pipeline display with a checkmark icon and are visually distinguished from active events. * The system tracks and displays the primary event designation for projects with multiple events, showing a "Primary" badge next to the designated primary event. **Filtering and Search Capabilities** * The filter functionality in the Events Listing operates independently from the Projects Listing filters, maintaining separate filter states between the two views. * When filtering by date range, the system includes all events that fall within the specified range, including multi-day events that partially overlap with the selected dates. * The search functionality searches across event names, parent project names, client names, service types, and contractor names to provide comprehensive search results. * Events from archived projects are excluded from the main Events Listing but can be viewed by applying the "Include Archived" filter option. **Special Event Handling**
#36
**FRD #2: Events Listing** > **4\. Functional Logic**
~505 tok
* For events with multiple service areas, the system displays all service areas in the listing with the ability to view and manage contractors for each area independently. * The module automatically highlights events scheduled for the current day with a special indicator and sorts them to the top of the list when using default sorting. * When an event has no assigned contractors for any service, the system displays a prominent "Unassigned" badge and includes these events in the unassigned contractors dashboard widget count. * Events with duplicate bookings where the same contractor is assigned to multiple events at the same time display a warning icon with conflict details. **System Integration and Performance** * The module integrates with the pipeline automation system to display current pipeline status for each event, with status badges showing the current stage. * The Check Availability feature integration allows users to quickly find available contractors for unassigned services directly from the event listing without navigation. * The system maintains real-time synchronization with the Projects Listing, ensuring any changes made in either view are immediately reflected in both. * The pagination system in Events Listing loads 20 events per page by default, with options to adjust to 50 or 100 events per page based on user preference. **Advanced Features** * For events that are part of a package deal, the module displays the package name and indicates which services are included in the package versus add-on services. * The listing refreshes automatically every 60 seconds to capture updates from other users, with a manual refresh button available for immediate updates. * Events created through automated lead forms display with a special indicator showing they were auto-generated rather than manually created. * The module supports keyboard navigation allowing users to move through the event list using arrow keys and expand/collapse events using the spacebar.
#37
**FRD #2: Events Listing** > **5\. Field Details & Validations**
~276 tok
## **5\. Field Details & Validations** **Field Name** **Field Type** **Validation Rules** Event Name Text (Auto-generated) Format: \[Project Name\] - \[Event Type\], Max 150 characters Event Date DateTime Required, Cannot be in the past for Phase 1, Format: MM/DD/YYYY HH:MM AM/PM End Date DateTime Required for multi-day events, Must be after start date Event Type Text (Display) Inherited from project configuration, Read-only in listing Service Type Multi-select At least one required per event, Cannot be empty Contractor Name Dropdown Optional, Fetched from contractor database Service Area Text Optional, Multiple allowed per event, Max 100 characters per area Status Dropdown Auto-managed by pipeline, Manual override available Payment Status Icon Display Read-only, Updated from payment module Contract Status Icon Display Read-only, Updated from contract module Search Query Text No character limit, Searches across multiple fields Date Range Filter Date Range Start date must be before end date Rows Per Page Dropdown Options: 20, 50, 100, Default: 20
#38
**FRD #2: Events Listing** > **6\. Success Message Handling**
~188 tok
## **6\. Success Message Handling** **Operation** **Success Message** **Trigger Condition** **Post-Success Action** Event Expanded No message displayed User clicks expand arrow Display service details Filter Applied "Showing X events matching your criteria" User applies filters Update event listing Search Completed "Found X events matching '\[search term\]'" User performs search Display filtered results Bulk Selection "X events selected for bulk action" User selects multiple events Enable bulk actions Contractor Assigned "Contractor successfully assigned to event" Contractor assignment completed Update event display Status Updated "Event status updated to \[status\]" Manual status change Refresh event status badge
#39
**FRD #2: Events Listing** > **7\. Error Message Handling**
~252 tok
## **7\. Error Message Handling** **Error Scenario** **Error Message** **Trigger Condition** **Required Action** No Events Found "No events found. Events will appear here once projects are created." No events exist Navigate to create project Search No Results "No events match your search criteria." Search returns empty Modify search terms Filter No Results "No events match the selected filters." Filters return nothing Adjust filter criteria Loading Failed "Unable to load events. Please refresh the page." Database error Retry or contact support Contractor Conflict "This contractor is already booked for this time." Double booking detected Choose different contractor Date Range Invalid "End date must be after start date." Invalid date range Correct date selection Assignment Failed "Unable to assign contractor. Please try again." Assignment error Retry assignment Status Update Failed "Unable to update event status." Pipeline update fails Check pipeline settings
#40
**FRD #2: Events Listing** > **8\. Edge Cases**
~291 tok
## **8\. Edge Cases** **Edge Case** **System Behavior** **Fallback Action** **User Notification** 500+ events in single day Group events by hour with expandable sections Implement time-based grouping "Events grouped by time for easier viewing" All contractors unavailable Highlight event in red with warning icon Show "No contractors available" "No contractors available for this date" Multi-day event spanning months Display on all affected dates with continuation indicator Show full date range in tooltip Display date range in event details Simultaneous status updates Last update wins with audit trail Log all attempts "Event was updated by another user" Service removed from brand Display with "Discontinued" label Maintain historical data "This service is no longer available" Past event modification Allow view but restrict edit for Phase 1 Display in read-only mode "Past events cannot be modified" Network interruption Cache current view in browser Display cached data "Working offline - changes will sync when connected" Duplicate event names Append unique identifier Add (#2, #3) to duplicates Display full unique name
#41
**FRD #2: Events Listing** > **9\. Acceptance Criteria**
~310 tok
## **9\. Acceptance Criteria** * The Events Listing must load within 2 seconds for up to 200 events under standard network conditions. * Events must be displayed in chronological order by default with clear date and time information. * Each event must show all associated services with their respective contractor assignments and status indicators. * The four contractor status icons must accurately reflect current status for each service-contractor combination. * Filters must work independently from Projects Listing filters with separate state management. * Search functionality must return relevant results within 500ms across all searchable fields. * Events requiring attention such as unassigned contractors must be visually distinguished from completed events. * Multi-day events must display correctly with both start and end dates visible in the listing. * The Check Availability integration must open without page navigation and return results quickly. * Duplicate booking warnings must appear immediately when conflicts are detected. * Pagination must maintain filter and sort settings when navigating between pages. * The listing must auto-refresh every 60 seconds without disrupting user interactions.
#42
**FRD #2: Events Listing** > **10\. Manual Test Cases**
~68 tok
## **10\. Manual Test Cases** Test cases have been created in a separate Excel file: [Events\_Listing\_Complete\_Test\_Cases.xlsx](https://docs.google.com/spreadsheets/d/1ket-SeFU0D3Ry3w_M5GC04RYOtXpu9qs/edit?usp=drive_link&ouid=105170312247554220827&rtpof=true&sd=true)
#43
**FRD #2: Events Listing** > **11\. Dependencies**
~287 tok
## **11\. Dependencies** **Dependency Type** **Component/Module** **Description** **Fallback Behavior** Internal Module Projects Management Parent module for all events Cannot function without projects Internal Module Contractor Management Provides contractor data and availability Show unassigned status Internal Module Pipeline Automation Manages event status transitions Manual status management Internal Module Payment Tracking Tracks contractor payments per service Payment status unknown Internal Module Contract Management Manages contractor agreements Contract status unavailable Internal Module Check Availability Module Finds available contractors Feature disabled Internal Module Service Configuration Defines available services per brand Cannot add services Internal Module Dashboard Widgets Updates event-related widget counts Stale widget data External Service Calendar Integration Syncs with external calendars No calendar sync System Component Database Stores all event data Complete failure System Component Real-time Sync Keeps data synchronized across views Manual refresh required
#44
**FRD #2: Events Listing** > **12\. References**
~43 tok
## **12\. References** * Figma: [Figma](https://www.figma.com/design/ej0kxwP45mDKmZCZfAJ5O8/Pixally?node-id=13409-80834&t=iPpK6Wpq1hKigBIn-0) 3\. Create a New Project
#45
**FRD: Create a New Project**
~8 tok
# **FRD: Create a New Project**
#46
**FRD: Create a New Project** > **1\. Module Overview**
~162 tok
## **1\. Module Overview** **Module Name:** Create a New Project **Purpose:** The Create a New Project module enables users to manually create new projects with associated events and services through a guided 3-step modal wizard, or automatically generate projects through lead form submissions, establishing the foundational structure for client engagements. **Business Goals:** Streamline project creation by providing an intuitive step-by-step interface for setting up new client projects with proper event and service configuration, ensuring data integrity from project inception while supporting both manual and automated creation workflows.
#47
**FRD: Create a New Project** > **2\. User Roles & Permissions**
~80 tok
## **2\. User Roles & Permissions** **Role** **Create Projects** **Auto-Generate Projects** **Set Primary Events** **Configure Services** **Assign Team** Owner Yes Yes Yes Yes Yes Admin Yes Yes Yes Yes Yes Project Manager Yes Yes Yes Yes Yes Other Roles (TBD for Phase 2) TBD TBD TBD TBD TBD
#48
**FRD: Create a New Project** > **3\. User Flow**
~782 tok
## **3\. User Flow** **Modal Initialization and Brand Validation** 3.1 The user clicks the "New Project" button from either the Projects Listing page or the dashboard to initiate project creation. 3.2 The system opens the Create New Project modal dialog as a 3-step wizard, displaying "1/3" as the step indicator at the top. 3.3 The system performs an initial check for brand availability; if no brands are configured, the system displays a blocking error message and prevents project creation. 3.4 If brands exist, the system populates the Brand dropdown with all configured brands and the Lead Source dropdown with active lead sources pulled from agency settings. **Step 1: Basic Project Information** 3.5 The user enters the project name in the Name field, which serves as the master project identifier. 3.6 The user selects a brand from the Brand dropdown; this selection is permanent and cannot be changed after project creation. 3.7 The system loads brand-specific configurations including available event types and services based on the selected brand. 3.8 The user optionally selects a lead source from the Lead Source dropdown. 3.9 If the user selects "Other" as the lead source, the system reveals a "Specify Lead Source" text field below the Lead Source dropdown, requiring the user to enter a custom source description. 3.10 The user clicks "Next" to proceed to Step 2; the system validates that all required fields (Name and Brand) are filled before allowing progression. **Step 2: Event Type Selection** 3.11 The system displays the step indicator as "2/3" and shows the question "What event types are included in this project?" with all available event types for the selected brand displayed as selectable chip/tag buttons. 3.12 The user selects one or more event types by clicking the corresponding chips; selected chips are visually highlighted (e.g., golden/amber outline). 3.13 Once the user selects event types, the system displays a "Primary Event" dropdown below the event chips, pre-populated with the selected event types. 3.14 If only one event type is selected, the system automatically designates it as the primary event in the dropdown. 3.15 If multiple event types are selected, the user must designate one as the primary event from the Primary Event dropdown. 3.16 The user clicks "Next" to proceed to Step 3; the system validates that at least one event type is selected and a primary event is designated. The user can also click "Back" to return to Step 1. **Step 3: Event Details Configuration** 3.17 The system displays the step indicator as "3/3" and lists each selected event type as a collapsible section, with the primary event displayed first and visually distinguished with a colored left border and "(PRIMARY)" label. 3.18 For each event, the system displays the following fields: Service Area, Start Date, Start Time, End Date, End Time, Multi-day event checkbox, Time Zone, and Services. 3.19 The user types in the Service Area field; the system displays a filtered list of matching service areas from the brand settings. The user selects from the suggestions.
#49
**FRD: Create a New Project** > **3\. User Flow**
~475 tok
3.20 The user enters the Start Date and Start Time for each event using the respective date and time picker controls. 3.21 By default, only the Start Date and Start Time fields are visible. The End Date and End Time fields are hidden. The user can check the "This is multi-day event" checkbox to reveal the End Date and End Time fields. 3.22 When the multi-day checkbox is checked, the End Date and End Time fields appear. The system validates that the End Date/Time occurs after the Start Date/Time. 3.23 The Time Zone field is a project-level setting that applies to all events within the project. It is displayed within each event section but shares the same value across all events. 3.24 The Time Zone field is disabled by default until a time value (Start Time) is entered in any event. Once a time is entered, the Time Zone field becomes enabled across all event sections. 3.25 Upon enabling, the Time Zone field is pre-populated with the timezone the user has configured in their account/agency settings. By default, this is EDT/EST if the user has not set a custom timezone in settings. 3.26 The user can override the pre-populated timezone by selecting a different value from the Time Zone dropdown. Changing the timezone in any event section updates it for all events in the project. 3.27 The user selects one or more services for each event from the services displayed as chip/tag buttons, populated based on the brand configuration. 3.28 The user clicks "Finish" to submit the project creation request. The user can also click "Back" to return to Step 2. 3.29 The system validates all required fields and business rules across all three steps before processing the creation request. 3.30 Upon successful creation, the system creates the project with all associated events and services, displays a success message, and redirects the user to the newly created project detail page.
#50
**FRD: Create a New Project** > **4\. Functional Logic**
~7 tok
## **4\. Functional Logic**
#51
**FRD: Create a New Project** > **4\. Functional Logic** > 4.1 Step 1 — Basic Project Information
~774 tok
### 4.1 Step 1 — Basic Project Information **Prerequisites and Initial Validation** 4.1.1 The Create a New Project module enforces prerequisite validation by checking that at least one brand exists in the system before allowing project creation, as projects must be associated with a brand from inception. 4.1.2 When the modal opens, the system performs an initial check for brand availability and displays a blocking error message with instructions to configure brands if none exist, preventing the user from proceeding. **Project Name** 4.1.3 The project name field accepts alphanumeric characters and standard punctuation but restricts special characters (< > & " ') that could cause display or database issues, with a maximum length of 100 characters. 4.1.4 The system validates the project name in real-time, showing inline error messages for invalid input or exceeding the character limit. **Brand Selection** 4.1.5 Brand selection triggers a cascade of dynamic updates throughout the subsequent steps, loading brand-specific event types, services, packages, and configuration settings that determine available options in Steps 2 and 3. 4.1.6 Once a brand is selected for a project, the system locks this association permanently, preventing brand changes after creation to maintain data integrity and reporting consistency. 4.1.7 The brand dropdown displays all brands configured in the agency settings. If only one brand exists, it may be auto-selected. **Lead Source Selection** 4.1.8 Lead source selection is optional; if the user skips it, the system displays a hyphen (--) as the default value in the project details. 4.1.9 The lead source dropdown list is dynamically pulled from the agency-level Lead Source settings, displaying all active lead sources configured by the agency. 4.1.10 Any lead sources added or removed in agency settings are immediately reflected in the project creation dropdown. 4.1.11 When "Other" is selected as the lead source, the system dynamically reveals an additional text field labelled "Specify Lead Source" directly below the Lead Source dropdown. 4.1.12 The "Specify Lead Source" field is required when "Other" is selected; the system prevents the user from proceeding to Step 2 until this field is filled. The field accepts free text with a maximum length of 100 characters. 4.1.13 If the user changes the lead source selection from "Other" to a different option, the "Specify Lead Source" field is hidden and its value is cleared. 4.1.14 The custom lead source text entered in the "Specify Lead Source" field is saved with the project record for marketing analytics and ROI tracking. It is stored as a custom entry and does not get added to the agency's master lead source list. 4.1.15 Unlike brand selection, the lead source can be updated after project creation from the project details. **Step Navigation** 4.1.16 The "Next" button validates that all required fields (Name and Brand) are filled before allowing progression to Step 2. If "Other" is selected as lead source, the "Specify Lead Source" field is also validated.
#52
**FRD: Create a New Project** > **4\. Functional Logic** > 4.1 Step 1 — Basic Project Information
~34 tok
4.1.17 The "Cancel" button closes the modal without saving any data. A confirmation prompt may be displayed if the user has entered data.
#53
**FRD: Create a New Project** > **4\. Functional Logic** > 4.2 Step 2 — Event Type Selection
~511 tok
### 4.2 Step 2 — Event Type Selection **Event Type Display and Selection** 4.2.1 The event type chips are dynamically populated based on the brand selected in Step 1, displaying only event types that have been enabled for that specific brand in agency settings. 4.2.2 Colors for event types are uniformly set across all brands through agency settings, ensuring consistent visual identification regardless of brand selection. 4.2.3 The user can select multiple event types by clicking individual chips. Selected chips are visually distinguished with a highlighted border or background color (golden/amber). 4.2.4 Clicking a selected chip deselects it, removing it from the selection. If the deselected event was the primary event, the primary event dropdown resets and the user must select a new primary event. **Primary Event Designation** 4.2.5 The Primary Event dropdown appears once at least one event type is selected. It is populated only with the currently selected event types. 4.2.6 When only one event type is selected, the system automatically sets it as the primary event in the dropdown. The user can still see the dropdown but cannot change the selection to empty. 4.2.7 When multiple event types are selected, the user must manually select one as the primary event. The "Next" button remains disabled until a primary event is designated. 4.2.8 The primary event designation affects automation triggers, payment schedules, and default workflows, with the system using the primary event's date as the reference point for time-based automations. 4.2.9 If the user adds or removes event types after designating a primary event, and the primary event type is removed, the system clears the primary event selection and requires the user to re-designate. **Step Navigation** 4.2.10 The "Next" button validates that at least one event type is selected and a primary event is designated before allowing progression to Step 3. 4.2.11 The "Back" button navigates the user to Step 1 with all previously entered data preserved.
#54
**FRD: Create a New Project** > **4\. Functional Logic** > 4.3 Step 3 — Event Details Configuration
~777 tok
### 4.3 Step 3 — Event Details Configuration **Event Section Layout** 4.3.1 Each selected event type is displayed as a separate collapsible section in Step 3. The primary event is always displayed first at the top, visually distinguished with a colored left border (matching the event type color) and a "(PRIMARY)" label next to the event type name. 4.3.2 Non-primary events are displayed below the primary event, each with their respective colored left border but without the "(PRIMARY)" label. 4.3.3 Each event section contains the following fields in order: Service Area, Start Date, Start Time, End Date, End Time, Multi-day event checkbox, Time Zone, and Services. **Service Area** 4.3.4 The Service Area field is an optional type-ahead/autocomplete input. The user can manually type in the field, and the system displays a filtered list of matching service areas from the brand settings. 4.3.5 The autocomplete suggestions are populated from the service areas configured under the selected brand in agency settings. As the user types, the list filters to show only relevant matches. 4.3.6 The user selects a service area from the filtered list. If no matching service areas are found, no suggestions are displayed. 4.3.7 Any service areas added or removed in brand settings are reflected in the autocomplete list the next time the modal is opened. **Date and Time Configuration** 4.3.8 The Start Date field uses a date picker control and is required. The date format follows DD/MM/YYYY. 4.3.9 The Start Time field uses a time picker control with 12-hour format (hh:mm AM/PM) and is optional. 4.3.10 The date picker disables all past dates, preventing the user from selecting them. Only the current date and future dates are available for selection during Phase 1. 4.3.11 By default, only the Start Date and Start Time fields are visible. The End Date and End Time fields are hidden and only appear when the user checks the "This is multi-day event" checkbox. **Multi-Day Event Logic** 4.3.12 The "This is multi-day event" checkbox, when checked, reveals the End Date and End Time fields below the Start Date and Start Time fields. 4.3.13 When multi-day is enabled, the user can independently set the End Date and End Time using their respective pickers. 4.3.14 For multi-day events, the system validates that the End Date is on or after the Start Date. If the End Date is the same as the Start Date, the End Time must be after the Start Time. 4.3.15 Only date fields (Start Date, End Date) are required when multi-day is enabled. Time fields remain optional. 4.3.16 When the multi-day checkbox is unchecked, the End Date and End Time fields are hidden and their values are cleared. **Time Zone Logic** 4.3.17 The Time Zone is a project-level setting that applies uniformly to all events within the project. Although the field is displayed within each event section for visibility, changing it in any section updates the value across all events. 4.3.18 The Time Zone field is disabled by default when the modal loads or when no time has been entered for any event in the project.
#55
**FRD: Create a New Project** > **4\. Functional Logic** > 4.3 Step 3 — Event Details Configuration
~743 tok
4.3.19 Once the user enters a Start Time value in any event section, the Time Zone field becomes enabled across all event sections simultaneously. 4.3.20 Upon enabling, the Time Zone field is pre-populated with the timezone configured in the user's account/agency settings. By default, if the user has not configured a custom timezone, the system uses EDT/EST. 4.3.21 The user can override the pre-populated timezone by selecting a different value from the Time Zone dropdown, which lists all standard IANA timezones. Changing the timezone in one event section updates it across all event sections. 4.3.22 The selected timezone is stored at the project level and is used for all time-based displays, notifications, and automation triggers related to the project's events. 4.3.23 The system stores all event times in UTC internally and converts to the project's designated timezone for display purposes. **Service Configuration** 4.3.25 Services are displayed as selectable chip/tag buttons below each event section, populated based on the brand's service configuration. 4.3.26 The user must select at least one service per event. The system prevents the user from finishing project creation if any event lacks at least one service selection. 4.3.27 When only one service exists for a brand, the system automatically selects it as the default for all events, reducing manual selection requirements. 4.3.28 Selected service chips are visually highlighted to indicate selection. **Step Navigation and Submission** 4.3.29 The "Finish" button validates all required fields across all event sections before processing the creation request. If any event section has missing required fields, the system highlights the respective section and displays inline errors. 4.3.30 The "Back" button navigates the user to Step 2 with all previously entered data preserved, including the event detail configurations in Step 3. **Project Creation Process** 4.3.31 Upon successful validation and submission, the system generates a unique project ID, creates all associated event records with their services and configurations, stores the project-level timezone, and initializes the project in the pipeline's default status (e.g., "Inquiry"). 4.3.32 The creation process triggers initial automation rules if automation is enabled, setting up workflow sequences, payment schedules, and notification triggers based on project configuration. 4.3.33 Error handling during creation implements transaction rollback, ensuring that if any part of the creation process fails, no partial data is saved to maintain database consistency. 4.3.34 After project creation, the system updates all relevant dashboard widgets and counts, including new events widget, unassigned contractors count, and project totals. 4.3.35 The system logs all project creation activities in the audit trail, capturing the creating user, timestamp, and all initial project configuration for compliance tracking.
#56
**FRD: Create a New Project** > **5\. Field Details & Validations**
~10 tok
## **5\. Field Details & Validations**
#57
**FRD: Create a New Project** > **5\. Field Details & Validations** > Step 1 Fields
~163 tok
### Step 1 Fields **Field Name** **Field Type** **Required** **Validation Rules** Project Name Text Input Yes Max 100 characters. No < > & " ' characters. Cannot be empty. Brand Dropdown Yes Must have at least one brand configured. Cannot be changed after creation. Populated from agency settings. Lead Source Dropdown No Populated from agency-level Lead Source settings. If skipped, displays "--" in project details. Specify Lead Source Text Input Yes (only when Lead Source = "Other") Max 100 characters. Visible only when "Other" is selected. Cannot be empty when visible. Hidden and cleared when Lead Source changes from "Other".
#58
**FRD: Create a New Project** > **5\. Field Details & Validations** > Step 2 Fields
~104 tok
### Step 2 Fields **Field Name** **Field Type** **Required** **Validation Rules** Event Types Multi-select Chips Yes At least one event type must be selected. Max 10 event types per project. Populated dynamically based on selected brand. Primary Event Dropdown Yes Populated with currently selected event types only. Auto-selected when only one event type is chosen. Must be designated before proceeding.
#59
**FRD: Create a New Project** > **5\. Field Details & Validations** > Step 3 Fields (Per Event)
~341 tok
### Step 3 Fields (Per Event) **Field Name** **Field Type** **Required** **Validation Rules** Service Area Type-ahead / Autocomplete No Options fetched from service areas configured under the selected brand in agency settings. Filters as user types. Start Date Date Picker Yes DD/MM/YYYY format. Past dates are disabled in the picker (not selectable). Start Time Time Picker No 12-hour format (hh:mm AM/PM). End Date Date Picker Yes (when multi-day enabled) DD/MM/YYYY format. Must be on or after Start Date. Only visible when "This is multi-day event" checkbox is checked. End Time Time Picker No 12-hour format (hh:mm AM/PM). Must be after Start Time when End Date equals Start Date. Disabled until Start Time is selected. Only visible when "This is multi-day event" checkbox is checked. Time Zone Dropdown No Project-level setting (applies to all events). Disabled until Start Time is entered in any event. Pre-populated from user's account/agency settings (default: EDT/EST). Lists all standard IANA timezones. Changing in one event section updates all. Cleared if all Start Times are removed. This is multi-day event Checkbox No Default: unchecked. When checked, enables independent End Date and End Time editing. Services Multi-select Chips Yes At least one service per event. Populated from brand service configuration.
#60
**FRD: Create a New Project** > **6\. Error Message Handling**
~563 tok
## **6\. Error Message Handling** **Error Scenario** **Error Message** **Trigger Condition** **Required Action** No Brands Configured "No brands found. Please configure at least one brand before creating projects." Brand check fails on modal open Navigate to brand setup Missing Project Name "Project name is required." User clicks "Next" with empty Name field Enter project name Invalid Characters in Name "Project name contains invalid characters. Please remove < > & " ' characters." User enters restricted special characters Remove invalid characters Character Limit Exceeded "Maximum 100 characters allowed." Text exceeds 100 characters in Name or Specify Lead Source field Reduce text length Missing Brand Selection "Please select a brand." User clicks "Next" without selecting a brand Select a brand Missing Specify Lead Source "Please specify the lead source." User clicks "Next" with "Other" selected but Specify Lead Source field empty Enter custom lead source No Event Type Selected "Please select at least one event type." User clicks "Next" on Step 2 without selecting any event type Select at least one event type No Primary Event Designated "Please designate a primary event." User clicks "Next" on Step 2 with multiple events but no primary event selected Select a primary event Maximum Events Reached "Maximum 10 events per project." User attempts to select more than 10 event types Deselect an event type before adding a new one Invalid Date Range "End date must be on or after start date." End Date is before Start Date for a multi-day event Correct the date range Invalid Time Range "End time must be after start time when dates are the same." End Time is equal to or before Start Time when End Date equals Start Date Select an end time after start time No Services Selected "Each event must have at least one service." User clicks "Finish" with an event that has no services selected Select at least one service for each event Save Failed "Unable to create project. Please try again." Database or network error during project creation Retry creation Session Expired "Your session has expired. Please log in again." Session timeout detected during creation Re-authenticate
#61
**FRD: Create a New Project** > **7\. Edge Cases**
~786 tok
## **7\. Edge Cases** **Edge Case** **System Behavior** **Fallback Action** **User Notification** Brand deleted during creation System validates brand exists at final submission Block creation "Selected brand no longer exists. Please select a different brand." Service removed during creation System validates services at submission Remove invalid services from selection "Some services are no longer available. Please review your selections." Event type disabled during creation System validates event types at submission Remove disabled event types "Some event types are no longer available. Please review your selections." Duplicate project name System allows duplicate names with a warning Append identifier if needed "A project with this name already exists. You may continue or rename." Maximum events reached (10) Disable additional chip selection Prevent additional selection "Maximum 10 events per project." Network loss during save Retry with exponential backoff Save form data to browser local storage "Connection lost. Retrying..." Concurrent project creation by multiple users Allow both with different project IDs Process sequentially No notification needed Invalid special characters in Project Name Strip or encode characters Sanitize input "Invalid characters removed." Timezone changes during active creation Preserve the timezone selected at the time of saving Use last selected timezone No notification needed Leap year date handling Validate February 29 correctly Standard date validation Standard date errors if invalid Lead Source "Other" with only whitespace Trim and validate for empty string Prevent progression "Please specify the lead source." All event types deselected after primary event was set Clear primary event designation Require re-selection Primary Event dropdown resets User refreshes browser mid-creation Form data is lost (unless auto-save is implemented) User restarts the process No notification; modal closes on refresh Only one brand exists in the system Auto-select the single available brand No dropdown interaction needed Brand field is pre-filled Lead Source list updated by another admin during creation New list reflected on next modal open; current session uses loaded list Use the list loaded at modal open No notification during current session User navigates back from Step 3 and changes brand System must reload event types for new brand in Step 2 and clear Step 3 configurations Clear all Step 2 and Step 3 data "Changing brand will reset event and service selections." Timezone field enabled then Start Time cleared If Start Time is cleared from all events, timezone field reverts to disabled and value is cleared. If at least one event still has a time, timezone stays enabled. Reset timezone state only when no events have a time No explicit notification; field visually disables No service areas configured for brand Service Area type-ahead field shows no suggestions when user types User skips service area selection (field is optional) No matching results displayed Timezone updated in one event section
#62
**FRD: Create a New Project** > **7\. Edge Cases**
~42 tok
System syncs the new timezone to all event sections in the project All events reflect the updated timezone No explicit notification; all sections update simultaneously
#63
**FRD: Create a New Project** > **8\. Acceptance Criteria**
~392 tok
## **8\. Acceptance Criteria** * The create project modal must load within 1 second with all dynamic fields populated from configuration. * The 3-step wizard must correctly display step indicators (1/3, 2/3, 3/3) and support forward and backward navigation without data loss. * Brand selection must be mandatory and must trigger immediate loading of brand-specific options in subsequent steps. * When "Other" is selected as Lead Source, the "Specify Lead Source" field must appear dynamically and be required before proceeding. * The system must enforce at least one event type and one service per event before allowing project creation. * Primary event designation must be required when multiple events are selected and auto-selected when only one is chosen. * The date picker must disable all past dates, preventing selection. * Multi-day event fields must appear conditionally only when the multi-day checkbox is selected, and be hidden and cleared when unchecked. * The Time Zone field must remain disabled until a Start Time is entered in any event, and pre-populate with the user's configured timezone from account/agency settings (default: EDT/EST) once enabled. * Timezone must be a project-level setting; changing it in one event section must update all event sections. * All required field validations must occur in real-time with inline error messages. * Successful project creation must redirect to the project detail page within 2 seconds. * The audit trail must capture all project creation details including user and timestamp.
#64
**FRD: Create a New Project** > **9\. Dependencies**
~305 tok
## **9\. Dependencies** **Dependency Type** **Component/Module** **Description** **Fallback Behavior** Internal Module Brand Management Provides brands for selection in Step 1 Cannot create project without brands Internal Module Event Type Configuration Supplies available event types for Step 2 No event types available for selection Internal Module Service Configuration Provides services per brand for Step 3 Cannot assign services to events Internal Module Lead Source Settings Provides lead source options for Step 1 dropdown Lead source not tracked Internal Module Pipeline Automation Initializes workflow triggers post-creation Manual pipeline management required Internal Module Brand Service Area Settings Provides service area dropdown options per brand for Step 3 Service area dropdown empty System Component Database Stores project, event, and service data Complete failure; creation blocked System Component User/Agency Settings (Timezone) Provides default timezone for project-level timezone pre-population Falls back to EDT/EST Configuration Agency Settings Provides agency-level configs (brands, lead sources, event types, services) Defaults used where available
#65
**FRD: Create a New Project** > **10\. References**
~46 tok
## **10\. References** * Figma: [Figma Design](https://www.figma.com/design/ej0kxwP45mDKmZCZfAJ5O8/Pixally?node-id=13409-71146&t=iPpK6Wpq1hKigBIn-0) 4\. Events Pipeline Management
#66
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings**
~23 tok
# **FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings**
#67
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **1\. Module Overview**
~163 tok
## **1\. Module Overview** **Module Name:** Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings **Purpose:** This module provides comprehensive pipeline management capabilities for tracking event progression through predefined stages, configuring pipeline stages and statuses, and automating status transitions based on business rules and triggers. **Business Goals:** Streamline event workflow management by providing visual pipeline tracking, customizable status configurations, and intelligent automation rules that reduce manual status updates while ensuring consistent progression of events from lead to completion.
#68
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **2\. User Roles & Permissions**
~87 tok
## **2\. User Roles & Permissions** **Role** **View Pipeline** **Move Events** **Configure Stages** **Edit Statuses** **Manage Automation** **Override Automation** Owner Yes Yes Yes Yes Yes Yes Admin Yes Yes Yes Yes Yes Yes Project Manager Yes Yes No No No Yes Other Roles (TBD for Phase 2) TBD TBD TBD TBD TBD TBD
#69
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **3\. User Flow**
~795 tok
## **3\. User Flow** **Pipeline View and Navigation** 3.1 The user navigates to the Pipeline Settings from the main settings menu or accesses the pipeline view from the Events module. 3.2 The system loads the pipeline interface displaying the three main pipeline stages (Lead Stage, Booked Stage, Post-Event Stage). 3.3 The user views events organized in columns representing the pipeline stages and their statuses. 3.4 The system displays events as cards within each stage column showing event details and current status. **Event Status Management via Dropdown** 3.5 The user opens a project or event and accesses the Project Management widget. 3.6 The system displays the Project Management widget with action buttons (Create Event, Add Service, Create File, etc.) and the Event Stage dropdown. 3.7 The user clicks on the Event Stage dropdown to change the event status. 3.8 The system displays all available pipeline statuses (from Lead, Booked, and Post-Event stages) plus "Archived" as options in the dropdown. 3.9 The user selects a new status from the dropdown. 3.10 The system updates the event status immediately and displays a success toast notification. **Archiving an Event via Dropdown** 3.11 The user clicks on the Event Stage dropdown and selects "Archived" option. 3.12 The system displays an archive confirmation dialog with title "Archive event". 3.13 For events with future dates (Pre-Event), the system displays the confirmation message explaining all impacts including payment cancellations, contractor removal, and link deactivation. 3.14 For events with past dates (Post-Event), the system displays the confirmation message explaining impacts including remaining payment cancellations and file expiry. 3.15 The user clicks the "Archive" button to confirm or "Cancel" to abort. 3.16 If confirmed, the system archives the event, applies all listed changes, and displays: "Event moved to archived successfully" 3.17 The archived event is removed from the active pipeline view and appears in the separate Archived page. **Archiving a Project via Widget Button** 3.18 The user opens a project and accesses the Project Management widget. 3.19 The system displays the ARCHIVE button in the Project Management widget. 3.20 The user clicks the ARCHIVE button. 3.21 The system displays an archive confirmation dialog with title "Archive project". 3.22 For projects with future event dates (Pre-Event), the system displays the confirmation message explaining all impacts. 3.23 For projects with past event dates (Post-Event), the system displays the confirmation message explaining impacts. 3.24 The user clicks the "Archive" button to confirm or "Cancel" to abort. 3.25 If confirmed, the system archives the project and all its associated events automatically. 3.26 The system displays: "Project archived successfully" 3.27 The archived project and all its events are removed from the active pipeline view and appear in the separate Archived page. **Unarchiving an Event** 3.28 The user navigates to the Archived page and opens an archived event. 3.29 The system displays the Project Management widget with the Event Stage dropdown.
#70
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **3\. User Flow**
~788 tok
3.30 The user clicks on the Event Stage dropdown and selects an active status (e.g., "New Lead", "Booked", etc.). 3.31 The system restores the event to the selected status and displays: "Event restored to \[status\] successfully" 3.32 The event is removed from the Archived page and appears in the active pipeline view. **Unarchiving a Project** 3.33 The user navigates to the Archived page and opens an archived project. 3.34 The system displays the Project Management widget with the UNARCHIVE button (replacing the ARCHIVE button). 3.35 The user clicks the UNARCHIVE button. 3.36 The system restores the project and displays: "Project restored successfully" 3.37 The project is removed from the Archived page and appears in the active project listing. 3.38 All previously archived events under the project are also restored to their last active status. **Pipeline Configuration Settings (Batch Save)** 3.39 The user clicks on the Pipeline Settings button to access the configuration interface for customizing statuses. 3.40 The system opens the Pipeline Settings page showing all configurable statuses within each stage, including default locked statuses and custom statuses. 3.41 The user can perform multiple configuration changes (rename statuses, add new statuses, delete statuses, reorder statuses) before saving. 3.42 All changes are staged locally and not applied until the user clicks the Save button. **Editing Default Locked Statuses** 3.43 The user hovers over a default locked status (e.g., New Lead, Post-Production, Completed). 3.44 The system displays a pencil icon for editing the status name (trash icon is not shown for default locked statuses). 3.45 The user clicks the pencil icon to edit the default status name. 3.46 The system opens an inline edit field with the current status name. 3.47 The user enters a new name (maximum 50 characters). 3.48 If the user enters more than 50 characters, the system displays an inline error beneath the field. 3.49 The change is staged locally and will be applied when the user clicks Save. **Editing and Deleting Custom Statuses** 3.50 The user hovers over a custom status within any of the three main stages. 3.51 The system displays both a pencil icon and a trash icon for the custom status. 3.52 The user clicks the pencil icon to edit the custom status name. 3.53 The system opens an inline edit field allowing the user to rename the status (maximum 50 characters). 3.54 The change is staged locally and will be applied when the user clicks Save. 3.55 The user clicks the trash icon to delete the custom status. 3.56 The system immediately performs a dependency check to identify any projects, events, or automation rules referencing the status. 3.57 If the status has zero dependencies, the system displays a confirmation dialog with title "Delete Status" and message "Are you sure you want to delete this status?" 3.58 The user clicks "Delete" to confirm or "Cancel" to abort. 3.59 If the user confirms, the system stages the deletion locally (to be applied when user clicks Save). 3.60 If the user cancels, the dialog closes and no changes are made.
#71
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **3\. User Flow**
~746 tok
3.61 If the status has one or more dependencies, the system immediately displays a blocked deletion dialog listing the affected items. 3.62 The system prevents the deletion from being staged until the user reassigns all affected projects/events and updates automation rules. **Adding New Custom Statuses** 3.63 The user clicks the add button to create a new custom status within one of the three main pipeline stages (Lead, Booked, Post-Event). 3.64 The system opens an input field for the new status name. 3.65 The user enters the status name (maximum 50 characters). 3.66 The new status is staged locally and will be created when the user clicks Save. **Saving Pipeline Configuration Changes** 3.67 After performing one or more changes (rename, add, delete, reorder), the user clicks the Save button. 3.68 The system validates all staged changes and applies them to the database. 3.69 The system displays a single toast notification: "Pipeline settings saved successfully" 3.70 The system updates all historical and future events affected by the changes. 3.71 If any validation fails during save, the system displays an error toast and does not apply any changes. **Automation Configuration** 3.72 The user navigates to the Pipeline Automation Settings to configure automatic status transitions. 3.73 The system displays the automation rules interface with options to enable or disable automation globally or per rule. 3.74 The user creates a new automation rule by selecting a trigger event and corresponding status change. 3.75 The user clicks Save to apply automation changes. 3.76 The system saves the automation rule, applies it to all future qualifying events, and displays: "Pipeline settings saved successfully" 3.77 The user cannot configure automation rules that target the Archived status as automation is not supported for Archived. **Automation Management** 3.78 The user toggles the automation on/off switch for a specific project to enable or disable automated transitions. 3.79 The system updates the project's automation settings and respects the manual override preference going forward. 3.80 The user manually changes an event status that has active automation rules. 3.81 The system allows the manual change but may revert it if automation conditions are met again unless automation is disabled. **Monitoring and Completion Settings** 3.82 The user reviews the automation log to see all automated status changes that have occurred. 3.83 The system displays a chronological log of all automation triggers and resulting status updates. 3.84 The user clicks on the Post-Production completion settings to configure deliverable-based completion rules. 3.85 The system shows options for linking event completion to post-production deliverable status. 3.86 The user saves all pipeline configuration changes and returns to the main pipeline view. 3.87 The system applies all configuration changes immediately to the active pipeline display.
#72
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **4\. Functional Logic**
~787 tok
## **4\. Functional Logic**
**Pipeline Structure and Stages**
* The Events Pipeline Management module enforces a three-stage structure consisting of Lead Stage, Booked Stage, and Post-Event Stage that cannot be deleted or reordered, providing consistent workflow foundation across all projects.
* In addition to the three main stages, Archived exists as a special status option in the Event Stage dropdown for storing completed or inactive events and projects.
* These three main pipeline stages are locked at the system level, meaning users cannot remove them or create new top-level stages, though they can rename the stages if needed for business terminology alignment.
* Within each of the three main stages, users can create custom statuses to reflect their specific workflow needs, with these custom statuses inheriting the stage-level restrictions and behaviors.
* Archived items are stored in a separate Archived page, not displayed in the active pipeline view.
**Event Stage Dropdown Behavior**
* The Event Stage dropdown in the Project Management widget displays all available pipeline statuses from Lead, Booked, and Post-Event stages, plus "Archived" as an option.
* When user selects a status from the dropdown, the event status is updated immediately without requiring a separate Save action.
* Selecting "Archived" from the dropdown triggers a confirmation dialog before archiving the event.
* The dropdown is available for both active events and archived events (for unarchiving purposes).
**Archive Entry Points**
* Users can archive events via two methods: (1) selecting "Archived" from the Event Stage dropdown, or (2) clicking the ARCHIVE button in the Project Management widget for projects.
* Drag-and-drop is NOT supported for archiving - users cannot drag events or projects to an Archived column.
* The ARCHIVE button is always visible in the Project Management widget for active projects.
**Archive Confirmation Dialog**
* When user initiates an archive action, the system displays a confirmation dialog with context-specific messaging.
* For Event archiving, the dialog title is "Archive event"; for Project archiving, the title is "Archive project".
* The confirmation dialog has two buttons: "Archive" (to confirm) and "Cancel" (to abort).
**Pre-Event Archive Confirmation (Future Date)**
* For events/projects with future dates, the confirmation message includes:
* All upcoming payments (client & contractor) will be canceled
* Contractors will be removed, notified of the cancellation, and marked available for new bookings on this date
* Client portal access will be deactivated
* All live links (proposals, invoices, contracts) will be disabled
* All future invoices will be marked as Canceled
* Automations, emails, and payment reminders will stop
* User will still receive notifications for new messages from clients
* Confirmation line: "Are you sure you want to proceed?"
**Post-Event Archive Confirmation (Past Date)**#73
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **4\. Functional Logic**
~690 tok
* For events/projects with past dates (after completion), the confirmation message includes:
* Any remaining payments will be canceled
* Files will expire, but remain accessible to you and the client
* Automations and payment reminders will stop
* The project will be removed from the active pipeline
* Contractors will remain assigned and will not be notified
* User will still receive notifications for new messages from clients
* Confirmation line: "Are you sure you want to proceed?"
**Project Archive Cascading**
* When a project is archived, all events associated with that project are automatically archived as well.
* Each event inherits the archive status from its parent project.
* The system applies the appropriate archive impacts based on each event's date (pre-event or post-event).
**Unarchive Behavior**
* For Events: User selects an active status from the Event Stage dropdown while viewing an archived event.
* For Projects: User clicks the UNARCHIVE button in the Project Management widget (button changes from ARCHIVE to UNARCHIVE for archived projects).
* When a project is unarchived, all its previously archived events are also restored to their last active status.
**Archived Page**
* All archived projects and events appear in a separate Archived page, not in the active pipeline view.
* Users can access the Project Management widget for archived items to unarchive them.
* The Archived page allows users to view, search, and manage archived items.
**Default Locked Status Behavior**
* Default locked statuses (such as New Lead, Post-Production, Completed) can be renamed but cannot be deleted, ensuring core pipeline functionality is preserved.
* When a user hovers over a default locked status, only the pencil icon for editing appears; the trash icon is not displayed for these system-required statuses.
* Renaming a default locked status updates all historical and future references to that status globally across the system when the user clicks Save.
* Default locked statuses maintain their position and core functionality regardless of name changes, ensuring automation rules and integrations continue to work correctly.
**Custom Status Behavior**
* Custom statuses can be created within any of the three main pipeline stages (Lead, Booked, Post-Event).
* When a user hovers over a custom status, both the pencil icon (edit) and trash icon (delete) are displayed.
* Custom statuses can be renamed and deleted, subject to dependency checks for active projects, events, and automation rules.
**Batch Save Logic for Pipeline Settings**#74
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **4\. Functional Logic**
~691 tok
* All changes made in Pipeline Settings (rename, add, delete, reorder statuses) are staged locally and not applied until the user clicks the Save button.
* The system allows users to perform multiple changes in a single session before saving, improving workflow efficiency.
* When the user clicks Save, all staged changes are validated and applied as a single transaction.
* Upon successful save, a single toast notification is displayed: "Pipeline settings saved successfully" regardless of the number of changes made.
* If any validation fails during the save process, none of the changes are applied, and an error message is displayed.
**Deletion Dependency Check (Immediate)**
* When a user clicks the trash icon to delete a custom status, the system immediately performs a dependency check before showing any dialog.
* If the status has zero dependencies (no projects/events assigned and no automation rules referencing it), the system displays a confirmation dialog.
* If the status has one or more dependencies, the system displays a blocked deletion modal dialog.
* Default locked statuses cannot be deleted regardless of dependency status; the trash icon is not shown for these statuses.
**Status Deletion Confirmation Dialog (Zero Dependencies)**
* When a custom status has zero dependencies, clicking the trash icon displays a confirmation dialog before staging the deletion.
* Dialog title: "Delete Status"
* Dialog message: "Are you sure you want to delete this status?"
* Dialog buttons: "Delete" (to confirm) and "Cancel" (to abort)
* If the user clicks "Delete", the deletion is staged locally and will be applied when the user clicks the Save button.
* If the user clicks "Cancel", the dialog closes and no changes are made to the status.
* The deletion is not immediate; it follows the batch save pattern where changes are applied only after clicking Save.
**Status Deletion Blocked Dialog (Has Dependencies)**
* When a custom status has one or more dependencies, clicking the trash icon displays a blocked deletion modal dialog.
* Dialog title: "Cannot Delete Status"
* Dialog message: "Cannot delete status. One or more projects, events, or automation rules are using this status."
* Action guidance: "To delete this status, first reassign all projects/events to a different status and update any automation rules."
* Dialog button: "Close"
* When the user clicks "Close", the dialog closes and no changes are made to the status.
* The user must resolve all dependencies before the status can be deleted.
**Status Name Validation**#75
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **4\. Functional Logic**
~775 tok
* Status names have no minimum character requirement but are limited to a maximum of 50 characters.
* The system allows typing beyond 50 characters but displays an inline validation error beneath the field when the limit is exceeded.
* The Save button remains disabled until all staged changes pass validation (valid character count, unique names within stage).
* Empty status names cannot be saved; at least one character is required.
* Status names must be unique within the same stage to prevent confusion and ensure proper event assignment.
**Automation Engine and Rules**
* Automation is enabled by default for all new projects, with the system applying predefined rules for common triggers such as proposal sending, contract signing, and payment receipt.
* Automation rules operate on a trigger-action basis where specific events like email sends or payment confirmations automatically transition events to corresponding pipeline statuses.
* Automation rules cannot target the Archived status; archiving must always be performed manually.
* The automation engine respects a precedence hierarchy where automation rules override manual changes unless automation is explicitly disabled for a specific project or globally.
* Pipeline automation rules can be configured with conditions such as time delays, where status changes occur X days after a trigger event rather than immediately.
**Manual Control and Override Options**
* Users can disable automation at multiple levels including globally for all projects, per project, or per specific automation rule, providing flexible control over automated behaviors.
* When automation is disabled, all status transitions require manual intervention, with the system maintaining an audit log of who made changes and when they occurred.
* Manual status changes made while automation is active trigger a warning dialog informing users that their change may be overridden by automation rules unless disabled.
* The system maintains conflict resolution logic where multiple automation rules might apply to the same event, using rule priority and timestamp to determine which rule executes.
**Project and Event Synchronization**
* The pipeline automatically synchronizes project-level and event-level status changes, where updating a project status cascades to all associated events unless individual events are locked.
* The Post-Production completion logic ties event completion status to deliverable completion, automatically reverting events to Post-Production status if deliverables are marked incomplete.
* For events without defined deliverables, the system requires manual completion marking, acknowledging that not all events follow the standard deliverable-based workflow.
* The module handles edge cases where payments are delayed beyond delivery by allowing manual override of completion status while maintaining payment pending indicators.
**Bulk Operations and Performance**#76
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **4\. Functional Logic**
~302 tok
* Bulk status updates are supported through multi-select functionality, allowing users to select multiple events and apply the same status change to all selected items.
* The system tracks status duration metrics, recording how long events spend in each status for reporting and workflow optimization purposes.
* Status transition validations can be configured to require certain fields to be completed before allowing movement to specific statuses, enforcing data quality.
* The pipeline supports conditional visibility where certain statuses only appear for events meeting specific criteria, reducing clutter for irrelevant options.
**Integration and Audit Trail**
* Pipeline settings changes require appropriate permissions, with the system preventing unauthorized users from modifying critical workflow configurations.
* The module integrates with the activity log to record all pipeline changes, creating an audit trail that shows status progressions and automation triggers.
* The system maintains audit logging for all pipeline-related actions, capturing user identity, timestamp, and the nature of changes for compliance and analysis purposes.#77
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **5\. Field Details & Validations**
~268 tok
## **5\. Field Details & Validations** **Field Name** **Field Type** **Validation Rules** Stage Name Text Max 50 characters, Cannot be empty, System stages locked Status Name (Default) Text Required, Maximum 50 characters, Unique within stage, Cannot be deleted Status Name (Custom) Text Required, Maximum 50 characters, Unique within stage, Can be deleted Event Stage Dropdown Dropdown Lists all pipeline statuses + Archived, Required selection Status Order Number Auto-assigned, Can be reordered within stage Automation Toggle Boolean Default: Enabled for new projects Trigger Event Dropdown Required for automation rule, Predefined list Target Status Dropdown Required for automation rule, Must exist, Cannot target Archived Delay Days Number Optional, 0-365, For time-based triggers Rule Priority Number 1-100, Higher executes first, Default: 50 Completion Criteria Dropdown Options: Manual, Deliverables, Payment Rule Active Boolean Default: True, Can be toggled per rule Apply To Multi-select Projects, Events, or Event Types
#78
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **5\. Field Details & Validations** > Status Name Field Specifications
~98 tok
### Status Name Field Specifications **Property** **Value** Field Type Text Input Minimum Characters None (at least 1 character required) Maximum Characters 50 Required Yes Allow Typing Beyond Max Yes (shows inline error) Error Display Location Beneath the field (inline) Duplicate Check Real-time within same stage Save Button Behavior Disabled until all validations pass
#79
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **5\. Field Details & Validations** > Hover Interaction Specifications
~52 tok
### Hover Interaction Specifications **Status Type** **Pencil Icon (Edit)** **Trash Icon (Delete)** Default Locked Status Visible on hover Not displayed Custom Status Visible on hover Visible on hover
#80
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **5\. Field Details & Validations** > Project Management Widget - Archive/Unarchive Button
~58 tok
### Project Management Widget - Archive/Unarchive Button **Project State** **Button Displayed** **Action** Active Project ARCHIVE Opens archive confirmation dialog Archived Project UNARCHIVE Restores project and all events
#81
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **5\. Field Details & Validations** > Status Deletion Confirmation Dialog
~100 tok
### Status Deletion Confirmation Dialog **Property** **Value** Dialog Title Delete Status Dialog Message Are you sure you want to delete this status? Confirm Button Delete Cancel Button Cancel Trigger Condition User clicks trash icon on custom status with zero dependencies Post-Confirm Action Deletion staged locally, applied on Save Post-Cancel Action Dialog closes, no changes made
#82
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **5\. Field Details & Validations** > Status Deletion Blocked Dialog (Has Dependencies)
~139 tok
### Status Deletion Blocked Dialog (Has Dependencies) **Property** **Value** Dialog Title Cannot Delete Status Dialog Message Cannot delete status. One or more projects, events, or automation rules are using this status. Action Guidance To delete this status, first reassign all projects/events to a different status and update any automation rules. Button Close Dialog Type Modal popup Trigger Condition User clicks trash icon on custom status with one or more dependencies Post-Close Action Dialog closes, no changes made, status remains
#83
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **6\. Success Message Handling**
~9 tok
## **6\. Success Message Handling**
#84
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **6\. Success Message Handling** > Pipeline Settings Actions (Batch Save - Single Toast)
~96 tok
### Pipeline Settings Actions (Batch Save - Single Toast) **Operation** **Success Message** **Trigger Condition** **Post-Success Action** Pipeline Settings Saved "Pipeline settings saved successfully" User clicks Save after making one or more changes (rename, add, delete, reorder statuses, or automation changes) Apply all changes, update all displays, refresh pipeline view
#85
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **6\. Success Message Handling** > Event Status Changes (Immediate - Individual Toasts)
~101 tok
### Event Status Changes (Immediate - Individual Toasts) **Operation** **Success Message** **Trigger Condition** **Post-Success Action** Event Status Updated "Event status updated to \[status\]" User selects new status from Event Stage dropdown Refresh event display Bulk Event Update "\[X\] events updated to \[status\]" User multi-selects events and changes status Refresh affected events
#86
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **6\. Success Message Handling** > Archive Actions (After Confirmation - Individual Toasts)
~112 tok
### Archive Actions (After Confirmation - Individual Toasts) **Operation** **Success Message** **Trigger Condition** **Post-Success Action** Event Archived "Event moved to archived successfully" User confirms archive via Event Stage dropdown Remove from active pipeline, add to Archived page Project Archived "Project archived successfully" User confirms archive via ARCHIVE button Archive project and all events, move to Archived page
#87
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **6\. Success Message Handling** > Unarchive Actions (Immediate - Individual Toasts)
~113 tok
### Unarchive Actions (Immediate - Individual Toasts) **Operation** **Success Message** **Trigger Condition** **Post-Success Action** Event Restored "Event restored to \[status\] successfully" User selects active status from dropdown for archived event Remove from Archived page, add to active pipeline Project Restored "Project restored successfully" User clicks UNARCHIVE button Restore project and all events, remove from Archived page
#88
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **7\. Error Message Handling**
~524 tok
## **7\. Error Message Handling** **Error Scenario** **Error Message** **Trigger Condition** **Display Location** Status Name Too Long "Status name cannot exceed 50 characters" User types more than 50 characters Beneath the field (inline) Status Name Empty "Status name is required" User attempts to save with empty field Beneath the field (inline) Delete Status with Dependencies Message: "Cannot delete status. One or more projects, events, or automation rules are using this status." Guidance: "To delete this status, first reassign all projects/events to a different status and update any automation rules." Custom status has active projects, events, or automation rules (immediate check on trash click) Modal popup (title: "Cannot Delete Status", button: "Close") Delete Default Locked Status Not applicable - trash icon not shown User cannot attempt to delete default status N/A Duplicate Status Name "A status with this name already exists in this stage" Duplicate name entered within same stage Beneath the field (inline) Automation Target Archived "Automation rules cannot target the Archived status" User tries to set Archived as automation target Inline error in automation settings Automation Conflict "Multiple automation rules conflict. Please review rule priorities." Conflicting rules detected Toast notification Required Fields Missing "Cannot move to \[status\]. Required fields: \[list\]" Validation failure on status transition Modal popup Permission Denied "You don't have permission to modify pipeline settings" Insufficient permissions Toast notification Save Failed "Unable to save pipeline settings. Please try again." Database error during batch save Toast notification Validation Failed on Save "Please fix the errors before saving" One or more staged changes have validation errors Toast notification Archive Failed "Unable to archive. Please try again." Database error during archive Toast notification Unarchive Failed "Unable to restore. Please try again." Database error during unarchive Toast notification
#89
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **8\. Edge Cases**
~795 tok
## **8\. Edge Cases** **Edge Case** **System Behavior** **Fallback Action** **User Notification** Archive event with future date Show Pre-Event confirmation with payment/contractor impacts User must confirm Pre-Event confirmation dialog Archive event with past date Show Post-Event confirmation with different impacts User must confirm Post-Event confirmation dialog Archive project with mixed event dates Apply appropriate impacts per event (pre/post) Process each event individually Project archive confirmation Archive project with multiple events All events archived automatically N/A "Project archived successfully" Unarchive project with archived events All events restored to last active status N/A "Project restored successfully" Cancel archive confirmation No changes made, dialog closes Return to previous state None User selects active status for archived event Event is unarchived/restored N/A "Event restored to \[status\] successfully" Archive button for archived project UNARCHIVE button shown instead N/A N/A User makes multiple changes and clicks Save All changes applied as single transaction N/A Single toast: "Pipeline settings saved successfully" User tries to delete status with dependencies before saving other changes Immediate block popup, deletion not staged User must resolve dependencies Block popup with dependency details User makes changes but navigates away without saving Prompt user to save or discard changes Discard if user confirms "You have unsaved changes. Save before leaving?" Save fails due to network error No changes applied, all staged changes preserved User can retry save "Unable to save pipeline settings. Please try again." Partial validation failure on save No changes applied, highlight invalid fields User must fix errors "Please fix the errors before saving" Rename default locked status to existing name Prevent staging, show duplicate error immediately Keep original name "A status with this name already exists in this stage" Status name with exactly 50 characters Allow save, validation passes N/A None (valid input) Status name with 51+ characters Allow typing, prevent save, show error Keep text in field, highlight error "Status name cannot exceed 50 characters" User clears status name completely Prevent save, show required error Keep field in edit mode "Status name is required" Delete custom status with 0 dependencies Show confirmation dialog, stage deletion on confirm N/A Dialog: "Are you sure you want to delete this status?" then on Save: "Pipeline settings saved successfully" Cancel status deletion confirmation Dialog closes, no changes made Return to previous state None Delete custom status with 1+ dependencies Show blocked modal with message and guidance, Close button User must resolve dependencies Modal: Title "Cannot Delete Status", Message "Cannot delete status. One or more projects, events, or automation rules are using this status.", Guidance included, Close button Attempt to set Archived as automation target Prevent save, show error Keep current target "Automation rules cannot target the Archived status"
#90
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **8\. Edge Cases**
~206 tok
Hover over default locked status Show pencil icon only N/A N/A Hover over custom status Show both pencil and trash icons N/A N/A Circular automation rules Detect and prevent infinite loops Disable conflicting rule "Circular automation detected and prevented" Status with 100+ events renamed Allow rename, batch update on save Batch update in background Single toast: "Pipeline settings saved successfully" Simultaneous status updates by multiple users Last write wins with audit trail Log all attempts "Event was updated by another user" Network loss during archive Revert to previous state Show connection error "Unable to archive. Please try again." Max custom statuses (50) per stage Prevent additional creation Display limit message "Maximum number of custom statuses reached for this stage"
#91
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **9\. Acceptance Criteria**
~600 tok
## **9\. Acceptance Criteria**
**Pipeline Structure**
* The three main pipeline stages (Lead Stage, Booked Stage, Post-Event Stage) must be permanently visible and cannot be deleted.
* Archived items must be stored in a separate Archived page, not displayed in the active pipeline view.
* Status changes via Event Stage dropdown must be applied immediately.
**Event Stage Dropdown**
* The Event Stage dropdown must display all pipeline statuses from Lead, Booked, and Post-Event stages, plus "Archived" as an option.
* Selecting a status from the dropdown must update the event immediately with appropriate success message.
* Selecting "Archived" must trigger a confirmation dialog before archiving.
**Archive Functionality**
* Archiving an event must be done via the Event Stage dropdown by selecting "Archived".
* Archiving a project must be done via the ARCHIVE button in the Project Management widget.
* Drag-and-drop archiving is not supported.
* Archive confirmation dialog must show appropriate message based on event date (pre-event vs post-event).
* Confirmation dialog must have "Archive" and "Cancel" buttons.
* When a project is archived, all its events must be automatically archived.
* Archived events must display success message: "Event moved to archived successfully"
* Archived projects must display success message: "Project archived successfully"
**Unarchive Functionality**
* Unarchiving an event must be done by selecting an active status from the Event Stage dropdown.
* Unarchiving a project must be done via the UNARCHIVE button (which replaces ARCHIVE button for archived projects).
* When a project is unarchived, all its events must be restored to their last active status.
* Restored events must display success message: "Event restored to \[status\] successfully"
* Restored projects must display success message: "Project restored successfully"
**Default Locked Status Behavior**
* Default locked statuses must display only the pencil icon on hover; trash icon must not be shown.
* Default locked statuses must be renameable with updates applied globally upon Save.
* Default locked statuses cannot be deleted under any circumstances.
**Custom Status Behavior**#92
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **9\. Acceptance Criteria**
~494 tok
* Custom statuses must display both pencil and trash icons on hover.
* Custom statuses can be created within the three main stages only.
* Clicking trash icon on a custom status with zero dependencies must display a confirmation dialog with title "Delete Status" and message "Are you sure you want to delete this status?"
* Confirmation dialog must have "Delete" and "Cancel" buttons.
* If user confirms deletion, the deletion must be staged locally and applied when user clicks Save.
* If user cancels deletion, the dialog must close with no changes made.
* Deleting a custom status with one or more dependencies must immediately display a blocked deletion modal with:
* Title: "Cannot Delete Status"
* Message: "Cannot delete status. One or more projects, events, or automation rules are using this status."
* Guidance: "To delete this status, first reassign all projects/events to a different status and update any automation rules."
* Button: "Close"
**Batch Save Behavior**
* All Pipeline Settings changes (rename, add, delete, reorder) must be staged locally until the user clicks Save.
* Upon clicking Save, all staged changes must be applied as a single transaction.
* A single toast notification "Pipeline settings saved successfully" must be displayed regardless of the number of changes made.
**Automation Restrictions**
* Automation rules must not be configurable to target the Archived status.
* Archiving must always be a manual action.
**Status Name Validation**
* Status names must allow any length up to 50 characters with no minimum requirement.
* Status names exceeding 50 characters must display an inline error beneath the field.
* Empty status names must be prevented from saving with appropriate error messaging.
* Duplicate status names within the same stage must display an inline error.#93
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **10\. Manual Test Cases**
~69 tok
## **10\. Manual Test Cases** Test cases have been created in a separate Excel file: [Pipeline\_Management\_Complete\_Test\_Cases.xlsx](https://docs.google.com/spreadsheets/d/1tN5rYvVy8yYXLLJAtipxpQxzWE7LbeAL/edit?usp=drive_link&ouid=105170312247554220827&rtpof=true&sd=true)
#94
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **10\. Manual Test Cases** > Additional Test Cases for Archive Functionality
~583 tok
### Additional Test Cases for Archive Functionality **Test Case ID** **Scenario** **Test Steps** **Expected Result** TC-PM-ARC-01 Archive event via dropdown (future date) 1\. Open event with future date 2. Click Event Stage dropdown 3. Select "Archived" 4. Verify confirmation dialog 5. Click "Archive" Pre-Event confirmation shown, event archived, toast: "Event moved to archived successfully" TC-PM-ARC-02 Archive event via dropdown (past date) 1\. Open event with past date 2. Click Event Stage dropdown 3. Select "Archived" 4. Verify confirmation dialog 5. Click "Archive" Post-Event confirmation shown, event archived, toast: "Event moved to archived successfully" TC-PM-ARC-03 Cancel archive confirmation 1\. Open event 2. Select "Archived" from dropdown 3. Click "Cancel" on confirmation Dialog closes, event status unchanged TC-PM-ARC-04 Archive project via button 1\. Open project 2. Click ARCHIVE button 3. Verify confirmation 4. Click "Archive" Project and all events archived, toast: "Project archived successfully" TC-PM-ARC-05 Archive project with multiple events 1\. Open project with 3 events 2. Archive project All 3 events automatically archived TC-PM-ARC-06 Unarchive event via dropdown 1\. Go to Archived page 2. Open archived event 3. Select "New Lead" from dropdown Event restored, toast: "Event restored to New Lead successfully" TC-PM-ARC-07 Unarchive project via button 1\. Go to Archived page 2. Open archived project 3. Click UNARCHIVE button Project and all events restored, toast: "Project restored successfully" TC-PM-ARC-08 Verify UNARCHIVE button for archived project 1\. Go to Archived page 2. Open archived project UNARCHIVE button displayed (not ARCHIVE) TC-PM-ARC-09 Verify ARCHIVE button for active project 1\. Open active project ARCHIVE button displayed in widget TC-PM-ARC-10 Event Stage dropdown shows all statuses 1\. Open event 2. Click Event Stage dropdown All pipeline statuses + "Archived" option visible TC-PM-ARC-11 Automation cannot target Archived 1\. Go to Pipeline Automation 2. Try to set Archived as target Error: "Automation rules cannot target the Archived status" TC-PM-ARC-12 Drag-drop archiving not supported 1\. Open pipeline view 2. Try to drag event to archived No Archived column in pipeline view, drag not possible
#95
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **10\. Manual Test Cases** > Pipeline Settings Test Cases
~532 tok
### Pipeline Settings Test Cases **Test Case ID** **Scenario** **Test Steps** **Expected Result** TC-PM-SET-01 Hover on default locked status 1\. Navigate to Pipeline Settings 2. Hover over "New Lead" status Only pencil icon displayed, no trash icon TC-PM-SET-02 Hover on custom status 1\. Navigate to Pipeline Settings 2. Hover over any custom status Both pencil and trash icons displayed TC-PM-SET-03 Edit default locked status name 1\. Hover on default status 2. Click pencil icon 3. Enter new name 4. Click Save Status renamed, single toast: "Pipeline settings saved successfully" TC-PM-SET-04 Delete custom status - no dependencies (confirm) 1\. Create new custom status 2. Click trash icon 3. Verify confirmation dialog 4. Click "Delete" 5. Click Save Confirmation dialog shown, deletion staged, then applied on Save, single toast: "Pipeline settings saved successfully" TC-PM-SET-05 Delete custom status - no dependencies (cancel) 1\. Create new custom status 2. Click trash icon 3. Verify confirmation dialog 4. Click "Cancel" Dialog closes, status not deleted, no changes made TC-PM-SET-06 Delete custom status - has dependencies 1\. Find custom status with assigned projects/events or automation rules 2. Click trash icon Modal: Title "Cannot Delete Status", Message "Cannot delete status. One or more projects, events, or automation rules are using this status.", Guidance shown, Close button TC-PM-SET-07 Multiple changes then Save 1\. Rename status A 2. Add new status B 3. Delete status C (no deps, confirm) 4. Click Save All changes applied, single toast: "Pipeline settings saved successfully" TC-PM-SET-08 Status name max 50 characters 1\. Edit any status 2. Type 51+ characters Inline error: "Status name cannot exceed 50 characters", Save disabled TC-PM-SET-09 Empty status name 1\. Edit any status 2. Clear the name field 3. Attempt to save Inline error: "Status name is required", Save disabled TC-PM-SET-10 Navigate away with unsaved changes 1\. Make changes in Pipeline Settings 2. Click to navigate away Prompt: "You have unsaved changes. Save before leaving?"
#96
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **11\. Dependencies**
~411 tok
## **11\. Dependencies** **Dependency Type** **Component/Module** **Description** **Fallback Behavior** Internal Module Events Management Provides events for pipeline No events to display Internal Module Project Management Links pipeline to projects Project status not synced Internal Module Project Management Widget Provides Event Stage dropdown and Archive/Unarchive buttons Cannot change status or archive Internal Module Archived Page Stores and displays archived items Archived items not accessible Internal Module Email System Triggers automation on email events Email triggers disabled Internal Module Payment System Triggers automation on payments, handles payment cancellation on archive Payment triggers disabled Internal Module Contract Management Triggers on contract signing, disables links on archive Contract triggers disabled Internal Module Contractor Management Handles contractor removal and notification on archive Contractor changes not applied Internal Module Client Portal Handles portal deactivation on archive Portal remains active Internal Module Post-Production Board Links to deliverable completion Manual completion only Internal Module Activity Log Records all pipeline changes including archive actions No audit trail Internal Module User Permissions Controls access to settings Default to view-only System Component Database Stores pipeline configuration Complete failure System Component Real-time Sync Updates across user sessions Manual refresh required External Service Webhook System Triggers external automations External automation disabled
#97
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **12\. References**
~39 tok
## **12\. References** * Figma: [Figma Design Link](https://www.figma.com/design/ej0kxwP45mDKmZCZfAJ5O8/Pixally?node-id=17812-773238&t=hlJPZKI33RrWvjz0-0)
#98
**FRD #4: Events Pipeline Management, Pipeline Settings, and Pipeline Automation Settings** > **Document Change Log**
~330 tok
## **Document Change Log** **Version** **Date** **Changes** 1.0 Original Base document 1.1 March 2026 Added status name validation (max 50, no minimum) 1.2 March 2026 Updated: Default locked statuses editable but not deletable; Hover shows pencil only for default, both icons for custom; Deletion blocking for projects/events/automation; No minimum character requirement 1.3 March 2026 Updated: Batch save logic for Pipeline Settings with single toast; Immediate deletion dependency check 1.4 March 2026 Updated: Archive via Event Stage dropdown and ARCHIVE button only (no drag-drop); Archive confirmation dialogs with Pre-Event and Post-Event messages; Project archive cascades to all events; Unarchive via dropdown (events) and UNARCHIVE button (projects); Archived items stored in separate Archived page 1.5 March 2026 Updated: Status deletion requires confirmation dialog for zero-dependency statuses; Dialog title "Delete Status", message "Are you sure you want to delete this status?", buttons "Delete" and "Cancel"; Deletion staged on confirm, applied on Save 1.6 March 2026 Updated: Blocked deletion dialog for statuses with dependencies; Title "Cannot Delete Status", combined message for all dependency types, action guidance included, Close button, modal popup 5\. Archived Listing
#99
**FRD #5: Archived Listing**
~8 tok
# **FRD #5: Archived Listing**
#100
**FRD #5: Archived Listing** > **1\. Module Overview**
~162 tok
## **1\. Module Overview** **Module Name:** Archived Listing **Purpose:** The Archived Listing module provides a dedicated interface for viewing and managing archived projects and events, enabling users to access historical data, restore archived items when needed, and maintain a clean active workspace while preserving complete project history. **Business Goals:** Maintain organized project management by separating completed or inactive projects from active work while ensuring historical data remains accessible for reference, reporting, and potential reactivation, supporting long-term client relationship management and business analytics.
#101
**FRD #5: Archived Listing** > **2\. User Roles & Permissions**
~80 tok
## **2\. User Roles & Permissions** **Role** **View Archived** **Restore Projects** **Permanently Delete** **Export Archived Data** **Search Archived** Owner Yes Yes Yes Yes Yes Admin Yes Yes Yes Yes Yes Project Manager Yes Yes No Yes Yes Other Roles (TBD for Phase 2) TBD TBD TBD TBD TBD
#102
**FRD #5: Archived Listing** > **3\. User Flow**
~660 tok
## **3\. User Flow** **Archive Access and Display** 3.1 The user navigates to the Archived section by clicking on the "Archived" tab within the Project Management module. 3.2 The system loads the Archived Listing page displaying all archived projects with their associated events and details. 3.3 The user views the archived projects list showing the archive date, original project dates, and client information. 3.4 The system displays archived projects in reverse chronological order based on the archive date by default. **Viewing Archived Project Details** 3.5 The user expands an archived project by clicking the expand arrow to view all associated archived events and services. 3.6 The system reveals the nested structure showing all events that were archived with the project. **Search and Filter Operations** 3.7 The user searches for specific archived projects using the search bar at the top of the archived listing. 3.8 The system performs a search across archived project names, client names, and event details in real-time. 3.9 The user applies filters to narrow down the archived listing based on archive date range, brands, or service types. 3.10 The system updates the display to show only archived projects matching the selected filter criteria. **Bulk Selection and Actions** 3.11 The user selects one or more archived projects using checkboxes for bulk operations. 3.12 The system enables bulk action buttons including restore and export options for selected items. **Project Restoration Process** 3.13 The user clicks the "Restore" button next to a specific archived project to reactivate it. 3.14 The system displays a confirmation dialog explaining the implications of restoring the project. 3.15 The user confirms the restore action after reviewing the restoration details. 3.16 The system moves the project and all associated events back to the active projects listing with their previous status. **Historical Information Access** 3.17 The user clicks "View Details" on an archived project to see comprehensive historical information. 3.18 The system opens a read-only view of the archived project showing all historical data and activity logs. **Export and Navigation** 3.19 The user exports archived project data by clicking the export button and selecting the format. 3.20 The system generates an export file containing all selected archived project information. 3.21 The user navigates through pagination controls when viewing large numbers of archived projects. 3.22 The system loads the requested page of archived projects while maintaining filter settings.## 4. Functional Logic
#103
**FRD #5: Archived Listing** > **4\. Functional Logic**
~687 tok
## **4\. Functional Logic** **Archive Repository Management** * The Archived Listing module operates as a separate repository for projects that have been completed, cancelled, or manually archived, removing them from active project views while preserving all data. * When a project is archived, the system automatically archives all associated events and services as a single unit, maintaining the hierarchical relationship structure. * The archival process preserves all project data including client information, contractor assignments, payment records, activity logs, and status history for future reference. * Archived projects remain searchable and accessible but are excluded from active project counts, dashboard widgets, and operational reports unless specifically included. **Visual Presentation and Identification** * The listing displays archived projects with a visual indicator showing they are archived, using muted colors or an "Archived" badge to distinguish them from active projects. * When displaying the archive date, the system shows both the date the project was archived and the original project creation and event dates for historical context. * The archived listing supports the same collapsible row structure as the active projects listing, maintaining UI consistency across the module. * The system implements a 90-day default view for archived projects, initially showing only projects archived within the last 90 days with an option to view all. **Search and Filter Functionality** * The search functionality in the Archived Listing operates independently from the active projects search, searching only within the archived items pool. * Filtering capabilities in the archived section include archive date ranges, original project date ranges, brands, service types, and client names for comprehensive filtering. * Performance optimization ensures that large volumes of archived projects do not impact system performance, using lazy loading and pagination. **Restoration Process and Validation** * When a user restores an archived project, the system performs validation to ensure no conflicts exist with current active projects or system constraints. * The restoration process reactivates the project in its last known status rather than resetting to initial status, preserving the project's progression state. * If a project's associated brand, services, or event types have been deleted since archiving, the system displays a warning during restoration about missing configurations. * The module prevents restoration of projects with date conflicts where the event dates are now in the past and the system is configured to prevent past events. **Bulk Operations and Management**
#104
**FRD #5: Archived Listing** > **4\. Functional Logic**
~541 tok
* Bulk restoration allows users to restore up to 10 archived projects simultaneously, with the system processing them sequentially and reporting any failures. * Archived projects can be permanently deleted only by users with appropriate permissions, with a two-step confirmation process to prevent accidental deletion. * Export functionality generates comprehensive reports of archived projects in CSV or PDF format, including all project details and associated event information. **Data Integrity and Retention** * The system maintains archived projects indefinitely unless manually deleted, with no automatic purging of archived data to preserve business history. * When viewing archived project details, the system displays all information in read-only mode, preventing modifications to maintain data integrity. * The activity log for archived projects remains accessible, showing the complete history including the archival action, who performed it, and when. * The system maintains referential integrity where archived projects referenced by other modules remain accessible through those references. **Automation and Status Management** * Archived projects do not trigger any automation rules or scheduled actions, with all automations suspended upon archiving and optionally resumed upon restoration. * The system allows archiving projects from any status without restrictions, supporting flexible project lifecycle management based on business needs. * When an entire project is archived, the system checks if all events within the project are complete, warning users if active events are being archived. **Metrics and Reporting Integration** * The module tracks metrics on archived projects such as average project lifespan, common archival reasons, and restoration frequency for business insights. * Integration with reporting modules allows archived projects to be included in historical reports and analytics when specifically requested. * The module implements data retention policies where archived projects older than a configured period can be flagged for review or permanent deletion.## 5. Field Details & Validations
#105
**FRD #5: Archived Listing** > **5\. Field Details & Validations**
~228 tok
## **5\. Field Details & Validations** **Field Name** **Field Type** **Validation Rules** Archive Date DateTime Auto-populated, Read-only, Format: MM/DD/YYYY HH:MM AM/PM Project Name Text (Display) Read-only, Inherited from original project Client Name Text (Display) Read-only, Linked to client record Original Event Date DateTime Read-only, Shows original event dates Archive Reason Dropdown Optional, Options: Completed, Cancelled, Other Archived By Text (Display) Read-only, Shows user who archived Brand Text (Display) Read-only, Shows associated brand Search Query Text No character limit, Searches archived items only Archive Date Range Date Range Start must be before end date Restoration Notes Textarea Optional, Max 500 characters, For restoration log Export Format Dropdown Options: CSV, PDF, Excel Items Per Page Dropdown Options: 10, 25, 50, 100, Default: 25
#106
**FRD #5: Archived Listing** > **6\. Success Message Handling**
~183 tok
## **6\. Success Message Handling** **Operation** **Success Message** **Trigger Condition** **Post-Success Action** Project Restored "Project '\[name\]' successfully restored to active projects" Restoration completed Remove from archived list Bulk Restoration "\[X\] projects successfully restored" Multiple projects restored Update both listings Export Generated "Export file generated successfully" Export completed Download file Search Completed "Found \[X\] archived projects matching '\[query\]'" Search executed Display results Filter Applied "Showing \[X\] archived projects" Filters applied Update display Permanent Delete "Project permanently deleted" Deletion confirmed twice Remove completely
#107
**FRD #5: Archived Listing** > **7\. Error Message Handling**
~236 tok
## **7\. Error Message Handling** **Error Scenario** **Error Message** **Trigger Condition** **Required Action** Restoration Failed "Unable to restore project. Please try again." Database error Retry restoration Date Conflict "Cannot restore project with past event dates" Past dates in Phase 1 Cannot restore Missing Configuration "Project references deleted brand/services" Deleted dependencies Review before restore Export Failed "Unable to generate export. Please try again." Export generation error Retry export No Archive Results "No archived projects found" Empty archive No action needed Bulk Restore Limit "Maximum 10 projects can be restored at once" \>10 selected Reduce selection Permission Denied "You don't have permission to restore projects" Insufficient rights Contact admin Permanent Delete Failed "Cannot delete project with active references" Referential integrity Remove references first
#108
**FRD #5: Archived Listing** > **8\. Edge Cases**
~261 tok
## **8\. Edge Cases** **Edge Case** **System Behavior** **Fallback Action** **User Notification** 10,000+ archived projects Implement server-side pagination Load in chunks of 100 "Large archive. Use filters to narrow results." Restore with duplicate name Allow duplicate names Append (Restored) suffix "Project restored with duplicate name" Brand deleted post-archive Show with "Deleted Brand" label Warn during restoration "Original brand no longer exists" Corrupted archive data Skip corrupted records Log error for admin "Some archived data could not be displayed" Simultaneous restore Process sequentially Queue operations "Restoration in progress by another user" Archive during restoration Block conflicting operation Show error message "Project is being restored" Network loss during restore Rollback partial restore Maintain archived state "Restoration failed. Project remains archived" Circular event references Detect and handle gracefully Archive all related items "Related events also archived"
#109
**FRD #5: Archived Listing** > **9\. Acceptance Criteria**
~272 tok
## **9\. Acceptance Criteria** * The Archived Listing must load within 2 seconds for up to 500 archived projects. * All archived projects must maintain their complete data structure including events and services. * Search functionality must return results within 500ms for archived projects. * Restoration process must complete within 5 seconds and immediately reflect in active listings. * The system must prevent restoration of projects that violate current business rules. * Export functionality must generate files within 10 seconds for up to 100 projects. * Archived projects must be completely excluded from active project operations and counts. * The module must maintain a complete audit trail of all archive and restore operations. * Pagination must work seamlessly with applied filters and search criteria. * Bulk operations must process successfully for up to 10 projects simultaneously. * The archived listing must clearly distinguish archived items from active ones visually. * All archived data must remain read-only to preserve historical integrity.
#110
**FRD #5: Archived Listing** > **10\. Manual Test Cases**
~68 tok
## **10\. Manual Test Cases** Test cases have been created in a separate Excel file: [Archived\_Listing\_Complete\_Test\_Cases.xlsx](https://docs.google.com/spreadsheets/d/1Py-WUHFhOGeCTPyQ8AX1SGGkpYpIGp10/edit?usp=drive_link&ouid=105170312247554220827&rtpof=true&sd=true)
#111
**FRD #5: Archived Listing** > **11\. Dependencies**
~229 tok
## **11\. Dependencies** **Dependency Type** **Component/Module** **Description** **Fallback Behavior** Internal Module Projects Management Source of archived projects No projects to archive Internal Module Events Management Manages archived events Events not archived Internal Module Activity Log Tracks archive operations No audit trail Internal Module User Permissions Controls archive access Default to view-only Internal Module Export Service Generates export files Export unavailable Internal Module Brand Management References for archived projects Show as deleted brand Internal Module Client Management Links to client records Client info unavailable System Component Database Stores archived data Complete failure System Component File Storage Stores export files Export download fails External Service Backup Service Long-term archive storage Local storage only
#112
**FRD #5: Archived Listing** > **12\. References**
~36 tok
## **12\. References** * Figma: [Figma](https://www.figma.com/design/ej0kxwP45mDKmZCZfAJ5O8/Pixally?node-id=34451-95224&t=hlJPZKI33RrWvjz0-0)