fmegahed commited on
Commit
434ddf7
·
1 Parent(s): 807d83e

Shrink avatar, rename header to Vibe-Coded by, add version line and About page

Browse files
Files changed (2) hide show
  1. app.py +34 -5
  2. src/ui_theme.py +4 -3
app.py CHANGED
@@ -654,16 +654,12 @@ with st.sidebar:
654
  <span style="font-size:0.82rem; color:#000;">
655
  ISA 444 &middot; Miami University
656
  </span>
657
- <div style="margin-top:0.35rem; font-size:0.75rem; color:#000;">
658
- Vibe-Coded by <strong>Fadel M. Megahed</strong><br>
659
- Version <strong>0.2.0</strong>
660
- </div>
661
  </div>
662
  """,
663
  unsafe_allow_html=True,
664
  )
665
  st.divider()
666
- st.subheader("Developer")
667
  st.markdown(
668
  """
669
  <div class="dev-card">
@@ -710,6 +706,7 @@ with st.sidebar:
710
  """,
711
  unsafe_allow_html=True,
712
  )
 
713
  st.divider()
714
  st.header("Data Input")
715
 
@@ -852,6 +849,38 @@ if cleaned_df is None or not y_cols:
852
  st.write(
853
  "Upload a CSV or choose a demo dataset from the sidebar to get started."
854
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
855
  st.stop()
856
 
857
  # If QueryChat is active, use its filtered df
 
654
  <span style="font-size:0.82rem; color:#000;">
655
  ISA 444 &middot; Miami University
656
  </span>
 
 
 
 
657
  </div>
658
  """,
659
  unsafe_allow_html=True,
660
  )
661
  st.divider()
662
+ st.subheader("Vibe-Coded by:")
663
  st.markdown(
664
  """
665
  <div class="dev-card">
 
706
  """,
707
  unsafe_allow_html=True,
708
  )
709
+ st.caption("v0.2.0 &middot; Last updated Feb 2026")
710
  st.divider()
711
  st.header("Data Input")
712
 
 
849
  st.write(
850
  "Upload a CSV or choose a demo dataset from the sidebar to get started."
851
  )
852
+
853
+ col_about, col_how = st.columns(2)
854
+ with col_about:
855
+ st.subheader("About")
856
+ st.markdown(
857
+ "An interactive app for **ISA 444** students at Miami University "
858
+ "to explore time-series data, create publication-quality charts, "
859
+ "and get AI-powered chart interpretation."
860
+ )
861
+ st.markdown(
862
+ "**Features:**\n"
863
+ "- Auto-detect delimiters, date columns, and numeric formats\n"
864
+ "- 9+ chart types: line, seasonal, ACF/PACF, decomposition, and more\n"
865
+ "- Multi-series support with panel and spaghetti plots\n"
866
+ "- AI chart interpretation via OpenAI vision\n"
867
+ "- Natural-language data filtering with QueryChat"
868
+ )
869
+ with col_how:
870
+ st.subheader("How to Use")
871
+ st.markdown(
872
+ "1. **Upload** a CSV file or pick a **demo dataset** from the sidebar\n"
873
+ "2. **Select** a date column and one or more value columns\n"
874
+ "3. **Choose** a chart type from the *Single Series* tab\n"
875
+ "4. Use the *Few Series* and *Many Series* tabs for multi-column comparisons\n"
876
+ "5. Expand **Summary Statistics** for descriptive stats and stationarity tests\n"
877
+ "6. Click **Interpret Chart with AI** to get AI-generated insights"
878
+ )
879
+ st.markdown(
880
+ "**Privacy:** All processing is in-memory. Only chart images "
881
+ "(never raw data) are sent to OpenAI when you click Interpret."
882
+ )
883
+
884
  st.stop()
885
 
886
  # If QueryChat is active, use its filtered df
src/ui_theme.py CHANGED
@@ -113,9 +113,10 @@ def apply_miami_theme() -> None:
113
  gap: 0.5rem;
114
  align-items: flex-start;
115
  }}
116
- .dev-avatar svg {{
117
- width: 2em;
118
- height: 2em;
 
119
  fill: {_BLACK};
120
  }}
121
  .dev-name {{
 
113
  gap: 0.5rem;
114
  align-items: flex-start;
115
  }}
116
+ .dev-avatar {{
117
+ width: 28px;
118
+ height: 28px;
119
+ min-width: 28px;
120
  fill: {_BLACK};
121
  }}
122
  .dev-name {{