import gradio as gr import pandas as pd import os from datetime import datetime # File to store student data DATA_FILE = "students.csv" # Create file if not exists if not os.path.exists(DATA_FILE): df = pd.DataFrame(columns=["Name", "Email", "Department", "Message", "Time"]) df.to_csv(DATA_FILE, index=False) # Function to save data def submit_form(name, email, department, message): if name.strip() == "" or email.strip() == "": return "❌ Name and Email are required!", load_data() new_data = pd.DataFrame([{ "Name": name, "Email": email, "Department": department, "Message": message, "Time": datetime.now().strftime("%Y-%m-%d %H:%M:%S") }]) new_data.to_csv(DATA_FILE, mode="a", header=False, index=False) return f"✅ Thank you {name}! Your response has been recorded.", load_data() # Load all data def load_data(): return pd.read_csv(DATA_FILE) # Clear form function def clear_form(): return "", "", None, "", "Form cleared!", load_data() # Search function def search_data(keyword): df = pd.read_csv(DATA_FILE) if keyword.strip() == "": return df filtered_df = df[ df.apply(lambda row: row.astype(str).str.contains(keyword, case=False).any(), axis=1) ] return filtered_df # UI Design with gr.Blocks(title="College Admission App") as app: gr.Markdown("## 🎓 College Registration Form") gr.Markdown("Fill the form below to register.") with gr.Row(): name = gr.Textbox(label="Full Name") email = gr.Textbox(label="Email Address") department = gr.Dropdown( ["Computer Science", "Business", "Engineering", "Mathematics", "Other"], label="Select Department" ) message = gr.Textbox(label="Why do you want to join?", lines=4) with gr.Row(): submit_btn = gr.Button("Submit Application") clear_btn = gr.Button("Clear Form") output = gr.Textbox(label="Status") gr.Markdown("## 📋 Submitted Applications") data_table = gr.Dataframe(value=load_data(), interactive=False) gr.Markdown("## 🔎 Search Applications") search_box = gr.Textbox(label="Enter keyword to search") search_btn = gr.Button("Search") # Button actions submit_btn.click( submit_form, inputs=[name, email, department, message], outputs=[output, data_table] ) clear_btn.click( clear_form, outputs=[name, email, department, message, output, data_table] ) search_btn.click( search_data, inputs=search_box, outputs=data_table ) app.launch()