Spaces:
Build error
Build error
Ctrl+K
import gradio as gr import pandas as pd import numpy as np import sqlite3 # ---------- SQLite Database Setup ---------- conn = sqlite3.connect("student_marks.db") cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS marks ( StudentID INTEGER PRIMARY KEY, Name TEXT, Math INTEGER, Science INTEGER, English INTEGER, History INTEGER, Total INTEGER, Average REAL, Grade TEXT, Rank INTEGER )''') conn.commit() # ---------- Helper Functions ---------- def calculate_grade(avg): if avg >= 90: return "A+" elif avg >= 80: return "A" elif avg >= 70: return "B" elif avg >= 60: return "C" else: return "D" def process_marks(file): # Load CSV df = pd.read_csv(file.name) # Compute total and average using NumPy subjects = ["Math", "Science", "English", "History"] df["Total"] = np.sum(df[subjects].values, axis=1) df["Average"] = np.mean(df[subjects].values, axis=1) df["Grade"] = df["Average"].apply(calculate_grade) # Rank students by average df["Rank"] = df["Average"].rank(ascending=False).astype(int) # Store results in SQLite df.to_sql("marks", conn, if_exists="replace", index=False) return df.sort_values("Rank") def view_database(): df = pd.read_sql("SELECT * FROM marks", conn) return df # ---------- Gradio Interface ---------- with gr.Blocks(title="π Student Marks & Performance Tracker") as app: gr.Markdown("## π Upload Marks CSV and Generate Performance Report") file_input = gr.File(label="Upload CSV File") output_table = gr.Dataframe(label="Processed Marks") process_btn = gr.Button("π Process Marks") view_btn = gr.Button("π View Stored Results") process_btn.click(process_marks, inputs=file_input, outputs=output_table) view_btn.click(view_database, outputs=output_table) app.launch()
9bd88a4 verified