# ============================================================================= # app.py (main entry point) # ============================================================================= import gradio as gr from data_handler import DataHandler from gradio_callbacks import GradioCallbacks from gradio_components import ( create_header, create_qa_tab, create_overview_tab, create_methodology_tab, create_filters_tab, create_about_tab ) def main(): # Initialize data data_handler = DataHandler() callbacks = GradioCallbacks(data_handler) data = data_handler.get_data() # Create Gradio app with gr.Blocks( theme=gr.themes.Monochrome(), title="FCAS Research Methods Evidence Mapping", css=""" .gradio-container { max-width: 1200px !important; } .main-header { text-align: center; background: linear-gradient(90deg, #667eea 0%, #764ba2 100%); color: white; padding: 2rem; border-radius: 10px; margin-bottom: 2rem; } """ ) as app: # Header create_header() with gr.Tabs(): create_qa_tab(callbacks) create_overview_tab(callbacks) create_methodology_tab(callbacks) create_filters_tab(callbacks, data['countries_list'], data['sectors_list']) create_about_tab() return app if __name__ == "__main__": app = main() app.launch( share=True, server_name="0.0.0.0", server_port=7860, show_error=True )