albhu commited on
Commit
c4bbe32
·
verified ·
1 Parent(s): a3225c9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -0
app.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ from datetime import datetime
4
+ import random
5
+
6
+ # Upload spreadsheet
7
+ st.title("Duty Roster Generator")
8
+ uploaded_file = st.file_uploader("Upload your spreadsheet", type=["csv", "xlsx"])
9
+
10
+ if uploaded_file:
11
+ # Load the data
12
+ if uploaded_file.name.endswith('.csv'):
13
+ df = pd.read_csv(uploaded_file)
14
+ else:
15
+ df = pd.read_excel(uploaded_file)
16
+
17
+ # Display uploaded data
18
+ st.write("Personnel Availability Data:")
19
+ st.dataframe(df)
20
+
21
+ # Input for user-specific conditions or preferences
22
+ user_prompt = st.text_input("Enter specific roster requirements (e.g., preferred shifts, coverage needs)")
23
+
24
+ # Generate duty roster (basic example)
25
+ def generate_roster(data, prompt):
26
+ # Dummy logic to assign random available days based on constraints
27
+ roster = {}
28
+ for _, row in data.iterrows():
29
+ name = row['Name']
30
+ unavailable_days = row['Unavailable Days'].split(',')
31
+ available_days = [day for day in range(1, 31) if str(day) not in unavailable_days]
32
+ roster[name] = random.choice(available_days) if available_days else "No Available Days"
33
+ return roster
34
+
35
+ # Display roster
36
+ roster = generate_roster(df, user_prompt)
37
+ st.write("Generated Duty Roster:")
38
+ st.write(roster)