Gyan.AI / src /components /sidebar.py
cryogenic22's picture
Create sidebar.py
5cb30a1 verified
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']}")