Munwar92 commited on
Commit
54e640f
·
verified ·
1 Parent(s): 0fda6b2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -30
app.py CHANGED
@@ -2,37 +2,48 @@ import streamlit as st
2
  import pandas as pd
3
 
4
  # App title
5
- st.title("Semester Timetable App")
6
 
7
- # Sidebar input
8
- st.sidebar.header("Configure Your Timetable")
9
- days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
10
- time_slots = [f"{hour}:00 - {hour+1}:00" for hour in range(8, 18)] # 8 AM to 6 PM
11
-
12
- # Default timetable
13
  if "timetable" not in st.session_state:
14
- st.session_state.timetable = pd.DataFrame("", index=days, columns=time_slots)
 
 
 
 
 
 
 
 
 
15
 
16
- # Display timetable
 
 
 
 
 
 
 
 
 
 
17
  st.write("### Weekly Timetable")
18
- timetable_df = st.session_state.timetable
19
-
20
- # Allow user input for each cell
21
- for day in days:
22
- st.write(f"#### {day}")
23
- for time_slot in time_slots:
24
- value = st.text_input(f"{day} | {time_slot}", value=timetable_df.loc[day, time_slot])
25
- timetable_df.loc[day, time_slot] = value
26
-
27
- # Save updates
28
- if st.button("Save Timetable"):
29
- st.session_state.timetable = timetable_df
30
- st.success("Timetable saved!")
31
-
32
- # Export timetable
33
- st.download_button(
34
- "Download Timetable (CSV)",
35
- data=st.session_state.timetable.to_csv(),
36
- file_name="timetable.csv",
37
- mime="text/csv"
38
- )
 
2
  import pandas as pd
3
 
4
  # App title
5
+ st.title("Smart Semester Timetable App")
6
 
7
+ # Initialize session state for timetable
 
 
 
 
 
8
  if "timetable" not in st.session_state:
9
+ st.session_state.timetable = pd.DataFrame(columns=["Day", "Time", "Subject", "Room"])
10
+
11
+ # Sidebar inputs for timetable
12
+ st.sidebar.header("Add a New Timetable Entry")
13
+
14
+ # Input fields
15
+ day = st.sidebar.selectbox("Select Day", ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"])
16
+ time = st.sidebar.text_input("Enter Time Slot (e.g., 10:00 AM - 11:00 AM)")
17
+ subject = st.sidebar.text_input("Enter Subject")
18
+ room = st.sidebar.text_input("Enter Room Number")
19
 
20
+ # Button to add entry
21
+ if st.sidebar.button("Add Entry"):
22
+ if day and time and subject and room:
23
+ # Add new entry to the timetable
24
+ new_entry = {"Day": day, "Time": time, "Subject": subject, "Room": room}
25
+ st.session_state.timetable = pd.concat([st.session_state.timetable, pd.DataFrame([new_entry])], ignore_index=True)
26
+ st.success("Timetable entry added!")
27
+ else:
28
+ st.error("Please fill in all the fields.")
29
+
30
+ # Display the timetable
31
  st.write("### Weekly Timetable")
32
+ if not st.session_state.timetable.empty:
33
+ st.dataframe(st.session_state.timetable, use_container_width=True)
34
+ else:
35
+ st.write("No entries in the timetable yet. Use the sidebar to add new entries.")
36
+
37
+ # Option to download the timetable
38
+ if not st.session_state.timetable.empty:
39
+ st.download_button(
40
+ "Download Timetable (CSV)",
41
+ data=st.session_state.timetable.to_csv(index=False),
42
+ file_name="timetable.csv",
43
+ mime="text/csv"
44
+ )
45
+
46
+ # Option to clear the timetable
47
+ if st.button("Clear Timetable"):
48
+ st.session_state.timetable = pd.DataFrame(columns=["Day", "Time", "Subject", "Room"])
49
+ st.success("Timetable cleared!")