# Augmented Operations Management - Developer Quick Start Guide Welcome to the Augmented Operations Management project! This guide provides a brief overview to help you get started. ## 1. Application Goals This application manages and optimizes the assignment of **Operations** to **Resources**. Key goals include: * Efficiently scheduling operations while minimizing conflicts (double-booking). * Handling time uncertainty using statistical distributions. * Resolving scheduling conflicts using both heuristic search and optimization (MILP). * Providing an interactive experience through an AI assistant. ## 2. Core Concepts & Domain Mapping The code uses generic so it can be applied to several concepts (airports, ports, train stations, logictics companies): * **`Location`**: A physical area. * **`Resource`**: An assignable asset within a Location. Resources have ordering and tags. * **`Task`**: A single event with time data. Includes planned, expected (with uncertainty: mean, sigma, skew), and actual times. Tasks are versioned. * **`Operation`**: A process linking an inbound and outbound task. Contains metadata. * **`Assignment`**: Links an Operation to a Resource. Only one is `active` per Operation. * **`VirtualState`**: Represents the user's current view/session state, holding temporary assignment changes, time window focus, and context for the AI and tools. * *Changes here are not automatically saved to the database.*. Please contact your account manager for more background on Virtual State and how this proprietary technology works. ## 3. Key Functionality Walkthrough 1. **Manage Data:** Perform CRUD operations on Locations, Resources, Tasks, Operations, and Assignments. 2. **Track Operations Times:** Handle various time representations and update task details, including imposing delays. Task updates create new versions, preserving history. 3. **Assignments:** Assign or reassign operation to resources. 4. **Detect Conflicts:** Identify situations where an assigned conflicting (overlapping) with another based on their expected time windows. 5. **Resolve Conflicts:** Offer mechanisms to resolve individual scheduling conflicts through AI. 6. **Optimize Globally:** Offer global optimization of the schedule using various solvers to minimize conflicts and reassignments while optimizing for rules. 7. **AI Assistance:** Interact with an AI agent (via the `/agent/` endpoint) using natural language to query the schedule, identify conflicts, request moves, or trigger conflict resolution processes. The agent utilizes specialized tools to interact with the system's state. 8. **Real-time Updates:** Delivers real-time notifications about changes to Assignments and Operations via WebSockets to subscribed clients. 9. **Virtual State Management:** Allows temporary modifications to the schedule (virtual assignments) for "what-if" scenarios or agent-driven planning before potentially persisting changes.