Spaces:
Build error
Build error
File size: 1,840 Bytes
5cb30a1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
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']}") |