File size: 2,625 Bytes
43ce8bf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import streamlit as st
import pandas as pd
import requests

# Helper functions to fetch data dynamically
def fetch_smartphones():
    # Replace with a real API or dataset URL for smartphones
    return pd.DataFrame([
        {"Model": "iPhone 15", "Processor": "A17 Bionic", "RAM": "6 GB", "Battery": "3200 mAh"},
        {"Model": "Samsung Galaxy S23", "Processor": "Snapdragon 8 Gen 2", "RAM": "8 GB", "Battery": "3900 mAh"}
    ])

def fetch_processors():
    # Replace with a real API or dataset URL for processors
    return pd.DataFrame([
        {"Name": "Intel i9-13900K", "Cores": 24, "Threads": 32, "Base Clock": "3.0 GHz"},
        {"Name": "AMD Ryzen 9 7950X", "Cores": 16, "Threads": 32, "Base Clock": "4.5 GHz"}
    ])

def fetch_gpus():
    # Replace with a real API or dataset URL for GPUs
    return pd.DataFrame([
        {"Name": "NVIDIA RTX 4090", "VRAM": "24 GB", "Base Clock": "2.23 GHz"},
        {"Name": "AMD RX 7900 XTX", "VRAM": "24 GB", "Base Clock": "2.3 GHz"}
    ])

def fetch_laptops():
    # Replace with a real API or dataset URL for laptops
    return pd.DataFrame([
        {"Model": "MacBook Pro 16", "Processor": "M2 Max", "RAM": "32 GB", "Battery Life": "14 hours"},
        {"Model": "Dell XPS 15", "Processor": "Intel i7-12700H", "RAM": "16 GB", "Battery Life": "10 hours"}
    ])

# Main App
def main():
    st.title("Global Technology Comparisons")
    st.sidebar.title("Choose a category")

    # Define categories and their respective data-fetching functions
    categories = {
        "Smartphones": fetch_smartphones,
        "Processors": fetch_processors,
        "GPUs": fetch_gpus,
        "Laptops": fetch_laptops
    }

    # User selects the category
    category = st.sidebar.selectbox("Select a category:", list(categories.keys()))

    # Fetch and display data dynamically
    st.header(f"{category} Comparisons")
    data = categories[category]()
    st.table(data)

    # Comparison tool
    st.subheader(f"Compare {category}")
    col1, col2 = st.columns(2)

    # Dropdown for selecting items to compare
    option1 = col1.selectbox("Select first item:", data.iloc[:, 0])
    option2 = col2.selectbox("Select second item:", data.iloc[:, 0])

    # Show comparison results
    if option1 and option2:
        st.write(f"### Comparison between {option1} and {option2}:")
        item1 = data[data.iloc[:, 0] == option1].iloc[0]
        item2 = data[data.iloc[:, 0] == option2].iloc[0]
        comparison_df = pd.DataFrame({"Feature": data.columns, option1: item1.values, option2: item2.values})
        st.table(comparison_df)

if __name__ == "__main__":
    main()