MonsterBoyTabs commited on
Commit
496e606
·
verified ·
1 Parent(s): 7f3b7cb

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -0
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import json
3
+ from pathlib import Path
4
+ from datetime import datetime
5
+
6
+ # Title and setup
7
+ st.title("📚 Student Study Tracker")
8
+ days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
9
+
10
+ # Initialize session state
11
+ if 'notes' not in st.session_state:
12
+ st.session_state.notes = {day: "" for day in days}
13
+ if 'checked' not in st.session_state:
14
+ st.session_state.checked = {day: False for day in days}
15
+
16
+ # Progress Bar
17
+ completed_days = sum(st.session_state.checked.values())
18
+ st.progress(completed_days / 7)
19
+
20
+ # Sidebar for reset and current day
21
+ st.sidebar.markdown("## Options")
22
+ if st.sidebar.button("♻️ Reset All"):
23
+ st.session_state.notes = {day: "" for day in days}
24
+ st.session_state.checked = {day: False for day in days}
25
+ st.success("All progress reset!")
26
+
27
+ current_day = datetime.today().strftime('%A')
28
+ st.sidebar.markdown(f"## Today is: {current_day}")
29
+
30
+ # Create tabs for each day
31
+ tabs = st.tabs(days)
32
+
33
+ for i, day in enumerate(days):
34
+ with tabs[i]:
35
+ # Text area for notes
36
+ st.session_state.notes[day] = st.text_area(
37
+ f"What did you learn on {day}?",
38
+ value=st.session_state.notes[day],
39
+ height=150
40
+ )
41
+
42
+ # Checkbox to mark completion
43
+ st.session_state.checked[day] = st.checkbox(
44
+ f"Mark as completed ({day})",
45
+ value=st.session_state.checked[day]
46
+ )
47
+
48
+ # Visual feedback for completed days
49
+ if st.session_state.checked[day]:
50
+ st.success(f"✅ Great job completing {day}'s work!")
51
+ st.markdown(f"<div style='background-color:#e6ffe6; padding:10px; border-radius:5px;'>"
52
+ f"<del>{st.session_state.notes[day]}</del></div>",
53
+ unsafe_allow_html=True)
54
+ else:
55
+ st.warning("⚠️ Work pending for today!")
56
+
57
+ # Save data to a JSON file
58
+ if st.button("💾 Save All Progress"):
59
+ data = {
60
+ "notes": st.session_state.notes,
61
+ "checked": st.session_state.checked
62
+ }
63
+
64
+ Path("study_data.json").write_text(json.dumps(data))
65
+ st.success("Data saved successfully!")