Shiny App

shiny_app_url <- trimws(Sys.getenv("SHINY_APP_URL", unset = ""))
has_shiny_target <- nzchar(shiny_app_url)
is_local_target <- has_shiny_target && grepl("127\\.0\\.0\\.1|localhost", shiny_app_url)
shiny_target_label <- if (!has_shiny_target) {
  "No target configured"
} else if (is_local_target) {
  "Local target"
} else {
  "Deployment target"
}
shiny_target_note <- if (!has_shiny_target) {
  "No external Shiny URL is configured yet. Use the setup instructions below before publishing the static site."
} else if (is_local_target) {
  "The site currently points to a locally running Shiny process."
} else {
  "The site is currently configured to point to the deployed Shiny application."
}

Open The App

This page is the website entry point for the Shiny application.

Current target: not configured yet.

Launch Shiny App

Set SHINY_APP_URL before expecting a public launch link here.

No external Shiny URL is configured yet. Use the setup instructions below before publishing the static site.

Current Target

  • Label: No target configured
  • URL: Not configured
  • Mode: Configuration required

Run Command

shiny::runApp("app")

Or from the project root:

Rscript run_app.R 3838

Embedded Preview

When the target app is available, the frame below gives the website a direct in-page preview.

Preview unavailable.
Set SHINY_APP_URL to a deployed app URL, then re-render the site to enable the launch link and embedded preview.

Current Module Status

Module Current status Current focus
Time Series Visual Analysis lightweight explorer compare monthly series and metadata before deeper analysis
Time Series Clustering active prototype Wang branch interaction and visual refinement
Forecasting active prototype Jin branch forecasting workflow with selectable model comparison and fallback runtime support

Data Contract

The current clustering workflow reads from:

  • data/raw/visitor_arrivals_full_dataset.xlsx
  • data/processed/clustering_country_wide.csv
  • data/processed/clustering_country_long.csv
  • data/raw/tourism_update.xlsx for optional tourism performance context in the forecasting module

Expected User Flow

  1. Open the Shiny app from this page.
  2. Enter the Time Series Clustering tab.
  3. Select a focused set of countries.
  4. Choose a year window and normalization mode.
  5. Review the outputs in order: Dashboard, Pattern Explorer, Focus Market in Context, Assignments.

Deployment Switch

For local testing, start the app directly with shiny::runApp("app") or Rscript run_app.R 3838.

When you are ready to switch to shinyapps.io, re-render the site with:

$env:SHINY_APP_URL='https://YOUR-APP-NAME.shinyapps.io/YOUR-APP/'
quarto render

That will update both the launch button and the embedded preview to the deployed app.

Notes For Local Testing

  1. Start the app first if the preview frame is blank.
  2. Use the standalone launch link if your browser blocks the embedded frame.
  3. Keep the browser window at a normal desktop width when checking layout quality.