import streamlit as st import pandas as pd import plotly.figure_factory as ff import random from datetime import datetime, timedelta def generate_random_color(): r = random.randint(0, 255) g = random.randint(0, 255) b = random.randint(0, 255) return f'rgb({r}, {g}, {b})' st.set_page_config(layout="wide") st.title("Project Schedule/Gantt Chart Generator") project_name = st.text_input("Project Name:") start_date = st.date_input("Project Start Date:", value=datetime.today()) end_date = st.date_input("Project End Date:", value=datetime.today() + timedelta(days=30)) num_activities = st.number_input("Number of Activities (Minimum 1):", min_value=1, value=5) activities = [] for i in range(num_activities): col1, col2 = st.columns(2) with col1: activity_name = st.text_input(f"Activity {i+1} Name:", key=f"name_{i}") with col2: activity_duration = st.number_input(f"Activity {i+1} Duration (days):", min_value=1, key=f"duration_{i}") activities.append({"Task": activity_name, "Duration": activity_duration}) if st.button("Create Gantt Chart"): if not project_name: st.error("Please enter a project name.") elif any(not activity["Task"] for activity in activities): st.error("Please enter names for all activities.") # Corrected line