import streamlit as st
from utils import (
APP_ICON_PATH,
inject_theme,
render_page_header,
render_sidebar,
)
st.set_page_config(page_title="Plexi | Home", page_icon=APP_ICON_PATH, layout="wide")
inject_theme()
render_page_header(
"AI study companion",
"Study with real materials, not generic answers",
(
"Plexi keeps revision simple: browse the right files, preview them quickly, "
"and ask focused questions without losing the subject context."
),
badges=[
"Inline file previews",
"Subject-scoped retrieval",
"Bring your own model",
],
)
intro_col, action_col = st.columns(2, gap="large")
with intro_col:
st.markdown(
"""
Built for focused revision
Move from finding the right material to understanding it in one clean flow.
""",
unsafe_allow_html=True,
)
with action_col:
st.markdown(
"""
Choose your starting point
Open the hub to explore files, or jump straight into the assistant if you already
know what you want to study.
""",
unsafe_allow_html=True,
)
st.markdown(
"""
""",
unsafe_allow_html=True,
)
st.markdown(
'How It Works
',
unsafe_allow_html=True,
)
step_cols = st.columns(3, gap="medium")
step_cards = [
(
"01",
"Choose your subject",
"Pick a semester and subject so the experience stays focused on one course.",
),
(
"02",
"Browse the material",
"Open notes, Word docs, and slides in the hub and preview them without leaving the app.",
),
(
"03",
"Study with Plexi",
"Ask for summaries, revision help, or simple explanations from the loaded subject.",
),
]
for column, (step, title, body) in zip(step_cols, step_cards):
with column:
st.markdown(
f"""
""",
unsafe_allow_html=True,
)
st.markdown(
'Contribute
',
unsafe_allow_html=True,
)
contribute_cols = st.columns([1.25, 0.75], gap="large")
with contribute_cols[0]:
st.markdown(
"""
Share something useful
Have clean notes, slides, or question papers that can help others?
Submit them through the upload form and they can be reviewed and added
to the study library for everyone.
""",
unsafe_allow_html=True,
)
with contribute_cols[1]:
st.markdown(
"""
""",
unsafe_allow_html=True,
)
render_sidebar()