cryogenic22 commited on
Commit
5cb30a1
·
verified ·
1 Parent(s): 77e4605

Create sidebar.py

Browse files
Files changed (1) hide show
  1. src/components/sidebar.py +40 -0
src/components/sidebar.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from datetime import datetime
3
+
4
+ class Sidebar:
5
+ @staticmethod
6
+ def display():
7
+ with st.sidebar:
8
+ st.subheader("👤 User Profile")
9
+
10
+ # User login/profile
11
+ if 'username' not in st.session_state:
12
+ with st.form("login_form"):
13
+ username = st.text_input("Enter your nickname")
14
+ if st.form_submit_button("Start Learning"):
15
+ if username:
16
+ st.session_state.username = username
17
+ st.rerun()
18
+ else:
19
+ st.write(f"Welcome, {st.session_state.username}! 👋")
20
+ if st.button("Sign Out"):
21
+ for key in ['username', 'messages', 'user_progress']:
22
+ if key in st.session_state:
23
+ del st.session_state[key]
24
+ st.rerun()
25
+
26
+ # Progress section
27
+ if 'username' in st.session_state:
28
+ st.subheader("📊 Your Progress")
29
+ completed = len(st.session_state.user_progress['completed_modules'])
30
+ st.progress(completed / 8, f"Completed {completed}/8 modules")
31
+
32
+ # Learning streak
33
+ if st.session_state.user_progress.get('learning_streak', 0) > 0:
34
+ st.write(f"🔥 Learning Streak: {st.session_state.user_progress['learning_streak']} days")
35
+
36
+ # Achievements section
37
+ if st.session_state.user_progress.get('achievements', []):
38
+ st.subheader("🏆 Achievements")
39
+ for achievement in st.session_state.user_progress['achievements']:
40
+ st.success(f"{achievement['name']} - {achievement['date']}")