Spaces:
Sleeping
Sleeping
File size: 1,602 Bytes
d22a7f8 475174a d22a7f8 43bd9c2 8fb7a79 d7cb7b3 43bd9c2 8fb7a79 d7cb7b3 43bd9c2 d7cb7b3 43bd9c2 d7cb7b3 43bd9c2 475174a d7cb7b3 43bd9c2 475174a d7cb7b3 43bd9c2 d7cb7b3 43bd9c2 d7cb7b3 475174a 781e264 475174a 43bd9c2 475174a 43bd9c2 |
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 |
import streamlit as st
import pandas as pd
import os
import datetime
LEADERBOARD_FILE = "leaderboard.csv"
st.title("π Hackathon Leaderboard")
# Upload form
uploaded_file = st.file_uploader("Upload your solution (.py)", type=["py"])
if uploaded_file:
if st.button("Submit"):
# Generate unique filename based on timestamp
timestamp = datetime.datetime.now().isoformat()
submission_filename = f"{timestamp.replace(':', '_')}_{uploaded_file.name}"
submission_path = os.path.join("submissions", submission_filename)
# Ensure submissions folder exists
os.makedirs("submissions", exist_ok=True)
# Save uploaded file
with open(submission_path, "wb") as f:
f.write(uploaded_file.read())
# TODO: Add actual evaluation logic here
score = 42 # Dummy score
# Create leaderboard entry
entry = {
"timestamp": timestamp,
"score": score,
"file": submission_filename,
}
# Append to leaderboard.csv
if os.path.exists(LEADERBOARD_FILE):
df = pd.read_csv(LEADERBOARD_FILE)
df = pd.concat([df, pd.DataFrame([entry])], ignore_index=True)
else:
df = pd.DataFrame([entry])
df.to_csv(LEADERBOARD_FILE, index=False)
st.success(f"Submission received! Score: {score}")
# Show leaderboard
if os.path.exists(LEADERBOARD_FILE):
df = pd.read_csv(LEADERBOARD_FILE)
df_sorted = df.sort_values(by="score", ascending=False)
st.subheader("Leaderboard")
st.dataframe(df_sorted)
|