Munwar92 commited on
Commit
92b8e0e
·
verified ·
1 Parent(s): 679dc73

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +114 -0
app.py ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+
4
+ # Initialize session state for subjects, teachers, classrooms, and timetable
5
+ if 'subjects' not in st.session_state:
6
+ st.session_state['subjects'] = []
7
+
8
+ if 'teachers' not in st.session_state:
9
+ st.session_state['teachers'] = []
10
+
11
+ if 'classrooms' not in st.session_state:
12
+ st.session_state['classrooms'] = []
13
+
14
+ if 'timetable' not in st.session_state:
15
+ st.session_state['timetable'] = pd.DataFrame(columns=['Day', 'Time', 'Room', 'Subject', 'Teacher'])
16
+
17
+ # Define days and time slots
18
+ DAYS = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
19
+ TIMES = ["08:00-09:00", "09:00-10:00", "10:00-11:00", "11:00-12:00", "01:00-02:00", "02:00-03:00"]
20
+
21
+ # Title of the application
22
+ st.title("Smart Semester Subjects Timetable Management System")
23
+
24
+ # Sidebar navigation
25
+ menu = st.sidebar.radio("Menu", ["Add Subject", "Add Teacher", "Add Classroom", "Add Subject Lectures", "View Timetable"])
26
+
27
+ # Add Subject Page
28
+ if menu == "Add Subject":
29
+ st.header("Add Subjects")
30
+ subject = st.text_input("Enter Subject Name")
31
+
32
+ if st.button("Add Subject"):
33
+ if subject:
34
+ st.session_state['subjects'].append(subject)
35
+ st.success(f"Added subject: {subject}")
36
+ else:
37
+ st.error("Please enter a subject name.")
38
+
39
+ st.subheader("Current Subjects")
40
+ if st.session_state['subjects']:
41
+ st.write(st.session_state['subjects'])
42
+ else:
43
+ st.write("No subjects added yet.")
44
+
45
+ # Add Teacher Page
46
+ elif menu == "Add Teacher":
47
+ st.header("Add Teachers")
48
+ teacher = st.text_input("Enter Teacher Name")
49
+
50
+ if st.button("Add Teacher"):
51
+ if teacher:
52
+ st.session_state['teachers'].append(teacher)
53
+ st.success(f"Added teacher: {teacher}")
54
+ else:
55
+ st.error("Please enter a teacher name.")
56
+
57
+ st.subheader("Current Teachers")
58
+ if st.session_state['teachers']:
59
+ st.write(st.session_state['teachers'])
60
+ else:
61
+ st.write("No teachers added yet.")
62
+
63
+ # Add Classroom Page
64
+ elif menu == "Add Classroom":
65
+ st.header("Add Classrooms")
66
+ room = st.text_input("Enter Classroom Name")
67
+
68
+ if st.button("Add Classroom"):
69
+ if room:
70
+ st.session_state['classrooms'].append(room)
71
+ st.success(f"Added classroom: {room}")
72
+ else:
73
+ st.error("Please enter a classroom name.")
74
+
75
+ st.subheader("Current Classrooms")
76
+ if st.session_state['classrooms']:
77
+ st.write(st.session_state['classrooms'])
78
+ else:
79
+ st.write("No classrooms added yet.")
80
+
81
+ # Add Subject Lectures Page
82
+ elif menu == "Add Subject Lectures":
83
+ st.header("Add Subject Lectures")
84
+ if not st.session_state['subjects'] or not st.session_state['teachers'] or not st.session_state['classrooms']:
85
+ st.warning("Please ensure subjects, teachers, and classrooms are added first.")
86
+ else:
87
+ subject = st.selectbox("Select Subject", st.session_state['subjects'])
88
+ teacher = st.selectbox("Select Teacher", st.session_state['teachers'])
89
+ room = st.selectbox("Select Classroom", st.session_state['classrooms'])
90
+ day = st.selectbox("Select Day", DAYS)
91
+ time = st.selectbox("Select Time Slot", TIMES)
92
+
93
+ if st.button("Add Lecture"):
94
+ # Check if the slot is already taken
95
+ if not st.session_state['timetable'][(st.session_state['timetable']['Day'] == day) &
96
+ (st.session_state['timetable']['Time'] == time) &
97
+ (st.session_state['timetable']['Room'] == room)].empty:
98
+ st.error(f"Slot on {day} at {time} in {room} is already taken.")
99
+ else:
100
+ new_entry = pd.DataFrame({"Day": [day], "Time": [time], "Room": [room], "Subject": [subject], "Teacher": [teacher]})
101
+ st.session_state['timetable'] = pd.concat([st.session_state['timetable'], new_entry], ignore_index=True)
102
+ st.success("Lecture added successfully.")
103
+
104
+ # View Timetable Page
105
+ elif menu == "View Timetable":
106
+ st.header("Weekly Timetable")
107
+ if not st.session_state['timetable'].empty:
108
+ st.table(st.session_state['timetable'])
109
+
110
+ if st.button("Clear Timetable"):
111
+ st.session_state['timetable'] = pd.DataFrame(columns=['Day', 'Time', 'Room', 'Subject', 'Teacher'])
112
+ st.success("Timetable cleared.")
113
+ else:
114
+ st.write("No timetable entries yet.")