Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
#
|
| 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("",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
st.write("### Weekly Timetable")
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
#
|
| 33 |
-
st.
|
| 34 |
-
|
| 35 |
-
|
| 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!")
|
|
|
|
|
|
|
|
|