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."
}Shiny App
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 3838Embedded 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.xlsxdata/processed/clustering_country_wide.csvdata/processed/clustering_country_long.csvdata/raw/tourism_update.xlsxfor optional tourism performance context in the forecasting module
Expected User Flow
- Open the Shiny app from this page.
- Enter the
Time Series Clusteringtab. - Select a focused set of countries.
- Choose a year window and normalization mode.
- 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 renderThat will update both the launch button and the embedded preview to the deployed app.
Notes For Local Testing
- Start the app first if the preview frame is blank.
- Use the standalone launch link if your browser blocks the embedded frame.
- Keep the browser window at a normal desktop width when checking layout quality.