File size: 1,632 Bytes
f73929c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# =============================================================================
# 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
    )