build an end to end Shiny Real Estate app using R and the zillow API. Explain each step then at the end Print out the entire code and indicate the online sandbox which allows this to be tested. Include unit tests and include error handling
Creating an end-to-end Shiny app for real estate using the Zillow API in R involves several steps. Below, I will guide you through the process step by step, and at the end, I'll provide the complete code.

### Step 1: Set Up Your Environment

1. **Install Required Packages**: Make sure you have R and RStudio installed. You will need the `shiny`, `httr`, `jsonlite`, and `testthat` packages.
   ```R
   install.packages(c("shiny", "httr", "jsonlite", "testthat"))
   ```

2. **Get Zillow API Access**: Sign up for a Zillow API key by creating an account on the Zillow Developer Network. This key will be required to authenticate your requests.

### Step 2: Create the User Interface (UI)

The UI of the Shiny app will allow users to input a property address and display the related information fetched from the Zillow API.

```R
library(shiny)

ui <- fluidPage(
    titlePanel("Zillow Real Estate App"),
    sidebarLayout(
        sidebarPanel(
            textInput("address", "Enter Property Address:", ""),
            actionButton("search", "Search")
        ),
        mainPanel(
            verbatimTextOutput("result")
        )
    )
)
```

### Step 3: Define Server Logic

The server function will handle the API requests and responses. It will use the Zillow API to fetch property data
  Sure, here's an end-to-end Shiny Real Estate app using R and the Zillow API. I'll explain each step and provide the code at the end. I'll also indicate the online sandbox where this app can be tested and include unit tests and error handling.

Step 1: Set up the Zillow API

The first step is to set up the Zillow API. You can sign up for a Zillow API key on their website. Once you have the API key, you can use it to authenticate your Shiny app.

Step 2: Create a Shiny app

Next, create a new Shiny app in R. You can use the `shiny` package to create a new app. Here's an example of how to create a basic Shiny app:
```
shiny::shinyApp(
  ui = fluidPage(
    # Add a title to the app
    titlePanel("Real Estate App"),
    # Add a search input field
    inputPanel(
      searchInput("search_input", "Search for a property:"),
      # Add a dropdown menu for the type of property to search for
      dropdownPanel(
        # Add options for the dropdown menu
        dropdownMenuItems(
          # Add a option for houses
          houseOption("Houses", "Houses"),