{
  "generated_at": "2026-02-02T14:07:08.466628Z",
  "feature_data": {
    "login": {
      "screens": [
        {
          "screen_name": "Login",
          "screenshot_id": "IMG_2655"
        },
        {
          "screen_name": "Login",
          "screenshot_id": "IMG_2656"
        },
        {
          "screen_name": "Login",
          "screenshot_id": "IMG_2657"
        },
        {
          "screen_name": "Login",
          "screenshot_id": "IMG_2658"
        },
        {
          "screen_name": "Login",
          "screenshot_id": "IMG_2659"
        },
        {
          "screen_name": "Workspace Selection",
          "screenshot_id": "IMG_2660"
        }
      ],
      "depends_on_features": [
        "authentication",
        "user management",
        "User Account Management",
        "Workspace Management",
        "User profile",
        "Authentication",
        "user accounts"
      ],
      "connects_to_features": [],
      "data_flows": [
        {
          "screen": "Login",
          "data_flow": "This screen receives user credentials (username/email and password) as input. It sends these credentials to a backend authentication service. Upon successful authentication, it receives user data (user ID, profile information, organization data) from the backend. Upon failure, it receives an error message."
        },
        {
          "screen": "Login",
          "data_flow": "This screen receives user input (username/password). It sends this data to a backend authentication service. It receives a success/failure response and user data upon successful authentication."
        },
        {
          "screen": "Login",
          "data_flow": "This screen receives user input (username/email and password). It sends this data to the authentication service. Upon successful authentication, it receives a user authentication token and profile data. Upon failure, it receives an error message."
        },
        {
          "screen": "Login",
          "data_flow": "This screen receives user input (username/email and password). It sends this data to the authentication service. It receives a success/failure response and user data upon successful authentication."
        },
        {
          "screen": "Login",
          "data_flow": "This screen receives user input (email/phone number and password). It sends this data to the authentication service. It receives a success/failure response and user data upon successful authentication."
        },
        {
          "screen": "Workspace Selection",
          "data_flow": "This screen receives the user's authentication information from the login screen. It displays a list of available workspaces for the user. Upon selection, the selected workspace ID and user ID are passed to the main app screen."
        }
      ],
      "integration_points": []
    },
    "other": {
      "screens": [
        {
          "screen_name": "Onboarding",
          "screenshot_id": "IMG_2661"
        },
        {
          "screen_name": "Onboarding 1",
          "screenshot_id": "IMG_2662"
        },
        {
          "screen_name": "Company Selection",
          "screenshot_id": "IMG_2685"
        },
        {
          "screen_name": "Department Selection",
          "screenshot_id": "IMG_2686"
        },
        {
          "screen_name": "Foto Temperature Display",
          "screenshot_id": "IMG_2692"
        },
        {
          "screen_name": "Product Showcase",
          "screenshot_id": "IMG_2693"
        },
        {
          "screen_name": "Signature",
          "screenshot_id": "IMG_2694"
        },
        {
          "screen_name": "Broadcasts",
          "screenshot_id": "IMG_2712"
        },
        {
          "screen_name": "Broadcasts",
          "screenshot_id": "IMG_2713"
        },
        {
          "screen_name": "Broadcasts",
          "screenshot_id": "IMG_2714"
        },
        {
          "screen_name": "Broadcast Message",
          "screenshot_id": "IMG_2715"
        },
        {
          "screen_name": "Broadcast Message",
          "screenshot_id": "IMG_2716"
        },
        {
          "screen_name": "Broadcast Recipients",
          "screenshot_id": "IMG_2717"
        },
        {
          "screen_name": "Broadcast Locations",
          "screenshot_id": "IMG_2718"
        },
        {
          "screen_name": "Broadcast Locations",
          "screenshot_id": "IMG_2719"
        },
        {
          "screen_name": "Broadcast Workarea Selection",
          "screenshot_id": "IMG_2720"
        },
        {
          "screen_name": "Broadcast Skills Selection",
          "screenshot_id": "IMG_2721"
        },
        {
          "screen_name": "Broadcasts Select Events",
          "screenshot_id": "IMG_2722"
        },
        {
          "screen_name": "Broadcast Recipients",
          "screenshot_id": "IMG_2723"
        },
        {
          "screen_name": "Broadcasts Selection",
          "screenshot_id": "IMG_2724"
        },
        {
          "screen_name": "Broadcast Recipients",
          "screenshot_id": "IMG_2725"
        },
        {
          "screen_name": "Broadcast Additional Settings",
          "screenshot_id": "IMG_2726"
        },
        {
          "screen_name": "Broadcast Confirmation",
          "screenshot_id": "IMG_2727"
        },
        {
          "screen_name": "Broadcasts",
          "screenshot_id": "IMG_2728"
        },
        {
          "screen_name": "Broadcast Messages",
          "screenshot_id": "IMG_2729"
        },
        {
          "screen_name": "Car Return Checklist",
          "screenshot_id": "IMG_2736"
        },
        {
          "screen_name": "Feature Vote",
          "screenshot_id": "IMG_2745"
        }
      ],
      "depends_on_features": [
        "Messaging/Broadcasts",
        "Checklists",
        "Working Times",
        "Gallery",
        "Skills",
        "Shift Recording",
        "HACCP",
        "Shift Calendar",
        "Time Tracking",
        "Company Management",
        "Task Management",
        "Camera",
        "Broadcasts",
        "Data storage",
        "Availability Management",
        "User Authentication",
        "Temperature Monitoring",
        "Messaging",
        "Locations"
      ],
      "connects_to_features": [
        "schichtplanung",
        "dashboard",
        "checklists"
      ],
      "data_flows": [
        {
          "screen": "Onboarding",
          "data_flow": "This screen receives user account and workspace information from the previous screen. It doesn't send any data to the next screen, but it does signal that the onboarding process is complete."
        },
        {
          "screen": "Onboarding 1",
          "data_flow": "This screen receives the workspace ID from the previous screen. It displays information about the calendar feature. No data is sent out."
        },
        {
          "screen": "Company Selection",
          "data_flow": "Receives user authentication and date from previous screens. Sends the selected company to the Shift Details screen."
        },
        {
          "screen": "Department Selection",
          "data_flow": "This screen receives the selected company and date/time information from previous screens. It allows the user to select a department. The selected department is then passed to the Record Working Hours screen."
        },
        {
          "screen": "Foto Temperature Display",
          "data_flow": "This screen receives context from the HACCP checklist screen. It allows the user to take or select a photo. The photo (and potentially temperature data extracted from it) is then likely sent back to the HACCP checklist screen to be associated with a specific checklist item."
        },
        {
          "screen": "Product Showcase",
          "data_flow": "Data flows in from the Shift Task List, indicating which products need attention. Data flows out to the HACCP Checklist or Foto Temperature Display, passing product-specific information."
        },
        {
          "screen": "Signature",
          "data_flow": "The screen receives the context of the HACCP checklist. The user provides a signature, which is then sent back to the HACCP checklist screen upon saving. The signature data is likely stored in the app's database."
        },
        {
          "screen": "Broadcasts",
          "data_flow": "This screen receives broadcast messages (incoming and outgoing) associated with the user. It allows the user to view these messages and initiate a new broadcast. Data flows in from the server and out when a new broadcast is created."
        },
        {
          "screen": "Broadcasts",
          "data_flow": "This screen receives broadcast messages (incoming and outgoing) and displays them. It allows the user to create new broadcast messages."
        },
        {
          "screen": "Broadcasts",
          "data_flow": "Incoming: List of broadcast messages from the backend. Outgoing: Request to create a new broadcast or delete an existing one."
        },
        {
          "screen": "Broadcast Message",
          "data_flow": "The screen receives the user's input for the broadcast message. The message text is passed to the next screen when the user taps 'Next'."
        },
        {
          "screen": "Broadcast Message",
          "data_flow": "The screen receives no initial data. The user enters the broadcast message text. This text is passed to the next screen when 'Next' is clicked. If 'Back' or 'X' is clicked, no data is passed."
        },
        {
          "screen": "Broadcast Recipients",
          "data_flow": "This screen receives no initial data. The user selects recipients based on locations, work areas, skills, events, employees, and terminals. The selected recipient data is passed to the next screen when 'Next' is tapped."
        },
        {
          "screen": "Broadcast Locations",
          "data_flow": "This screen receives a list of available locations. The user selects locations, and the selected locations are passed back to the Broadcasts screen."
        },
        {
          "screen": "Broadcast Locations",
          "data_flow": "Receives broadcast message content and recipient type from previous screens. Displays a list of locations and allows the user to select one or more. Passes the list of selected locations to the next screen."
        },
        {
          "screen": "Broadcast Workarea Selection",
          "data_flow": "This screen receives a list of available workareas. The user selects workareas to receive the broadcast. The selected workareas are then passed to the confirmation screen."
        },
        {
          "screen": "Broadcast Skills Selection",
          "data_flow": "This screen receives a list of employees filtered by location and workarea. The user selects skills, and the list of selected skills is passed back to the Broadcast Message screen."
        },
        {
          "screen": "Broadcasts Select Events",
          "data_flow": "This screen receives a list of events and allows the user to select which events the broadcast should be sent to. The selected events are then passed back to the previous screen when the 'Confirm' button is pressed."
        },
        {
          "screen": "Broadcast Recipients",
          "data_flow": "This screen receives the broadcast details and displays a list of employees. The user selects employees to receive the broadcast. The list of selected employees is then passed back to the broadcasts screen upon confirmation."
        },
        {
          "screen": "Broadcasts Selection",
          "data_flow": "This screen receives a list of available terminals. The user selects terminals to receive the broadcast. The selected terminals are then passed to the next screen upon confirmation."
        },
        {
          "screen": "Broadcast Recipients",
          "data_flow": "This screen receives data about selected locations, workareas, skills, events, employees, and terminals. It allows the user to refine the recipient list. The selected recipients are then passed to the next screen."
        },
        {
          "screen": "Broadcast Additional Settings",
          "data_flow": "Receives broadcast details, recipient list, and selected skills/events. Allows user to set additional conditions (only working today, send via email). Passes all this data to the confirmation screen."
        },
        {
          "screen": "Broadcast Confirmation",
          "data_flow": "This screen receives the broadcast message details and recipient list from the previous screens. It then displays this information to the user for confirmation. If the user confirms, the broadcast message is sent to the recipients."
        },
        {
          "screen": "Broadcasts",
          "data_flow": "This screen receives a list of broadcast messages. It allows the user to view incoming and outgoing broadcasts. Tapping 'New Broadcast' initiates the process of creating a new broadcast."
        },
        {
          "screen": "Broadcast Messages",
          "data_flow": "Incoming: List of broadcast messages from the backend. Outgoing: Request to create a new broadcast message."
        },
        {
          "screen": "Car Return Checklist",
          "data_flow": "This screen receives the car return checklist template. The user inputs data (mileage, photos, damage report). Upon completion, the collected data is sent to the server for processing and storage."
        },
        {
          "screen": "Feature Vote",
          "data_flow": "This screen displays a list of feature suggestions and allows users to vote on them. It also allows users to submit their own feature suggestions."
        }
      ],
      "integration_points": []
    },
    "profile": {
      "screens": [
        {
          "screen_name": "Profile Onboarding",
          "screenshot_id": "IMG_2663"
        }
      ],
      "depends_on_features": [
        "profile"
      ],
      "connects_to_features": [],
      "data_flows": [
        {
          "screen": "Profile Onboarding",
          "data_flow": "This screen receives no data. It triggers the profile setup flow."
        }
      ],
      "integration_points": []
    },
    "dashboard": {
      "screens": [
        {
          "screen_name": "Dashboard",
          "screenshot_id": "IMG_2664"
        },
        {
          "screen_name": "Dashboard",
          "screenshot_id": "IMG_2665"
        },
        {
          "screen_name": "Dashboard",
          "screenshot_id": "IMG_2666"
        },
        {
          "screen_name": "Edit Dashboard",
          "screenshot_id": "IMG_2667"
        },
        {
          "screen_name": "Edit Dashboard",
          "screenshot_id": "IMG_2668"
        },
        {
          "screen_name": "Edit Dashboard",
          "screenshot_id": "IMG_2669"
        },
        {
          "screen_name": "Tips",
          "screenshot_id": "IMG_2743"
        }
      ],
      "depends_on_features": [
        "Calendar",
        "User Profile",
        "Checklists",
        "Events",
        "user settings",
        "feature voting",
        "Authentication",
        "Feature Voting",
        "checklists",
        "Weather Integration",
        "dashboard",
        "Weather",
        "widget configuration",
        "Salary Calculation",
        "tips",
        "Referral Program",
        "events",
        "Shift Management",
        "Documents",
        "vacation",
        "Tips",
        "Earnings tracking",
        "User authentication",
        "Holidays & Absences",
        "Broadcasts",
        "Data storage",
        "Salary",
        "Workspace Management"
      ],
      "connects_to_features": [
        "abwesenheiten",
        "documents",
        "dashboard",
        "schichtplanung",
        "checklists"
      ],
      "data_flows": [
        {
          "screen": "Dashboard",
          "data_flow": "Incoming: User authentication status, workspace ID, shift data, salary data, weather data. Outgoing: Navigation actions to other screens."
        },
        {
          "screen": "Dashboard",
          "data_flow": "The screen receives data about salary, weather, broadcasts, documents, checklists, holidays, events, and tips from backend services. User interactions (taps) trigger navigation to other screens, passing relevant data to those screens."
        },
        {
          "screen": "Dashboard",
          "data_flow": "The screen receives data about checklists, events, tips, referral bonuses, and feature votes from the backend. It sends data to the backend when the user interacts with the dashboard, such as voting on a feature or editing the dashboard configuration."
        },
        {
          "screen": "Edit Dashboard",
          "data_flow": "The screen receives the current dashboard configuration from the Dashboard screen. The user can modify the configuration by enabling/disabling widgets and reordering them. When the user taps the 'X' button, the updated configuration is sent back to the Dashboard screen."
        },
        {
          "screen": "Edit Dashboard",
          "data_flow": "The screen receives the current dashboard settings (which widgets are enabled/disabled). The user can toggle the switches to enable or disable widgets. When the user taps the 'X' button, the updated settings are sent back to the dashboard."
        },
        {
          "screen": "Edit Dashboard",
          "data_flow": "The screen receives the current dashboard configuration from the main dashboard. The user can then toggle widgets on or off. When the user exits the screen, the updated configuration is sent back to the main dashboard."
        },
        {
          "screen": "Tips",
          "data_flow": "This screen displays the user's tips data, including current balance, total earned, earnings for the current month, and a history of earnings. The data is likely fetched from a server or database."
        }
      ],
      "integration_points": []
    },
    "schichtplanung": {
      "screens": [
        {
          "screen_name": "Shift calendar",
          "screenshot_id": "IMG_2670"
        },
        {
          "screen_name": "Shift calendar",
          "screenshot_id": "IMG_2671"
        },
        {
          "screen_name": "Shift calendar",
          "screenshot_id": "IMG_2672"
        },
        {
          "screen_name": "Shift Calendar",
          "screenshot_id": "IMG_2675"
        },
        {
          "screen_name": "Calendar View Selection",
          "screenshot_id": "IMG_2676"
        },
        {
          "screen_name": "Shift calendar",
          "screenshot_id": "IMG_2677"
        },
        {
          "screen_name": "Shift details",
          "screenshot_id": "IMG_2678"
        },
        {
          "screen_name": "Shift Details",
          "screenshot_id": "IMG_2680"
        },
        {
          "screen_name": "Shift calendar",
          "screenshot_id": "IMG_2681"
        },
        {
          "screen_name": "Calendar Day View",
          "screenshot_id": "IMG_2682"
        },
        {
          "screen_name": "Availability Editor",
          "screenshot_id": "IMG_2683"
        },
        {
          "screen_name": "Shift Task List",
          "screenshot_id": "IMG_2689"
        },
        {
          "screen_name": "Shift Details",
          "screenshot_id": "IMG_2706"
        },
        {
          "screen_name": "Events Search",
          "screenshot_id": "IMG_2738"
        },
        {
          "screen_name": "Event Details",
          "screenshot_id": "IMG_2739"
        },
        {
          "screen_name": "Event Details",
          "screenshot_id": "IMG_2741"
        },
        {
          "screen_name": "Event Details",
          "screenshot_id": "IMG_2742"
        }
      ],
      "depends_on_features": [
        "user authentication",
        "document viewing",
        "shift management",
        "calendar filtering",
        "data synchronization",
        "location management",
        "task_management",
        "Employee management",
        "schichtplanung",
        "absence management (potentially, if change request involves absence)",
        "Restaurant management",
        "Shift scheduling",
        "calendar view selection",
        "restaurant management",
        "employee management",
        "User authentication",
        "calendar",
        "authorization management",
        "availability management"
      ],
      "connects_to_features": [
        "abwesenheiten",
        "schichtplanung"
      ],
      "data_flows": [
        {
          "screen": "Shift calendar",
          "data_flow": "Incoming: User authentication, restaurant information, existing shifts. Outgoing: Shift creation requests, filter requests."
        },
        {
          "screen": "Shift calendar",
          "data_flow": "Incoming: Employee list, location list, existing shift data. Outgoing: Shift creation/modification requests."
        },
        {
          "screen": "Shift calendar",
          "data_flow": "Incoming: User authentication, restaurant information, employee list, selected date. Outgoing: Request absence, set availability."
        },
        {
          "screen": "Shift Calendar",
          "data_flow": "This screen receives employee shift and availability data from the backend. It allows the user to modify the availability for a specific date. The updated availability data is then sent back to the backend."
        },
        {
          "screen": "Calendar View Selection",
          "data_flow": "This screen receives the current calendar view and filter settings from the shift calendar screen. The user can then select a different calendar view (Agenda or Timeline) and modify the filter settings. The selected view and filter settings are then passed back to the shift calendar screen."
        },
        {
          "screen": "Shift calendar",
          "data_flow": "Incoming: Selected date from the calendar view. Outgoing: User availability/authorization status, new shift creation requests, shift filter requests."
        },
        {
          "screen": "Shift details",
          "data_flow": "The screen receives shift details (employee, time, location) from the shift calendar. It allows the user to view a summary or initiate a change request, potentially sending data back to the server for processing."
        },
        {
          "screen": "Shift Details",
          "data_flow": "Receives shift details (time, location, availability) from the shift calendar. Displays this information to the user. No data is sent out from this screen in the current state."
        },
        {
          "screen": "Shift calendar",
          "data_flow": "The screen receives the selected date from the calendar view. It displays shift information fetched from a backend service based on the selected date. User interactions (e.g., adding a shift, filtering) trigger updates to the backend and refresh the displayed shift list."
        },
        {
          "screen": "Calendar Day View",
          "data_flow": "This screen receives the selected date from the calendar view and displays shift information for that date. It can also send the selected shift to the shift details screen."
        },
        {
          "screen": "Availability Editor",
          "data_flow": "Incoming: Selected date from the calendar day view. Outgoing: Updated availability data (start and end times) to the calendar day view."
        },
        {
          "screen": "Shift Task List",
          "data_flow": "This screen receives shift details (date, time) and a list of tasks assigned to the user for that shift. It allows the user to view the tasks and potentially mark them as complete (though the completion action is not visible on this screen)."
        },
        {
          "screen": "Shift Details",
          "data_flow": "This screen receives shift details (date, time, location, tags) to display. It allows the user to apply for the shift, sending the shift details to the application process."
        },
        {
          "screen": "Events Search",
          "data_flow": "This screen receives event data from a backend service. The search bar allows the user to filter the displayed events. Tapping an event sends the event details to the Event Detail screen."
        },
        {
          "screen": "Event Details",
          "data_flow": "This screen receives event details (name, location, date, time, description, work assignments) from the backend based on the event ID. It allows the user to indicate their availability and potentially apply for work assignments. The user's availability status and work assignment preferences may be sent back to the backend."
        },
        {
          "screen": "Event Details",
          "data_flow": "The screen receives event details (name, location, date, work assignments, shifts) from the Events Search screen based on the selected event. No data is sent back."
        },
        {
          "screen": "Event Details",
          "data_flow": "Receives event details (name, shifts, times) from the backend based on the selected event ID. No data is sent back to the backend from this screen."
        }
      ],
      "integration_points": []
    },
    "abwesenheiten": {
      "screens": [
        {
          "screen_name": "Absence Request",
          "screenshot_id": "IMG_2673"
        },
        {
          "screen_name": "Absence Request",
          "screenshot_id": "IMG_2674"
        },
        {
          "screen_name": "Absences",
          "screenshot_id": "IMG_2737"
        }
      ],
      "depends_on_features": [
        "authentication",
        "shift calendar",
        "camera",
        "abwesenheiten",
        "shift_calendar",
        "gallery"
      ],
      "connects_to_features": [
        "abwesenheiten",
        "schichtplanung"
      ],
      "data_flows": [
        {
          "screen": "Absence Request",
          "data_flow": "This screen receives user's shift calendar data and user authentication from the previous screen. The user inputs absence request details (start date, end date, half-day options, type of absence, note). This data is then sent to the backend when the user taps 'Request absence'."
        },
        {
          "screen": "Absence Request",
          "data_flow": "This screen receives user authentication and shift calendar data from previous screens. The user inputs absence details (start date, end date, type of absence, attachments). This data is then submitted to the server for processing. The server returns a confirmation or error message."
        },
        {
          "screen": "Absences",
          "data_flow": "This screen displays the user's holiday and absence information, including remaining days, total days, and a history of recent absences. Data is fetched from the server and displayed on the screen."
        }
      ],
      "integration_points": []
    },
    "zeiterfassung": {
      "screens": [
        {
          "screen_name": "Change Request",
          "screenshot_id": "IMG_2679"
        },
        {
          "screen_name": "Record Working Hours",
          "screenshot_id": "IMG_2684"
        },
        {
          "screen_name": "Record Working Hours",
          "screenshot_id": "IMG_2687"
        },
        {
          "screen_name": "Shift Timer",
          "screenshot_id": "IMG_2688"
        },
        {
          "screen_name": "Time Clock",
          "screenshot_id": "IMG_2690"
        },
        {
          "screen_name": "Break Timer",
          "screenshot_id": "IMG_2695"
        },
        {
          "screen_name": "Break Timer",
          "screenshot_id": "IMG_2698"
        },
        {
          "screen_name": "Shift Countdown",
          "screenshot_id": "IMG_2700"
        },
        {
          "screen_name": "End Shift Confirmation",
          "screenshot_id": "IMG_2701"
        },
        {
          "screen_name": "Working Time Adjustment",
          "screenshot_id": "IMG_2702"
        },
        {
          "screen_name": "Signature",
          "screenshot_id": "IMG_2703"
        },
        {
          "screen_name": "Signature",
          "screenshot_id": "IMG_2704"
        },
        {
          "screen_name": "Time Tracking Summary",
          "screenshot_id": "IMG_2705"
        },
        {
          "screen_name": "Working Times - January",
          "screenshot_id": "IMG_2707"
        },
        {
          "screen_name": "Working Times Details",
          "screenshot_id": "IMG_2708"
        },
        {
          "screen_name": "Working Times",
          "screenshot_id": "IMG_2709"
        },
        {
          "screen_name": "Working Times",
          "screenshot_id": "IMG_2710"
        },
        {
          "screen_name": "Working Times Details",
          "screenshot_id": "IMG_2711"
        },
        {
          "screen_name": "Tips History",
          "screenshot_id": "IMG_2744"
        }
      ],
      "depends_on_features": [
        "signature",
        "reporting",
        "Checklists",
        "task management",
        "checklist",
        "shift management",
        "availability",
        "break management",
        "cleaning checklists",
        "tips",
        "breaks",
        "change requests",
        "location management",
        "location",
        "signature capture",
        "authentication",
        "zeiterfassung",
        "calendar",
        "department management",
        "shift scheduling"
      ],
      "connects_to_features": [
        "schichtplanung",
        "zeiterfassung",
        "checklists"
      ],
      "data_flows": [
        {
          "screen": "Change Request",
          "data_flow": "The screen receives shift details (start, end, date, employee) from the shift details screen. The user can modify the start and end times and provide a justification. Upon submission, the updated shift details and justification are sent to the server for processing."
        },
        {
          "screen": "Record Working Hours",
          "data_flow": "This screen receives user authentication and shift schedule data. It allows the user to select a location and department. Upon tapping 'START', the selected location and department are sent to the zeiterfassung screen."
        },
        {
          "screen": "Record Working Hours",
          "data_flow": "This screen receives the user's location options (Restaurant Bachingen, Küche) and allows the user to select one. The selected location is then passed to the next screen to begin recording working hours."
        },
        {
          "screen": "Shift Timer",
          "data_flow": "Receives: User ID, Company ID, Department ID, Shift start time. Sends: Shift duration, break times to the End Shift Confirmation screen."
        },
        {
          "screen": "Time Clock",
          "data_flow": "The screen receives the Shift ID and a list of HACCP tasks from the Shift Task List screen. It updates the task completion status. It sends the shift ID, total time worked, task completion status, and break times to the Shift Summary screen when the shift is ended."
        },
        {
          "screen": "Break Timer",
          "data_flow": "Receives shift start time from the Time Clock screen. Sends shift duration and break information back to the Time Clock screen when the shift ends. Receives break task details when a break is started."
        },
        {
          "screen": "Break Timer",
          "data_flow": "Receives task ID from the Cleaning Checklist screen. Sends break start time and duration to the shift detail screen when the shift ends."
        },
        {
          "screen": "Shift Countdown",
          "data_flow": "This screen receives shift details and break information from previous screens. It sends shift details, break information, and task completion status to the Shift Summary screen when the shift ends. It also sends shift details to the Break Timer screen when a break is started."
        },
        {
          "screen": "End Shift Confirmation",
          "data_flow": "Receives a list of unfinished tasks from the checklist feature. No data is sent out."
        },
        {
          "screen": "Working Time Adjustment",
          "data_flow": "This screen receives the initial start and end times from the previous screen. The user can adjust these times. Upon confirmation, the adjusted start and end times are sent back to the main time tracking screen."
        },
        {
          "screen": "Signature",
          "data_flow": "The screen receives the working time (11:37 - 11:39 Uhr) from the previous screen. The user provides a signature. Upon tapping 'Send', the signature and working time are sent for confirmation. Tapping 'Reset' clears the signature."
        },
        {
          "screen": "Signature",
          "data_flow": "This screen receives the working time data (start and end time) from the previous screen. The user provides a signature. If the user taps 'Send', the signature and working time data are sent to the server. If the user taps 'Reset', the signature is cleared, and the user can redraw it."
        },
        {
          "screen": "Time Tracking Summary",
          "data_flow": "This screen receives employee name, restaurant name, date, start time, end time, working time, and signature data from previous screens. It displays this data in a summary format. It allows the user to modify the signature and then confirms the working time."
        },
        {
          "screen": "Working Times - January",
          "data_flow": "Receives shift data (dates, times) to highlight worked days on the calendar and calculate summary statistics (total hours, earnings).  No data is sent out from this screen."
        },
        {
          "screen": "Working Times Details",
          "data_flow": "This screen receives working time data for the selected month (January) from the 'Working Times - January' screen. It displays a summary of earnings, shifts, working time, and daily/monthly working time accounts. No data is sent back to the previous screen except for the user's navigation action."
        },
        {
          "screen": "Working Times",
          "data_flow": "This screen receives employee ID, restaurant ID, and date range from the previous screen. It displays the working times for the selected employee and restaurant for the specified dates. It also shows the status of change requests (confirmed or submitted)."
        },
        {
          "screen": "Working Times",
          "data_flow": "This screen receives working times data for a specific period (e.g., a month) from the 'Working Times Details' screen. It displays the working times for each day within that period. If changes are made and confirmed, the updated data is passed back to the 'Time Tracking Summary' screen."
        },
        {
          "screen": "Working Times Details",
          "data_flow": "This screen receives working time data (date, time, restaurant, department, change request status) from the previous screen (Working Times). It allows the user to view a summary or initiate a change request for the selected entry. No data is directly sent back to the server from this screen, but actions taken here (e.g., change request) will trigger further data interactions."
        },
        {
          "screen": "Tips History",
          "data_flow": "This screen receives tip history data from the Event Details screen. It displays the history of tips associated with a specific event. No data is sent back to the Event Details screen, except implicitly when the user closes the modal."
        }
      ],
      "integration_points": []
    },
    "checklists": {
      "screens": [
        {
          "screen_name": "HACCP Checklist",
          "screenshot_id": "IMG_2691"
        },
        {
          "screen_name": "Cleaning Checklist",
          "screenshot_id": "IMG_2696"
        },
        {
          "screen_name": "Checklist Item",
          "screenshot_id": "IMG_2697"
        },
        {
          "screen_name": "Checklist",
          "screenshot_id": "IMG_2699"
        },
        {
          "screen_name": "Checklists",
          "screenshot_id": "IMG_2733"
        },
        {
          "screen_name": "Checklists Archive",
          "screenshot_id": "IMG_2734"
        },
        {
          "screen_name": "Checklists Archive",
          "screenshot_id": "IMG_2735"
        }
      ],
      "depends_on_features": [
        "User authentication",
        "tasks",
        "Signature Capture",
        "signature",
        "Checklist management (creation, storage, retrieval)",
        "Checklists",
        "Task management (within checklists)",
        "user authentication",
        "Camera",
        "checklists"
      ],
      "connects_to_features": [
        "checklists"
      ],
      "data_flows": [
        {
          "screen": "HACCP Checklist",
          "data_flow": "The screen receives the HACCP checklist structure and requirements from the server. The user inputs data (temperatures, photos, signature). The completed checklist data is sent back to the server upon submission."
        },
        {
          "screen": "Cleaning Checklist",
          "data_flow": "This screen receives information about the cleaning tasks for the coffee machine and their completion status. It potentially updates the completion status of each task."
        },
        {
          "screen": "Checklist Item",
          "data_flow": "This screen receives the checklist item details (e.g., 'Kaffeesatz-Behälter ausleeren') and its current completion status from the 'Cleaning Checklist' screen. Upon completion (tapping 'Done'), it sends the updated status back to the 'Cleaning Checklist' screen."
        },
        {
          "screen": "Checklist",
          "data_flow": "The screen receives checklist data (items, status) from a previous screen or data source. User interactions (checking/unchecking items) update the checklist status, which is then sent back to the data source."
        },
        {
          "screen": "Checklists",
          "data_flow": "Incoming: User authentication, checklist data (today's checklists, permanent checklists) from backend. Outgoing: Checklist ID to checklist detail screen, navigation to checklist archive."
        },
        {
          "screen": "Checklists Archive",
          "data_flow": "This screen receives a list of archived checklists from the server. When a user taps on a checklist, the checklist ID and other relevant data are passed to the checklist detail screen."
        },
        {
          "screen": "Checklists Archive",
          "data_flow": "This screen receives a list of checklists from the 'Checklists' screen. It displays the archived checklists. When a user taps on the 'Unterschrift' item, the checklist ID and user ID are passed to the 'Signature' screen."
        }
      ],
      "integration_points": []
    },
    "documents": {
      "screens": [
        {
          "screen_name": "Documents",
          "screenshot_id": "IMG_2730"
        },
        {
          "screen_name": "Documents",
          "screenshot_id": "IMG_2731"
        },
        {
          "screen_name": "Document Upload",
          "screenshot_id": "IMG_2732"
        }
      ],
      "depends_on_features": [
        "document storage",
        "File Upload",
        "user authentication",
        "Document Management"
      ],
      "connects_to_features": [
        "documents"
      ],
      "data_flows": [
        {
          "screen": "Documents",
          "data_flow": "This screen receives a list of documents from the backend. When a user selects a document, the document ID and other relevant information are passed to the document detail screen."
        },
        {
          "screen": "Documents",
          "data_flow": "This screen receives a list of documents from the backend. When a user taps on a document, the document id, name, and content are passed to the document detail screen."
        },
        {
          "screen": "Document Upload",
          "data_flow": "The screen receives a list of existing documents. The user can upload a new document. Upon successful upload, the new document is added to the list and the updated list is displayed on the Documents screen. Upon failure, an error message is displayed."
        }
      ],
      "integration_points": []
    }
  },
  "dependency_graph": [
    {
      "from": "authentication",
      "to": "login",
      "type": "depends_on"
    },
    {
      "from": "user management",
      "to": "login",
      "type": "depends_on"
    },
    {
      "from": "User Account Management",
      "to": "login",
      "type": "depends_on"
    },
    {
      "from": "Workspace Management",
      "to": "login",
      "type": "depends_on"
    },
    {
      "from": "User profile",
      "to": "login",
      "type": "depends_on"
    },
    {
      "from": "Authentication",
      "to": "login",
      "type": "depends_on"
    },
    {
      "from": "user accounts",
      "to": "login",
      "type": "depends_on"
    },
    {
      "from": "Messaging/Broadcasts",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Checklists",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Working Times",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Gallery",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Skills",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Shift Recording",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "HACCP",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Shift Calendar",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Time Tracking",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Company Management",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Task Management",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Camera",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Broadcasts",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Data storage",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Availability Management",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "User Authentication",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Temperature Monitoring",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Messaging",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "Locations",
      "to": "other",
      "type": "depends_on"
    },
    {
      "from": "other",
      "to": "schichtplanung",
      "type": "connects_to"
    },
    {
      "from": "other",
      "to": "dashboard",
      "type": "connects_to"
    },
    {
      "from": "other",
      "to": "checklists",
      "type": "connects_to"
    },
    {
      "from": "profile",
      "to": "profile",
      "type": "depends_on"
    },
    {
      "from": "Calendar",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "User Profile",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Checklists",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Events",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "user settings",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "feature voting",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Authentication",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Feature Voting",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "checklists",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Weather Integration",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "dashboard",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Weather",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "widget configuration",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Salary Calculation",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "tips",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Referral Program",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "events",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Shift Management",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Documents",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "vacation",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Tips",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Earnings tracking",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "User authentication",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Holidays & Absences",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Broadcasts",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Data storage",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Salary",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "Workspace Management",
      "to": "dashboard",
      "type": "depends_on"
    },
    {
      "from": "dashboard",
      "to": "abwesenheiten",
      "type": "connects_to"
    },
    {
      "from": "dashboard",
      "to": "documents",
      "type": "connects_to"
    },
    {
      "from": "dashboard",
      "to": "dashboard",
      "type": "connects_to"
    },
    {
      "from": "dashboard",
      "to": "schichtplanung",
      "type": "connects_to"
    },
    {
      "from": "dashboard",
      "to": "checklists",
      "type": "connects_to"
    },
    {
      "from": "user authentication",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "document viewing",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "shift management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "calendar filtering",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "data synchronization",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "location management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "task_management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "Employee management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "schichtplanung",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "absence management (potentially, if change request involves absence)",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "Restaurant management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "Shift scheduling",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "calendar view selection",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "restaurant management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "employee management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "User authentication",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "calendar",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "authorization management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "availability management",
      "to": "schichtplanung",
      "type": "depends_on"
    },
    {
      "from": "schichtplanung",
      "to": "abwesenheiten",
      "type": "connects_to"
    },
    {
      "from": "schichtplanung",
      "to": "schichtplanung",
      "type": "connects_to"
    },
    {
      "from": "authentication",
      "to": "abwesenheiten",
      "type": "depends_on"
    },
    {
      "from": "shift calendar",
      "to": "abwesenheiten",
      "type": "depends_on"
    },
    {
      "from": "camera",
      "to": "abwesenheiten",
      "type": "depends_on"
    },
    {
      "from": "abwesenheiten",
      "to": "abwesenheiten",
      "type": "depends_on"
    },
    {
      "from": "shift_calendar",
      "to": "abwesenheiten",
      "type": "depends_on"
    },
    {
      "from": "gallery",
      "to": "abwesenheiten",
      "type": "depends_on"
    },
    {
      "from": "abwesenheiten",
      "to": "abwesenheiten",
      "type": "connects_to"
    },
    {
      "from": "abwesenheiten",
      "to": "schichtplanung",
      "type": "connects_to"
    },
    {
      "from": "signature",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "reporting",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "Checklists",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "task management",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "checklist",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "shift management",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "availability",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "break management",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "cleaning checklists",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "tips",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "breaks",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "change requests",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "location management",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "location",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "signature capture",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "authentication",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "zeiterfassung",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "calendar",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "department management",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "shift scheduling",
      "to": "zeiterfassung",
      "type": "depends_on"
    },
    {
      "from": "zeiterfassung",
      "to": "schichtplanung",
      "type": "connects_to"
    },
    {
      "from": "zeiterfassung",
      "to": "zeiterfassung",
      "type": "connects_to"
    },
    {
      "from": "zeiterfassung",
      "to": "checklists",
      "type": "connects_to"
    },
    {
      "from": "User authentication",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "tasks",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "Signature Capture",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "signature",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "Checklist management (creation, storage, retrieval)",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "Checklists",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "Task management (within checklists)",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "user authentication",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "Camera",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "checklists",
      "to": "checklists",
      "type": "depends_on"
    },
    {
      "from": "checklists",
      "to": "checklists",
      "type": "connects_to"
    },
    {
      "from": "document storage",
      "to": "documents",
      "type": "depends_on"
    },
    {
      "from": "File Upload",
      "to": "documents",
      "type": "depends_on"
    },
    {
      "from": "user authentication",
      "to": "documents",
      "type": "depends_on"
    },
    {
      "from": "Document Management",
      "to": "documents",
      "type": "depends_on"
    },
    {
      "from": "documents",
      "to": "documents",
      "type": "connects_to"
    }
  ],
  "feature_areas": [
    "login",
    "other",
    "profile",
    "dashboard",
    "schichtplanung",
    "abwesenheiten",
    "zeiterfassung",
    "checklists",
    "documents"
  ]
}