"""
HyperBI - Offline Tableau-like Business Intelligence Platform
============================================================
A complete offline BI tool built with Streamlit, Plotly, Pandas,
and the Tableau Hyper API. No internet or Tableau Desktop required.
"""
import streamlit as st
import os
import sys
# ─── Page Configuration (must be first Streamlit call) ───────────────────────
st.set_page_config(
page_title="HyperBI Studio",
page_icon="📊",
layout="wide",
initial_sidebar_state="expanded",
menu_items={
"Get Help": None,
"Report a bug": None,
"About": "HyperBI Studio — Offline BI Platform v1.0",
},
)
# ─── Path setup ──────────────────────────────────────────────────────────────
ROOT = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, ROOT)
from components.session import init_session
from components.theme import apply_theme, render_header
from components.sidebar import render_sidebar
# ─── Initialize session state ────────────────────────────────────────────────
init_session()
# ─── Apply theme ─────────────────────────────────────────────────────────────
apply_theme()
# ─── Sidebar navigation ──────────────────────────────────────────────────────
page = render_sidebar()
# ─── Page routing ────────────────────────────────────────────────────────────
render_header()
if page == "🏠 Home":
from pages.home import render
render()
elif page == "🗄️ Database":
from pages.database import render
render()
elif page == "📋 Table Explorer":
from pages.explorer import render
render()
elif page == "💻 SQL Editor":
from pages.sql_editor import render
render()
elif page == "📤 CSV Import":
from pages.csv_import import render
render()
elif page == "📊 Dashboard Builder":
from pages.dashboard import render
render()
elif page == "📈 Analytics":
from pages.analytics import render
render()
elif page == "⚙️ Settings":
from pages.settings import render
render()
#app.py