ProcessFlowDiagram Start Coffee Making Start Coffee Making user_selects_drink Customer Selects Drink Type Start Coffee Making->user_selects_drink Power On check_water_level Check Water Tank Level user_selects_drink->check_water_level Selection Made water_sufficient Enough Water? check_water_level->water_sufficient Level Checked check_coffee_beans Check Coffee Bean Supply water_sufficient->check_coffee_beans Sufficient show_water_warning Display 'Add Water' Message water_sufficient->show_water_warning Low Water beans_available Beans Available? check_coffee_beans->beans_available Bean Check grind_coffee_beans Grind Coffee Beans beans_available->grind_coffee_beans Available show_beans_warning Display 'Refill Beans' Message beans_available->show_beans_warning Empty heat_water Heat Water to Temperature grind_coffee_beans->heat_water Grinding Done brew_coffee Brew Coffee heat_water->brew_coffee Water Ready dispense_coffee Dispense Coffee to Cup brew_coffee->dispense_coffee Brewing Complete generate_receipt Print Receipt dispense_coffee->generate_receipt Coffee Served end_coffee_process Coffee Process Complete generate_receipt->end_coffee_process Transaction Complete machine_maintenance_log Log Maintenance Alert show_water_warning->machine_maintenance_log Warning Shown show_beans_warning->machine_maintenance_log Warning Shown machine_maintenance_log->end_coffee_process Alert Logged