Spaces:
Sleeping
Sleeping
import streamlit as st | |
from github_analytics.fetch_data import fetch_user_data | |
from github_analytics.display_user_info import display_user_info | |
from github_analytics.pie_chart import create_pie_chart | |
from github_analytics.line_chart import create_line_chart | |
from github_analytics.bubble_chart import create_bubble_chart | |
from github_analytics.bar_chart import create_bar_chart | |
def github_analytics(): | |
"""Streamlit app for fetching and displaying GitHub user and repository data.""" | |
st.title("Github Analytics") | |
username = st.text_input("Enter your GitHub username") | |
if username: | |
user_data, repo_data = fetch_user_data(username) | |
if user_data == "User not found": | |
st.error("User not found") | |
return | |
if repo_data == "Repo not found": | |
st.write("Repo not found") | |
return | |
if user_data: | |
if repo_data: | |
display_user_info(user_data) | |
# st.write("**User Info:**") | |
# st.write(user_data) | |
# st.write("**Repo Info:**") | |
# st.write(repo_data) | |
st.title("Select a metric to analyze") | |
option = st.selectbox( | |
"", | |
("Stars", "Forks", "Languages Used", | |
"Stars and Forks compared with time"), | |
index=None, | |
placeholder="Select something...", | |
) | |
st.write("You selected:", option) | |
# Dictionary to map options to functions | |
option_functions = { | |
"Stars": create_bar_chart, | |
"Forks": create_line_chart, | |
"Languages Used": create_pie_chart, | |
"Stars and Forks compared with time": create_bubble_chart, | |
} | |
# Call the corresponding function based on the selected option | |
if option in option_functions: | |
option_functions[option](repo_data) | |
else: | |
st.warning("Invalid option selected.") | |
else: | |
st.error(f"No repositories found for the user '{username}'.") | |
else: | |
st.title(f"Invalid username '{username}'. Please enter a valid GitHub username.") | |