Spaces:
Sleeping
Sleeping
- app.py +43 -38
- encrypted_grades.csv +1 -1
app.py
CHANGED
|
@@ -124,50 +124,55 @@ def main():
|
|
| 124 |
df = load_data()
|
| 125 |
|
| 126 |
# Look up the student's information using their email
|
| 127 |
-
|
| 128 |
|
| 129 |
-
if not
|
| 130 |
st.markdown("---")
|
| 131 |
st.subheader('Your Grade Information:')
|
| 132 |
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
with col1:
|
| 136 |
-
st.markdown("<p class='big-font'>Name</p>", unsafe_allow_html=True)
|
| 137 |
-
st.write(f"{student['NAME'].values[0]}")
|
| 138 |
|
| 139 |
-
st.
|
| 140 |
-
st.write(f"{student['ID'].values[0]}")
|
| 141 |
-
|
| 142 |
-
with col2:
|
| 143 |
-
st.markdown("<p class='big-font'>Grade</p>", unsafe_allow_html=True)
|
| 144 |
-
grade = student['GRADE'].values[0]
|
| 145 |
-
if pd.isna(grade):
|
| 146 |
-
grade_display = "N/A"
|
| 147 |
-
else:
|
| 148 |
-
grade_display = f"{grade:.2f}"
|
| 149 |
-
st.write(grade_display)
|
| 150 |
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
st.
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 171 |
else:
|
| 172 |
st.error('Your email is not found in our records. Please contact the administrator.')
|
| 173 |
|
|
|
|
| 124 |
df = load_data()
|
| 125 |
|
| 126 |
# Look up the student's information using their email
|
| 127 |
+
student_records = df[df['EMAIL'].str.lower() == user_info['email'].lower()]
|
| 128 |
|
| 129 |
+
if not student_records.empty:
|
| 130 |
st.markdown("---")
|
| 131 |
st.subheader('Your Grade Information:')
|
| 132 |
|
| 133 |
+
for index, record in student_records.iterrows():
|
| 134 |
+
st.markdown(f"### Course: {record['COURSE']}")
|
|
|
|
|
|
|
|
|
|
| 135 |
|
| 136 |
+
col1, col2 = st.columns(2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 137 |
|
| 138 |
+
with col1:
|
| 139 |
+
st.markdown("<p class='big-font'>Name</p>", unsafe_allow_html=True)
|
| 140 |
+
st.write(f"{record['NAME']}")
|
| 141 |
+
|
| 142 |
+
st.markdown("<p class='big-font'>ID</p>", unsafe_allow_html=True)
|
| 143 |
+
st.write(f"{record['ID']}")
|
| 144 |
+
|
| 145 |
+
with col2:
|
| 146 |
+
st.markdown("<p class='big-font'>Grade</p>", unsafe_allow_html=True)
|
| 147 |
+
grade = record['GRADE']
|
| 148 |
+
if pd.isna(grade):
|
| 149 |
+
grade_display = "N/A"
|
| 150 |
+
else:
|
| 151 |
+
grade_display = f"{grade:.2f}"
|
| 152 |
+
st.write(grade_display)
|
| 153 |
+
|
| 154 |
+
st.markdown("<p class='big-font'>Remarks</p>", unsafe_allow_html=True)
|
| 155 |
+
remarks = record['REMARKS']
|
| 156 |
+
if remarks == "Passed":
|
| 157 |
+
st.success(remarks)
|
| 158 |
+
elif remarks == "Conditional":
|
| 159 |
+
st.warning(remarks)
|
| 160 |
+
else:
|
| 161 |
+
st.write(remarks)
|
| 162 |
+
|
| 163 |
+
if not pd.isna(grade):
|
| 164 |
+
if grade > 1.9:
|
| 165 |
+
message = f"Keep up the good work! Your grade of {grade:.2f} shows dedication. Consider seeking additional support to further improve your performance."
|
| 166 |
+
st.markdown(f"<p class='message'>{message}</p>", unsafe_allow_html=True)
|
| 167 |
+
else:
|
| 168 |
+
message = f"Congratulations! Your outstanding grade of {grade:.2f} demonstrates exceptional performance. Keep up the excellent work!"
|
| 169 |
+
st.markdown(f"<p class='message'>{message}</p>", unsafe_allow_html=True)
|
| 170 |
+
|
| 171 |
+
if remarks == "Conditional":
|
| 172 |
+
warning_message = "Warning: Your current status is Conditional. You need to pass or achieve a higher grade in the final term to improve your standing."
|
| 173 |
+
st.markdown(f"<p class='warning-message'>{warning_message}</p>", unsafe_allow_html=True)
|
| 174 |
+
|
| 175 |
+
st.markdown("---")
|
| 176 |
else:
|
| 177 |
st.error('Your email is not found in our records. Please contact the administrator.')
|
| 178 |
|
encrypted_grades.csv
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
|
|
|
|
| 1 |
+
gAAAAABnC132BQLHDLhVnhoGvbPrvwKZMoTo8fDI3Ioqbn_B6CkaqJ2emJAxCLi_RK2x4TX3YT7N9PMFynn8IInKOM3g2x3nqDmO7PdUcf7oEfgXJotD8eQHo6YpmqUtpiUH0CSBBSCusjPi_e7qkWrhd5fWI9F1DwFoe1puO51278iwnfwJ_caSFNl3OBTheDoPpN2iBqgCyVktEW5eDiOUnWDQaSBLcCgbv-c1U5uLFoErW5M4outhYqZlxAzlK6noWBzpJeOhMyVIMdZcNLwJi6qjaeW48bXr_4V0_cZl6UxoPTOCetcbj1a0RIxRsIpz26xA-t9len7wYa8gf0YQC5iwQdF0Rz0PO8Crk7Btgvxo447xMZzQg-KduWmYDd9cqSWnwWcnSj832SCHXjTNUuFn4pbBAGsMiK-5sjSR1zGkK76BTdzgm4jmuzW0_eqkxegPu6frk8DltmQDh6u8bAGcMFWw9BlAtGb0pBcPVnYukgvtdonUFaZ64f13KhHRz6yopRbC9B484BLms8clR8Tt924TTeXctjtU2aBwimRXx7Ct7sxxmTKuN3AMANPYJSOeexLGbhDJXT95JPo5CRxaX1m5eHBCOr7X3gO3DvcIU96h3cAGmZ75FpJNY3c4QqSfX7-Gpig6z8koOQVkDUfNzDqgCRcV859hzSBhUiJKoaDqmNRXFML7ocION9J0rLMJzWDFlOlqiBBio98BaZMWQLBZx9IKun5bWQglT42CHZmsTWSRKLAFkPTYFFCSAmp_vOBmJ1XTVFmrkXlsVFqlLHqTU1uuuI8J1utF2uOxnK9wW9xGwzO0nlFp317_yPReAMctiVfn-8BS3wcS3oghRY-3s8n24bimyYjMyLY-54Yz0EtEpBtGMXDqc3OVOmuuXEo58aw_ZJlp-5ei-hjQj3WLNGLWwcuLv0useNQ4ITEcHtPgw1D1gI-82oi6EmjiTWXVMfePe62JMLFlyyNHRaKy4pEgOxD6yQSItLMDkBS-e5LaE6GNNnZRuMB9PAkzaRmcvGyQEVcCHqVg1qSbbQYAThq1L6Dfq8IVfj3_IBiNHqqHxiFCMOzR64ghIpz_ss-2PuF9jEj364_2x38UVks-ZjUPj_iWrwEVa04vlvFACQgcTo7yu82xRL7Ct2_AyMcLrRD0FNDXgOmXm1SbBO_FwJVEMxacSP-P-6zz_Qb-E-rN4qhJ3Pvk8MN3YOLYrURBlfeCNKQTfjFYqNkxk7pbqI3HBmEIC5Wdr_J7KxJ5mCvYd5s10olQQ2-huv8M8bzaeiEgm4VylW3R_Kj2LLagQXENZufRo_TtIC_qlL5ToLnX9YfED-10_Gzdk7cw7zOvirY8_jgoQJFAmdhubT3SZPXJA0IxxK9mw3bkHR474g-NAiWOpUPhE6cJ7ETylw5t6i-36WKST7Ff-N9c2OsbqYxL2QthyvopCX-7c11t1pnmTVq_xz_O8xXHC_g07FTQTsRZzN6wtN9NtiQBYoTLqdpGn87Esb26uQKQePoUSQLdubLHEge86UHZh98qP0qEFv3r5CRVfkZs9c5S5r_wOC4KUXzqe5xfsb2LjuuIcgq4YM_Xoz-I9hQ3jy0XCBjPaF90NNyGVzW66_4beibge-osMySeenLcOiPvXNl0UUchpJdq1Z3X-3TRvbx47RYt5c5ey1DwTRJZnI4bz44ikYCxRld-iH2UQWhpqz3i0vggGujwhzsxJa2Csd2DkKcbDBSvfk_2NXq3SHJpR9uWL-E7e2uGpeMXt2O2W-Ns3rLCCn_0A7oFXh3-PovsW9r7SHv3OvTx5p-BhUsYyV6UTtAz7QP3sjXZnQB1Gg3-2bEWo0R6smTVBMDlWJ3nBx4rjuPquTfbqYqQP5v4VK_GXSqt2w0Pba3ToHR6sJkkRMLT9XQHI4X9nBJtfwy65NEjIK9JGbBmTpG7vk4apHqE94ET2ifmIbDWna01fR2jPdj3tukkNOHWezvfENVK87ZXUQLwQmRjrzSIJy9bJw7VoCMTSUuYrW2Osz0vhw4B1m3ogHdzRcC3_vSErUtyvI4kB3uAQNgt2bTSLk7kws3ZHkXLwo-bjv4FnkHBOewWZ0MvnuGxaiovHdvUmZw3SFJvCok2oZ6__4XuSkw-1FNol1fzjYoq0_HGr25DA93pmp8jom-o4RLJmvmjEypUnO1JfIP10gOWZt_eK8KueP7VvSDs_xAdVA7pkZf0J2vtwZuy_AL5n0_u1oiNc6Hbg-l8GcwpWhkb80NeBxhcHtXAWPLeKmLytBaTjFlNcyfM92IJeTelRjApxl6NTXY52RcF7AThmuZDry7tF4D332X10sQ3UglESK2JzZ9lbxQuADp6eRONK7KXLw8xUr1BzAAZ3hfI-n-fITiAcvUdnKI5k-xN6AXRWgkpzm23yEt9fXdABIasHmhwMq4F7UMtHHWizUIyelyJckf0M0euCweDiDOxtJf_r8uam3xIJTimoRlCYQ92xul7a4OikLvV9IL2nSwIfB08zZdPjmpvEpTp5IwSCOd0FhHSEzQo9bF6omeh5FC7oKA8zNqbXJ7H5ZmSP8iKDIt9HxkEn92f9J-Rkwv9bzc7EetgRaqVVgrcrTZ8oMqnGDEoaFVlFQhVIDH0cAzKvhaHd40IBvn_FOtk7Q_zbiD4nXgC6pQcSCf5olaonDW5NDdWvQ9cpWhdVh_D4JAs9SKT5YQbBVD4U52k6FC13Hb0e1Fcpe8qtEt8z4OMooJaQIR4P6CDfiIe26MritV1tlGxyY9fo673ZzPpMd9hiBFfBfucM9PfIxCHaYhISDAMtS2yJDUoDZ172oxL7qc9CJcoB1LVVQJ6y4la1a9Nwe1ORkZKj11O9rxlK4GuRQbjEDOY5aaEV1fGFzxEq5riYS7QGsB4HYpSBJCcN78i3o5YcJYxvESE17dvAW4-x0WkLRY7hl7heoTff9Asc9qvhyK81BuveFK8m63orr_m9sELHmpveh4px9XCF-L4HIUM0bbbumW0o4CnbyaLQZap9pDQMwKvE4enNcg8c_vSArqzUXeJRCfCOaZIAprdl9_igauVsnetPnT1NIvc_TLlaRUUSR_BX8Q5JatEsQc0jMz1n_3gxSAgrlnW6pIvViIDmuNT1i8TPv-ofBWw9GxePYz2QVdlkhnJjjl_5wY9lbUsIRn3FxaVle0JFTeb0iLovVa4XHAf4skJ5qs2FkaYY5yswOW0eKgOA5Z0tX2FTWAhQtEIBLqCxiw-A7TG2Iq6uZJxF5MAYOV_8-FYN6Um2BGJu7t7Q9LCZKe0pfP4SxnPNvv9M1V0F27CruY7VX44hSqqfWFOF17UUTb8ZWkcQtr4F_kmWFuJlayJm30BFbckWUnp7i5keX8gUAEaXoMbar_qNM_7zM75Hyam2nzslM34T_iJQw0LC4RewaMt8GGAMbJBd3-6-mRmWzdTZEOHOiQ9uCZl8uj3caLvOuM15w1BNhAzvVKz6I2Jqv15dzrUl0CmO-iry97lMHMsmWboiW3Z2e0sOh_iDdqBwNN-tkhsKyLJkHGPCOpLBYL3wziBzZkzMDQn3fmmmySaBSgLS0YJhTL3yqphjbsrHfPeaukV5gVcTolzUESM4S5cgY_U8Fm-q15JJaHdxZA57T_KaKYZAbGKs7Ft4kO2t1l48WyOThqLQAWfCef48opxNlMLr4Oi9H0kMVnbQCSh2cCp9EE0tanaXHFkCxFJL8blSNt6aGDbuzKzISe8z13Ys7eJMNHfwoG739ZG3j145qvMJE8D4-6E7p5ats_RnQH3x8fzZXpKPKWb9y5rMqkhHrCibr1BDbF_-XePSRNQB8FjDBMS7mWKPma3zYnSf4ctSaMpdnWKFkOpogcCihkdUjKz_e0HozTJPT-TpXzY88C6F8V4Zry4ndAXo4mRXXr3WjPorBv2T0_a1jxvAO8cKKZKH88zQ-i4tt0dxs883X91_1ACKE_kXSi_vt6qXaSYtk5pUihj3QGyz1v64fWY3vPKrBhhPv2XxwIBPh8ee0m5kGlBXxE_OM6dQqVr6ju7IIX-bQkDbi7NbPeqqjIMv4Utx2fTldvuc2Puntkz9IXZudQ9oyBGMadJ3dkrwuuCrLjxBhdDqxs_lMebXmmD3EKmva48YDvThBLvwWEKCiQ2_yo7WqFJdWW1dljRDJokd0wSBo2ZsF8Vzqos4aWkbHjHk1NDin0HR3ZaUFCppai1KthCyM7mmpmDHjc4O8vlw5a_FJbEXq14olLbdqVnWgu4GZl-fb3vWtFyThipXLP1Bx_7kWuIMu3o3zoZ_R-m7YV4Gh4JEAsnNiHphYAqkqFK5XCbXTDddut6ALmU1Ru41MHPvSsTRYioc9w2MRdicfC08XgnuozgvG9E1ckbXPVCy0CKiCbqEpzix-VTr7ADKEQ--qdhbrlsTm__Fhx7DcjT7jFWSCDwEg8m6TOBjLAwqQOGwLBGDjTjOxiIvuLyC_2ZK2OlD-BQoEyHG9tk1Xzh5w6-ixwAEF2C5j1Xvnfbu_2tbXhgNxUKgclL-TON5n75FrZo0b46P_4Gg6tycIITwWgSxRMZKVM1-MgzSeNEIUVjlMSODSwQwFqjM9qU5TXqU9aZfRt8rznBQqhEc5arrDp_nF5HEtRbml-7G32acDtlXnAEcC3VVnc_Omp5ouw-2HqULk44KIGRUh-bdrvKS0gcc09Szt5XORyFcKusc5XFQJ2cdYxmKEAhvrT5KXs5-FRmq86uln46UrXcku2eAtLS8xKXsLWklXgiXs7oPyNXh3IkNcnHnYlYL91xQYNva3U9At817AISVAoup1yFNRP9Ho0YQAimrVqn7Hsu2L0oDKhdW2g_dqEU1ulTU7nluxqNWePZWpEfkxM5XW5TPzhtWPVDdlAes6gJPGLEulR4B5FJgFC3SzjqIMDlH-Ilgcsq-VEP6dUJn3W7KM7T__SPI4KZFymUvi8Crj6LyiDfvEXdlRnq_1QZpVTBLC8O_Ac4Q8l5_dqXGtnZlMAB3_ef1o36MsRUrDG0DQ0YOu5msdJeRLYxnUXfjCms0d8E1UPJNt01jHqSBhBD0IQJJwuEhTX1O3ahib-vmbTK4OZDSsb2XDei9RbuewM5osXcop0uDkZgT9RmwO2BAfTGyrIBIlO0xZwnwmPu6irgGIUD2qgZfpeVhAuHzsV0rgcg2bdKrRRtJFBh51aH6coS-1KDkZf03C0zNrWepIktNOuwbra-wmRd-4yF7vUKwj0ghh8RConqk2NAvPPHawmTfoXRekDn1tMUe4D-VasV8JXfGsd4g8hp8FpSwAg4829fNThJ7AIFMuIXfGqvIybs0WB-Qd8AfaHx54ao6Cys-VZTTdp7r9RtzBox4YDRyz5NBKyv3leOb04fKpMj9uZXeiRXG6OrohTI7Mgi5vxG5d6gow1R4QspDaGrnOK_NR75ye0Yp7BLLJ8xYh-wn97xuMyS8iapo9qqVDlGFGH-Bo-U0j3uhK15i0qlB02pUxlQkS8ZsvUcl-hB-f8_s8ziHZ8RBNutpjRkk0ZlyGMUndIC6p93D-oGcCfKXv-qeLQwqZVieUg28DNg_Vis6_lYJPeVefz73aer8LBIz5FMYPnQGfFcx_bWk7QOgguz-TzKbZ4svaogaGNqREggvfFiw3zvZuBYULpqIh_f-XdHj3bnfqiqM2FHXiLRIUmijwHOyQwzEbnKW-bPOIA94rDfxFKlTc54VSvCL10WYUJv-6N4SP8217S61wyaT4opLNf8H9Rsigj0IfMOWvAKOmDgC4lY8KL-pe97kJpFdgHp4DIR4BXv6Z46J3CoKo-_BjEb-JRj6quYuBGhACMrLc4u-WplUbgiMcXDy2kirHSG6VnLjoxvx99a2DQ-0CwVyLvXRg2gXTHe6A_rDiPl6B5WJVs_Vk2kB-wpUujRl4-ZUvYFFyIK7GdOfpleVpOPbbFpV8i2V0P3M3mK
|