Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import pandas as pd | |
| import plotly.express as px | |
| # Function to get exam data | |
| def get_exam_data(): | |
| exams = [ | |
| {"Exam Name": "Junior Engineer (Civil, Mechanical, Electrical and Quantity Surveying & Contracts) Examination, 2024", "Exam Date": "2024-06-05", "Details": "Paper-I (CBE)*"}, | |
| {"Exam Name": "Selection Post Examination, Phase-XII, 2024", "Exam Date": "2024-06-20", "Details": "Phase-XII, 2024"}, | |
| {"Exam Name": "Sub-Inspector in Delhi Police and Central Armed Police Forces Examination, 2024", "Exam Date": "2024-06-27", "Details": "Paper-I (CBE)*"}, | |
| {"Exam Name": "Combined Higher Secondary (10+2) Level Examination, 2024", "Exam Date": "2024-07-01", "Details": "Tier-I (CBE)*"}, | |
| {"Exam Name": "Combined Graduate Level Examination, 2024", "Exam Date": "2024-09-01", "Details": "Tier-I (CBE)*"}, | |
| {"Exam Name": "Multi Tasking (Non-Technical) Staff, and Havaldar (CBIC & CBN) Examination-2024", "Exam Date": "2024-10-01", "Details": "CBE*"}, | |
| {"Exam Name": "Stenographer Grade ‘C’ & ‘D’ Examination, 2024", "Exam Date": "2024-10-15", "Details": "CBE*"}, | |
| {"Exam Name": "Junior Hindi Translator, Junior Translator and Senior Hindi Translator Examination, 2024", "Exam Date": "2024-10-25", "Details": "Paper-I (CBE)*"}, | |
| {"Exam Name": "Constables (GD) in Central Armed Police Forces (CAPFs), NIA, SSF and Rifleman (GD) in Assam Rifles Examination, 2025", "Exam Date": "2025-01-15", "Details": "CBE*"}, | |
| ] | |
| df = pd.DataFrame(exams) | |
| df['Exam Date'] = pd.to_datetime(df['Exam Date']) | |
| return df | |
| # Load exam data | |
| df = get_exam_data() | |
| # Function to filter exams by month and generate plot | |
| def filter_exams(month_year): | |
| filtered_df = df[df['Exam Date'].dt.strftime('%B %Y') == month_year] | |
| if not filtered_df.empty: | |
| fig = px.timeline(filtered_df, x_start="Exam Date", x_end="Exam Date", y="Exam Name", color="Exam Name", hover_data=["Details"]) | |
| fig.update_layout(xaxis_title="Date", yaxis_title="Exam") | |
| return fig, f"Exams scheduled for {month_year}" | |
| else: | |
| return None, f"No exams scheduled for {month_year}" | |
| # List of unique months in the dataset | |
| months = df['Exam Date'].dt.strftime('%B %Y').unique().tolist() | |
| # Gradio Interface | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Indian Government Exams Calendar") | |
| month_dropdown = gr.Dropdown(choices=months, label="Select Month") | |
| plot_output = gr.Plot(label="Exam Timeline") | |
| text_output = gr.Textbox(label="Exam Details") | |
| month_dropdown.change(fn=filter_exams, inputs=month_dropdown, outputs=[plot_output, text_output]) | |
| # Launch the Gradio app | |
| if __name__ == "__main__": | |
| demo.launch() | |