| # ============================================================================= | |
| # 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 | |
| ) |