import streamlit as st
st.set_page_config(page_title="Student Log", layout="centered")
st.title("🎓 Student Performance Logger")
st.write("This app uses Session State to keep track of added students without losing data on reruns.")
# 1. Initialize session state list if it doesn't exist
if "student_logs" not in st.session_state:
st.session_state.student_logs = []
# Form to input student details
with st.form("student_form", clear_on_submit=True):
name = st.text_input("Student Name")
score = st.slider("Exam Score", 0, 100, 75)
submit = st.form_submit_button("Add Student")
if submit:
if name.strip() != "":
# 2. Append new student log to session state list
st.session_state.student_logs.append({"name": name, "score": score})
st.success(f"Added {name}!")
else:
st.error("Please enter a name.")
st.divider()
# Display log from session state
st.subheader("📋 Logged Student Records")
if len(st.session_state.student_logs) > 0:
for idx, student in enumerate(st.session_state.student_logs):
st.write(f"{idx + 1}. **{student['name']}** — Score: {student['score']}%")
# 3. Clear button to empty the session state list
if st.button("Clear Log"):
st.session_state.student_logs = []
st.rerun() # Forces a rerun to update the UI immediately
else:
st.info("No students logged yet.")