import solara import duckdb from dashboard_helpers import build_trip_map, build_demo_map, build_stats # 1. Connect to our pre-baked database in read-only mode con = duckdb.connect('processed_dashboard.db', read_only=True) con.install_extension('spatial') con.load_extension('spatial') # 2. Grab baselines baseline_df = con.sql("SELECT * FROM city_baselines").df() baseline_white = float(baseline_df["baseline_white_pct"].iloc[0]) / 100.0 baseline_black = float(baseline_df["baseline_black_pct"].iloc[0]) / 100.0 # 3. Define our Reactive State selected_month = solara.reactive("Feb2025") # 4. Build Reusable Components @solara.component def TaxiMap(service, metric, cmap, title): month = selected_month.value m = build_trip_map(con, service, month, metric, cmap, title) with solara.Card(title=f"{title} ({month})"): solara.display(m) @solara.component def ServiceStatsCard(service, cmap_pu, cmap_do): month = selected_month.value pu_head, pu_table = build_stats(con, service, month, 'pu', cmap_pu, 'Pickups') do_head, do_table = build_stats(con, service, month, 'do', cmap_do, 'Drop-offs') with solara.Card(): solara.Markdown(f"### {service} Top 10 Destinations ({month})", style={"text-align": "center"}) with solara.Row(): with solara.Column(): solara.display(pu_head) solara.display(pu_table) with solara.Column(): solara.display(do_head) solara.display(do_table) @solara.component def DemographicMap(column, baseline_val, title): m = build_demo_map(con, column, baseline_val, title) with solara.Card(title=title): solara.display(m) # 5. Build the Main Page Layout @solara.component def Page(): solara.Title("NYC Taxi Mobility Equity Dashboard") with solara.Column(): with solara.Column(align="center"): # Header solara.Markdown("# NYC Taxi Mobility Equity Dashboard", style={"text-align": "center"}) solara.Markdown( "