import streamlit as st from datetime import datetime class Sidebar: @staticmethod def display(): with st.sidebar: st.subheader("👤 User Profile") # User login/profile if 'username' not in st.session_state: with st.form("login_form"): username = st.text_input("Enter your nickname") if st.form_submit_button("Start Learning"): if username: st.session_state.username = username st.rerun() else: st.write(f"Welcome, {st.session_state.username}! 👋") if st.button("Sign Out"): for key in ['username', 'messages', 'user_progress']: if key in st.session_state: del st.session_state[key] st.rerun() # Progress section if 'username' in st.session_state: st.subheader("📊 Your Progress") completed = len(st.session_state.user_progress['completed_modules']) st.progress(completed / 8, f"Completed {completed}/8 modules") # Learning streak if st.session_state.user_progress.get('learning_streak', 0) > 0: st.write(f"🔥 Learning Streak: {st.session_state.user_progress['learning_streak']} days") # Achievements section if st.session_state.user_progress.get('achievements', []): st.subheader("🏆 Achievements") for achievement in st.session_state.user_progress['achievements']: st.success(f"{achievement['name']} - {achievement['date']}")