Result_Checker / app.py
mishiawan's picture
Update app.py
d9cc936 verified
import streamlit as st
# Setting the page configuration
st.set_page_config(page_title="Result Checker", layout="wide")
# Customizing the background and text
st.markdown(
"""
<style>
body {
background-color: skyblue;
color: black;
}
.sidebar .sidebar-content {
background-color: #f4f4f4;
}
</style>
""",
unsafe_allow_html=True,
)
# Sidebar for Navigation
st.sidebar.title("Result Checker")
menu = st.sidebar.radio("Choose a Role", ["Teacher Section", "Student Section"])
# Data store for simplicity (in-memory, not persistent)
data_store = {}
if menu == "Teacher Section":
st.title("Teacher Section")
# Input fields for teacher to add multiple students
school_name = st.text_input("School Name")
number_of_students = st.number_input("Enter the number of students", min_value=1, max_value=100, step=1)
for i in range(int(number_of_students)):
st.subheader(f"Student {i+1}")
student_name = st.text_input(f"Student Name {i+1}")
father_name = st.text_input(f"Father's Name {i+1}")
roll_no = st.text_input(f"Roll Number {i+1}")
subjects = st.text_area(f"Enter Subject Marks for Student {i+1} (comma-separated, e.g., 80,90,70)")
paper_cleared = st.number_input(f"Number of Papers Cleared for Student {i+1}", min_value=0)
if st.button(f"Calculate Result for Student {i+1}"):
if student_name and father_name and roll_no and subjects:
marks = list(map(int, subjects.split(",")))
total_marks = sum(marks)
percentage = total_marks / (len(marks) * 100) * 100
# Grade calculation
if percentage > 90:
grade = "A++"
elif percentage > 80:
grade = "A+"
elif percentage > 70:
grade = "A"
elif percentage > 60:
grade = "B"
elif percentage > 50:
grade = "C"
else:
grade = "Fail"
# Store data
data_store[roll_no] = {
"school_name": school_name,
"student_name": student_name,
"father_name": father_name,
"percentage": percentage,
"grade": grade,
"subjects": subjects,
"papers_cleared": paper_cleared
}
# Display Result
st.write(f"### Result for {student_name}")
st.write(f"**School Name:** {school_name}")
st.write(f"**Student Name:** {student_name}")
st.write(f"**Father's Name:** {father_name}")
st.write(f"**Percentage:** {percentage:.2f}%")
st.write(f"**Grade:** {grade}")
st.write(f"**Papers Cleared:** {paper_cleared}")
st.write(f"**Marks Obtained:** {subjects}")
else:
st.error("Please fill in all fields for the student.")
elif menu == "Student Section":
st.title("Student Section")
# Student inputs
school_name = st.text_input("School Name")
class_name = st.text_input("Class")
roll_no = st.text_input("Roll Number")
if st.button("Get Result"):
if roll_no in data_store:
result = data_store[roll_no]
st.write("### Result Summary")
st.write(f"**School Name:** {result['school_name']}")
st.write(f"**Student Name:** {result['student_name']}")
st.write(f"**Father's Name:** {result['father_name']}")
st.write(f"**Percentage:** {result['percentage']:.2f}%")
st.write(f"**Grade:** {result['grade']}")
st.write(f"**Marks Obtained:** {result['subjects']}")
st.write(f"**Papers Cleared:** {result['papers_cleared']}")
else:
st.error("Result not found. Please check the roll number.")